Merge branch 'maint'
authorJunio C Hamano <junkio@cox.net>
Tue, 22 May 2007 03:03:53 +0000 (20:03 -0700)
committerJunio C Hamano <junkio@cox.net>
Tue, 22 May 2007 03:03:53 +0000 (20:03 -0700)
* maint:
  git-cvsserver: fix disabling service via per-method config
  git-status: respect core.excludesFile
  SubmittingPatches: mention older C compiler compatibility
  git-daemon: don't ignore pid-file write failure

Documentation/SubmittingPatches
Documentation/config.txt
Documentation/git-status.txt
daemon.c
git-cvsserver.perl
t/t3001-ls-files-others-exclude.sh
wt-status.c

index 6a4da2d..b94d9a8 100644 (file)
@@ -65,6 +65,19 @@ in templates/hooks--pre-commit.  To help ensure this does not happen,
 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
index ee1c35e..179cb17 100644 (file)
@@ -256,6 +256,11 @@ You probably do not need to adjust this value.
 +
 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
index e9e193f..d701538 100644 (file)
@@ -42,6 +42,11 @@ mean the same thing and the latter is kept for backward
 compatibility) and `color.status.<slot>` configuration variables
 to colorize its output.
 
+As for gitlink:git-add[1], the configuration variable
+'core.excludesfile' can indicate a path to a file containing patterns
+of file names to exclude, in addition to patterns given in
+'info/exclude' and '.gitignore'.
+
 
 Author
 ------
index e74ecac..674e30d 100644 (file)
--- a/daemon.c
+++ b/daemon.c
@@ -970,8 +970,8 @@ static void store_pid(const char *path)
        FILE *f = fopen(path, "w");
        if (!f)
                die("cannot open pid file %s: %s", path, strerror(errno));
-       fprintf(f, "%d\n", getpid());
-       fclose(f);
+       if (fprintf(f, "%d\n", getpid()) < 0 || fclose(f) != 0)
+               die("failed to write pid file %s: %s", path, strerror(errno));
 }
 
 static int serve(char *listen_addr, int listen_port, struct passwd *pass, gid_t gid)
index fcfb99d..1de5177 100755 (executable)
@@ -192,11 +192,9 @@ sub req_Root
         }
     }
 
-    unless ( ($cfg->{gitcvs}{$state->{method}}{enabled}
-             and $cfg->{gitcvs}{$state->{method}}{enabled} =~ /^\s*(1|true|yes)\s*$/i)
-            or ($cfg->{gitcvs}{enabled}
-             and $cfg->{gitcvs}{enabled} =~ /^\s*(1|true|yes)\s*$/i) )
-    {
+    my $enabled = ($cfg->{gitcvs}{$state->{method}}{enabled}
+                  || $cfg->{gitcvs}{enabled});
+    unless ($enabled && $enabled =~ /^\s*(1|true|yes)\s*$/i) {
         print "E GITCVS emulation needs to be enabled on this repo\n";
         print "E the repo config file needs a [gitcvs] section added, and the parameter 'enabled' set to 1\n";
         print "E \n";
index db7a847..fcfcfbb 100755 (executable)
@@ -79,4 +79,24 @@ test_expect_success \
        >output &&
      git diff expect output'
 
+cat > excludes-file << EOF
+*.[1-8]
+e*
+EOF
+
+git-config core.excludesFile excludes-file
+
+git-runstatus | grep "^#       " > output
+
+cat > expect << EOF
+#      .gitignore
+#      a.6
+#      one/
+#      output
+#      three/
+EOF
+
+test_expect_success 'git-status honours core.excludesfile' \
+       'diff -u expect output'
+
 test_done
index a055990..4bfe8f1 100644 (file)
@@ -22,6 +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,6 +260,8 @@ static void wt_status_print_untracked(struct wt_status *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, NULL);
        for(i = 0; i < dir.nr; i++) {
@@ -356,5 +359,11 @@ int git_status_config(const char *k, const char *v)
                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);
 }