Merge branch 'maint'
authorJunio C Hamano <gitster@pobox.com>
Sun, 28 Feb 2010 19:41:57 +0000 (11:41 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sun, 28 Feb 2010 19:41:57 +0000 (11:41 -0800)
* maint:
Git 1.7.0.1
Remove reference to GREP_COLORS from documentation
sha1_name: fix segfault caused by invalid index access

Documentation/RelNotes-1.7.0.1.txt
Documentation/config.txt
Documentation/git.txt
GIT-VERSION-GEN
sha1_name.c
index 970cd59330b67d3ddb7e7016c949e9c0a216517f..8ff5bcada81f47f321eb6b7cb3a67963fe92a088 100644 (file)
@@ -7,9 +7,17 @@ Fixes since v1.7.0
  * In a freshly created repository "rev-parse HEAD^0" complained that
    it is dangling symref, even though "rev-parse HEAD" didn't.
 
+ * "git show :no-such-name" tried to access the index without bounds
+   check, leading to a potential segfault.
+
  * Message from "git cherry-pick" was harder to read and use than necessary
    when it stopped due to conflicting changes.
 
+ * We referred to ".git/refs/" throughout the documentation when we
+   meant to talk about abstract notion of "ref namespace".  Because
+   people's repositories often have packed refs these days, this was
+   confusing.
+
  * "git diff --output=/path/that/cannot/be/written" did not correctly
    error out.
 
@@ -24,8 +32,4 @@ Fixes since v1.7.0
    option was propagated to "git stash drop" that is internally run at the
    end.
 
---
-exec >/var/tmp/1
-echo O=$(git describe)
-O=v1.7.0-22-gc69f921
-git shortlog $O..
+And other minor fixes and documentation updates.
index 664de6b1ab1fa187ff510eda414c46b5213a8397..7103172ed30c33f2c7933f530d03ce98c1e4f360 100644 (file)
@@ -685,9 +685,7 @@ color.grep::
 
 color.grep.match::
        Use customized color for matches.  The value of this variable
-       may be specified as in color.branch.<slot>.  It is passed using
-       the environment variables 'GREP_COLOR' and 'GREP_COLORS' when
-       calling an external 'grep'.
+       may be specified as in color.branch.<slot>.
 
 color.interactive::
        When set to `always`, always use colors for interactive prompts
index 01c463101b9b212f002e10a0d9e89a2df12652a2..cc32ce18d213ab5e986df90b0b23a7eb79226c39 100644 (file)
@@ -43,9 +43,10 @@ unreleased) version of git, that is available from 'master'
 branch of the `git.git` repository.
 Documentation for older releases are available here:
 
-* link:v1.7.0/git.html[documentation for release 1.7.0]
+* link:v1.7.0.1/git.html[documentation for release 1.7.0.1]
 
 * release notes for
+  link:RelNotes-1.7.0.1.txt[1.7.0.1],
   link:RelNotes-1.7.0.txt[1.7.0].
 
 * link:v1.6.6.2/git.html[documentation for release 1.6.6.2]
index a668143d7a42dd6323d73b9acee62ac7a992f7ea..7f894fdd4655ddad9fe3228141a5f21959f1450e 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 GVF=GIT-VERSION-FILE
-DEF_VER=v1.7.0.GIT
+DEF_VER=v1.7.0.1
 
 LF='
 '
index 43884c69b350426b46ed73ffcfd5fc29cf1da1b1..bf924178380c42a50b2fd7a02ff869dcc3ddff6a 100644 (file)
@@ -992,13 +992,15 @@ static void diagnose_invalid_index_path(int stage,
        pos = cache_name_pos(filename, namelen);
        if (pos < 0)
                pos = -pos - 1;
-       ce = active_cache[pos];
-       if (ce_namelen(ce) == namelen &&
-           !memcmp(ce->name, filename, namelen))
-               die("Path '%s' is in the index, but not at stage %d.\n"
-                   "Did you mean ':%d:%s'?",
-                   filename, stage,
-                   ce_stage(ce), filename);
+       if (pos < active_nr) {
+               ce = active_cache[pos];
+               if (ce_namelen(ce) == namelen &&
+                   !memcmp(ce->name, filename, namelen))
+                       die("Path '%s' is in the index, but not at stage %d.\n"
+                           "Did you mean ':%d:%s'?",
+                           filename, stage,
+                           ce_stage(ce), filename);
+       }
 
        /* Confusion between relative and absolute filenames? */
        fullnamelen = namelen + strlen(prefix);
@@ -1008,13 +1010,15 @@ static void diagnose_invalid_index_path(int stage,
        pos = cache_name_pos(fullname, fullnamelen);
        if (pos < 0)
                pos = -pos - 1;
-       ce = active_cache[pos];
-       if (ce_namelen(ce) == fullnamelen &&
-           !memcmp(ce->name, fullname, fullnamelen))
-               die("Path '%s' is in the index, but not '%s'.\n"
-                   "Did you mean ':%d:%s'?",
-                   fullname, filename,
-                   ce_stage(ce), fullname);
+       if (pos < active_nr) {
+               ce = active_cache[pos];
+               if (ce_namelen(ce) == fullnamelen &&
+                   !memcmp(ce->name, fullname, fullnamelen))
+                       die("Path '%s' is in the index, but not '%s'.\n"
+                           "Did you mean ':%d:%s'?",
+                           fullname, filename,
+                           ce_stage(ce), fullname);
+       }
 
        if (!lstat(filename, &st))
                die("Path '%s' exists on disk, but not in the index.", filename);