Merge branch 'maint-1.5.1' into maint
authorJunio C Hamano <junkio@cox.net>
Tue, 22 May 2007 01:42:35 +0000 (18:42 -0700)
committerJunio C Hamano <junkio@cox.net>
Tue, 22 May 2007 01:42:35 +0000 (18:42 -0700)
* maint-1.5.1:
git-status: respect core.excludesFile
SubmittingPatches: mention older C compiler compatibility
git-daemon: don't ignore pid-file write failure

1  2 
Documentation/SubmittingPatches
Documentation/config.txt
wt-status.c
index 6a4da2ddd94093aaa03656303c40a5b20bae2fef,1ba9041b5b33d8830d5adf60e67e0f8ee9e48b3d..b94d9a816664333e0b1767c22d1639b8839cee24
@@@ -30,9 -30,6 +30,9 @@@ Checklist (and a short version for the 
        - provide additional information (which is unsuitable for
          the commit message) between the "---" and the diffstat
        - send the patch to the list _and_ the maintainer
 +      - if you change, add, or remove a command line option or
 +        make some other user interface change, the associated
 +        documentation should be updated as well.
  
  Long version:
  
@@@ -65,6 -62,19 +65,19 @@@ in templates/hooks--pre-commit.  To hel
  run git diff --check on your changes before you commit.
  
  
+ (1a) Try to be nice to older C compilers
+ We try to support wide range of C compilers to compile
+ git with. That means that you should not use C99 initializers, even
+ if a lot of compilers grok it.
+ Also, variables have to be declared at the beginning of the block
+ (you can check this with gcc, using the -Wdeclaration-after-statement
+ option).
+ Another thing: NULL pointers shall be written as NULL, not as 0.
  (2) Generate your patch using git tools out of your commits.
  
  git based diff tools (git, Cogito, and StGIT included) generate
diff --combined Documentation/config.txt
index ea434af9db1e864c4230b60886f1ca24237327e4,c3fc64acc756e6ecbc7fd8fd27362cb5e0ea2fef..4bbe1162cbb3449fd841007fbcf855a4b0e44497
@@@ -263,6 -263,11 +263,11 @@@ You probably do not need to adjust thi
  +
  Common unit suffixes of 'k', 'm', or 'g' are supported.
  
+ core.excludeFile::
+       In addition to '.gitignore' (per-directory) and
+       '.git/info/exclude', git looks into this file for patterns
+       of files which are not meant to be tracked.
  alias.*::
        Command aliases for the gitlink:git[1] command wrapper - e.g.
        after defining "alias.last = cat-file commit HEAD", the invocation
@@@ -300,10 -305,6 +305,10 @@@ branch.<name>.merge:
        branch.<name>.merge to the desired branch, and use the special setting
        `.` (a period) for branch.<name>.remote.
  
 +clean.requireForce::
 +      A boolean to make git-clean do nothing unless given -f or -n.  Defaults
 +      to false.
 +
  color.branch::
        A boolean to enable/disable color in the output of
        gitlink:git-branch[1]. May be set to `true` (or `always`),
@@@ -427,34 -428,8 +432,34 @@@ gitcvs.allbinary:
        causes the client to treat all files as binary files which suppresses
        any newline munging it otherwise might do. A work-around for the
        fact that there is no way yet to set single files to mode '-kb'.
 +
 +gitcvs.dbname::
 +      Database used by git-cvsserver to cache revision information
 +      derived from the git repository. The exact meaning depends on the
 +      used database driver, for SQLite (which is the default driver) this
 +      is a filename. Supports variable substitution (see
 +      gitlink:git-cvsserver[1] for details). May not contain semicolons (`;`).
 +      Default: '%Ggitcvs.%m.sqlite'
 +
 +gitcvs.dbdriver::
 +      Used Perl DBI driver. You can specify any available driver
 +        for this here, but it might not work. git-cvsserver is tested
 +      with 'DBD::SQLite', reported to work with 'DBD::Pg', and
 +      reported *not* to work with 'DBD::mysql'. Experimental feature.
 +      May not contain double colons (`:`). Default: 'SQLite'.
        See gitlink:git-cvsserver[1].
  
 +gitcvs.dbuser, gitcvs.dbpass::
 +      Database user and password. Only useful if setting 'gitcvs.dbdriver',
 +      since SQLite has no concept of database users and/or passwords.
 +      'gitcvs.dbuser' supports variable substitution (see
 +      gitlink:git-cvsserver[1] for details).
 +
 +All gitcvs variables except for 'gitcvs.allbinary' can also specifed
 +as 'gitcvs.<access_method>.<varname>' (where 'access_method' is one
 +of "ext" and "pserver") to make them apply only for the given access
 +method.
 +
  http.sslVerify::
        Whether to verify the SSL certificate when fetching or pushing
        over HTTPS. Can be overridden by the 'GIT_SSL_NO_VERIFY' environment
@@@ -529,27 -504,10 +534,27 @@@ merge.verbosity:
        conflicts, 2 outputs conflicts and file changes.  Level 5 and
        above outputs debugging information.  The default is level 2.
  
 +merge.<driver>.name::
 +      Defines a human readable name for a custom low-level
 +      merge driver.  See gitlink:gitattributes[5] for details.
 +
 +merge.<driver>.driver::
 +      Defines the command that implements a custom low-level
 +      merge driver.  See gitlink:gitattributes[5] for details.
 +
 +merge.<driver>.recursive::
 +      Names a low-level merge driver to be used when
 +      performing an internal merge between common ancestors.
 +      See gitlink:gitattributes[5] for details.
 +
  pack.window::
        The size of the window used by gitlink:git-pack-objects[1] when no
        window size is given on the command line. Defaults to 10.
  
 +pack.depth::
 +      The maximum delta depth used by gitlink:git-pack-objects[1] when no
 +      maximum depth is given on the command line. Defaults to 50.
 +
  pull.octopus::
        The default merge strategy to use when pulling multiple branches
        at once.
@@@ -614,8 -572,8 +619,8 @@@ tar.umask:
  
  user.email::
        Your email address to be recorded in any newly created commits.
 -      Can be overridden by the 'GIT_AUTHOR_EMAIL' and 'GIT_COMMITTER_EMAIL'
 -      environment variables.  See gitlink:git-commit-tree[1].
 +      Can be overridden by the 'GIT_AUTHOR_EMAIL', 'GIT_COMMITTER_EMAIL', and
 +      'EMAIL' environment variables.  See gitlink:git-commit-tree[1].
  
  user.name::
        Your full name to be recorded in any newly created commits.
diff --combined wt-status.c
index a0559905a0b7072f4a4b44ea321c1316cfc84414,f053c15ffe266d9925379a71781bdacd56fcea26..4bfe8f15d8a0e275f1ed2d2458cda4d592f7c630
@@@ -22,6 -22,7 +22,7 @@@ static const char use_add_rm_msg[] 
  "use \"git add/rm <file>...\" to update what will be committed";
  static const char use_add_to_include_msg[] =
  "use \"git add <file>...\" to include in what will be committed";
+ static const char *excludes_file;
  
  static int parse_status_slot(const char *var, int offset)
  {
@@@ -259,8 -260,10 +260,10 @@@ static void wt_status_print_untracked(s
        x = git_path("info/exclude");
        if (file_exists(x))
                add_excludes_from_file(&dir, x);
+       if (excludes_file && file_exists(excludes_file))
+               add_excludes_from_file(&dir, excludes_file);
  
 -      read_directory(&dir, ".", "", 0);
 +      read_directory(&dir, ".", "", 0, NULL);
        for(i = 0; i < dir.nr; i++) {
                /* check for matching entry, which is unmerged; lifted from
                 * builtin-ls-files:show_other_files */
@@@ -356,5 -359,11 +359,11 @@@ int git_status_config(const char *k, co
                int slot = parse_status_slot(k, 13);
                color_parse(v, k, wt_status_colors[slot]);
        }
+       if (!strcmp(k, "core.excludesfile")) {
+               if (!v)
+                       die("core.excludesfile without value");
+               excludes_file = xstrdup(v);
+               return 0;
+       }
        return git_default_config(k, v);
  }