Hello community,

here is the log from the commit of package git for openSUSE:Factory
checked in at Tue Sep 27 16:15:08 CEST 2011.



--------
--- git/cgit.changes    2011-09-21 08:50:02.000000000 +0200
+++ /mounts/work_src_done/STABLE/git/cgit.changes       2011-09-26 
12:57:21.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Sep 26 12:57:01 CEST 2011 - [email protected]
+
+- updated to git 1.7.6.4; see git changelog for more details
+
+-------------------------------------------------------------------
--- git/git.changes     2011-09-21 08:50:03.000000000 +0200
+++ /mounts/work_src_done/STABLE/git/git.changes        2011-09-26 
12:57:22.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Sep 26 12:55:36 CEST 2011 - [email protected]
+
+- updated to 1.7.6.4: minor bug fixes for git-am, git-branch,
+  git-clone, etc
+  See Documentation/RelNotes/1.7.6.4.txt for details.
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
  git-1.7.6.3.tar.gz

New:
----
  git-1.7.6.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cgit.spec ++++++
--- /var/tmp/diff_new_pack.cADOxk/_old  2011-09-27 16:15:04.000000000 +0200
+++ /var/tmp/diff_new_pack.cADOxk/_new  2011-09-27 16:15:04.000000000 +0200
@@ -17,7 +17,7 @@
 
 # norootforbuild
 
-%define git_version    1.7.6.3
+%define git_version    1.7.6.4
 
 Name:           cgit
 Url:            http://hjemli.net/git/cgit/

++++++ git.spec ++++++
--- /var/tmp/diff_new_pack.cADOxk/_old  2011-09-27 16:15:04.000000000 +0200
+++ /var/tmp/diff_new_pack.cADOxk/_new  2011-09-27 16:15:04.000000000 +0200
@@ -39,7 +39,7 @@
 BuildRequires:  xmlto
 BuildRequires:  python
 BuildRequires:  perl-Error
-Version:        1.7.6.3
+Version:        1.7.6.4
 Release:        1
 Summary:        Fast, scalable, distributed revision control system
 License:        GPLv2+

++++++ git-1.7.6.3.tar.gz -> git-1.7.6.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/Documentation/RelNotes/1.7.6.4.txt 
new/git-1.7.6.4/Documentation/RelNotes/1.7.6.4.txt
--- old/git-1.7.6.3/Documentation/RelNotes/1.7.6.4.txt  1970-01-01 
01:00:00.000000000 +0100
+++ new/git-1.7.6.4/Documentation/RelNotes/1.7.6.4.txt  2011-09-24 
00:51:18.000000000 +0200
@@ -0,0 +1,32 @@
+Git v1.7.6.4 Release Notes
+==========================
+
+Fixes since v1.7.6.3
+--------------------
+
+ * The error reporting logic of "git am" when the command is fed a file
+   whose mail-storage format is unknown was fixed.
+
+ * "git branch --set-upstream @{-1} foo" did not expand @{-1} correctly.
+
+ * "git check-ref-format --print" used to parrot a candidate string that
+   began with a slash (e.g. /refs/heads/master) without stripping it, to make
+   the result a suitably normalized string the caller can append to 
"$GIT_DIR/".
+
+ * "git clone" failed to clone locally from a ".git" file that itself
+   is not a directory but is a pointer to one.
+
+ * "git clone" from a local repository that borrows from another
+   object store using a relative path in its objects/info/alternates
+   file did not adjust the alternates in the resulting repository.
+
+ * "git describe --dirty" did not refresh the index before checking the
+   state of the working tree files.
+
+ * "git ls-files ../$path" that is run from a subdirectory reported errors
+   incorrectly when there is no such path that matches the given pathspec.
+
+ * "git mergetool" could loop forever prompting when nothing can be read
+   from the standard input.
+
+Also contains minor fixes and documentation updates.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/Documentation/git.txt 
new/git-1.7.6.4/Documentation/git.txt
--- old/git-1.7.6.3/Documentation/git.txt       2011-09-12 22:09:32.000000000 
+0200
+++ new/git-1.7.6.4/Documentation/git.txt       2011-09-24 00:51:18.000000000 
+0200
@@ -44,9 +44,10 @@
 branch of the `git.git` repository.
 Documentation for older releases are available here:
 
-* link:v1.7.6.3/git.html[documentation for release 1.7.6.3]
+* link:v1.7.6.4/git.html[documentation for release 1.7.6.4]
 
 * release notes for
+  link:RelNotes/1.7.6.4.txt[1.7.6.4],
   link:RelNotes/1.7.6.3.txt[1.7.6.3],
   link:RelNotes/1.7.6.2.txt[1.7.6.2],
   link:RelNotes/1.7.6.1.txt[1.7.6.1],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/GIT-VERSION-GEN 
new/git-1.7.6.4/GIT-VERSION-GEN
--- old/git-1.7.6.3/GIT-VERSION-GEN     2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/GIT-VERSION-GEN     2011-09-24 00:51:18.000000000 +0200
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 GVF=GIT-VERSION-FILE
-DEF_VER=v1.7.6.3
+DEF_VER=v1.7.6.4
 
 LF='
 '
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/RelNotes new/git-1.7.6.4/RelNotes
--- old/git-1.7.6.3/RelNotes    2011-09-27 16:15:04.000000000 +0200
+++ new/git-1.7.6.4/RelNotes    2011-09-27 16:15:04.000000000 +0200
@@ -1 +1 @@
-symbolic link to Documentation/RelNotes/1.7.6.3.txt
+symbolic link to Documentation/RelNotes/1.7.6.4.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/branch.c new/git-1.7.6.4/branch.c
--- old/git-1.7.6.3/branch.c    2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/branch.c    2011-09-24 00:51:18.000000000 +0200
@@ -210,7 +210,7 @@
                         start_name);
 
        if (real_ref && track)
-               setup_tracking(name, real_ref, track);
+               setup_tracking(ref.buf+11, real_ref, track);
 
        if (!dont_change_ref)
                if (write_ref_sha1(lock, sha1, msg) < 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/builtin/check-ref-format.c 
new/git-1.7.6.4/builtin/check-ref-format.c
--- old/git-1.7.6.3/builtin/check-ref-format.c  2011-09-12 22:09:32.000000000 
+0200
+++ new/git-1.7.6.4/builtin/check-ref-format.c  2011-09-24 00:51:18.000000000 
+0200
@@ -12,8 +12,8 @@
 "   or: git check-ref-format --branch <branchname-shorthand>";
 
 /*
- * Replace each run of adjacent slashes in src with a single slash,
- * and write the result to dst.
+ * Remove leading slashes and replace each run of adjacent slashes in
+ * src with a single slash, and write the result to dst.
  *
  * This function is similar to normalize_path_copy(), but stripped down
  * to meet check_ref_format's simpler needs.
@@ -21,7 +21,7 @@
 static void collapse_slashes(char *dst, const char *src)
 {
        char ch;
-       char prev = '\0';
+       char prev = '/';
 
        while ((ch = *src++) != '\0') {
                if (prev == '/' && ch == prev)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/builtin/checkout.c 
new/git-1.7.6.4/builtin/checkout.c
--- old/git-1.7.6.3/builtin/checkout.c  2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/builtin/checkout.c  2011-09-24 00:51:18.000000000 +0200
@@ -201,7 +201,7 @@
 }
 
 static int checkout_paths(struct tree *source_tree, const char **pathspec,
-                         struct checkout_opts *opts)
+                         const char *prefix, struct checkout_opts *opts)
 {
        int pos;
        struct checkout state;
@@ -231,7 +231,7 @@
                match_pathspec(pathspec, ce->name, ce_namelen(ce), 0, 
ps_matched);
        }
 
-       if (report_path_error(ps_matched, pathspec, 0))
+       if (report_path_error(ps_matched, pathspec, prefix))
                return 1;
 
        /* "checkout -m path" to recreate conflicted state */
@@ -1063,7 +1063,7 @@
                if (1 < !!opts.writeout_stage + !!opts.force + !!opts.merge)
                        die(_("git checkout: --ours/--theirs, --force and 
--merge are incompatible when\nchecking out of the index."));
 
-               return checkout_paths(source_tree, pathspec, &opts);
+               return checkout_paths(source_tree, pathspec, prefix, &opts);
        }
 
        if (patch_mode)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/builtin/clone.c 
new/git-1.7.6.4/builtin/clone.c
--- old/git-1.7.6.3/builtin/clone.c     2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/builtin/clone.c     2011-09-24 00:51:18.000000000 +0200
@@ -39,13 +39,23 @@
 
 static int option_no_checkout, option_bare, option_mirror;
 static int option_local, option_no_hardlinks, option_shared, option_recursive;
-static char *option_template, *option_reference, *option_depth;
+static char *option_template, *option_depth;
 static char *option_origin = NULL;
 static char *option_branch = NULL;
 static const char *real_git_dir;
 static char *option_upload_pack = "git-upload-pack";
 static int option_verbosity;
 static int option_progress;
+static struct string_list option_reference;
+
+static int opt_parse_reference(const struct option *opt, const char *arg, int 
unset)
+{
+       struct string_list *option_reference = opt->value;
+       if (!arg)
+               return -1;
+       string_list_append(option_reference, arg);
+       return 0;
+}
 
 static struct option builtin_clone_options[] = {
        OPT__VERBOSITY(&option_verbosity),
@@ -71,8 +81,8 @@
                    "initialize submodules in the clone"),
        OPT_STRING(0, "template", &option_template, "template-directory",
                   "directory from which templates will be used"),
-       OPT_STRING(0, "reference", &option_reference, "repo",
-                  "reference repository"),
+       OPT_CALLBACK(0 , "reference", &option_reference, "repo",
+                    "reference repository", &opt_parse_reference),
        OPT_STRING('o', "origin", &option_origin, "branch",
                   "use <branch> instead of 'origin' to track upstream"),
        OPT_STRING('b', "branch", &option_branch, "branch",
@@ -101,9 +111,26 @@
        for (i = 0; i < ARRAY_SIZE(suffix); i++) {
                const char *path;
                path = mkpath("%s%s", repo, suffix[i]);
-               if (is_directory(path)) {
+               if (stat(path, &st))
+                       continue;
+               if (S_ISDIR(st.st_mode)) {
                        *is_bundle = 0;
                        return xstrdup(absolute_path(path));
+               } else if (S_ISREG(st.st_mode) && st.st_size > 8) {
+                       /* Is it a "gitfile"? */
+                       char signature[8];
+                       int len, fd = open(path, O_RDONLY);
+                       if (fd < 0)
+                               continue;
+                       len = read_in_full(fd, signature, 8);
+                       close(fd);
+                       if (len != 8 || strncmp(signature, "gitdir: ", 8))
+                               continue;
+                       path = read_gitfile(path);
+                       if (path) {
+                               *is_bundle = 0;
+                               return xstrdup(absolute_path(path));
+                       }
                }
        }
 
@@ -197,39 +224,80 @@
        *end = '\0';
 }
 
-static void setup_reference(const char *repo)
+static int add_one_reference(struct string_list_item *item, void *cb_data)
 {
-       const char *ref_git;
-       char *ref_git_copy;
-
+       char *ref_git;
+       struct strbuf alternate = STRBUF_INIT;
        struct remote *remote;
        struct transport *transport;
        const struct ref *extra;
 
-       ref_git = real_path(option_reference);
-
-       if (is_directory(mkpath("%s/.git/objects", ref_git)))
-               ref_git = mkpath("%s/.git", ref_git);
-       else if (!is_directory(mkpath("%s/objects", ref_git)))
+       /* Beware: real_path() and mkpath() return static buffer */
+       ref_git = xstrdup(real_path(item->string));
+       if (is_directory(mkpath("%s/.git/objects", ref_git))) {
+               char *ref_git_git = xstrdup(mkpath("%s/.git", ref_git));
+               free(ref_git);
+               ref_git = ref_git_git;
+       } else if (!is_directory(mkpath("%s/objects", ref_git)))
                die(_("reference repository '%s' is not a local directory."),
-                   option_reference);
-
-       ref_git_copy = xstrdup(ref_git);
+                   item->string);
 
-       add_to_alternates_file(ref_git_copy);
+       strbuf_addf(&alternate, "%s/objects", ref_git);
+       add_to_alternates_file(alternate.buf);
+       strbuf_release(&alternate);
 
-       remote = remote_get(ref_git_copy);
-       transport = transport_get(remote, ref_git_copy);
+       remote = remote_get(ref_git);
+       transport = transport_get(remote, ref_git);
        for (extra = transport_get_remote_refs(transport); extra;
             extra = extra->next)
                add_extra_ref(extra->name, extra->old_sha1, 0);
 
        transport_disconnect(transport);
+       free(ref_git);
+       return 0;
+}
+
+static void setup_reference(void)
+{
+       for_each_string_list(&option_reference, add_one_reference, NULL);
+}
 
-       free(ref_git_copy);
+static void copy_alternates(struct strbuf *src, struct strbuf *dst,
+                           const char *src_repo)
+{
+       /*
+        * Read from the source objects/info/alternates file
+        * and copy the entries to corresponding file in the
+        * destination repository with add_to_alternates_file().
+        * Both src and dst have "$path/objects/info/alternates".
+        *
+        * Instead of copying bit-for-bit from the original,
+        * we need to append to existing one so that the already
+        * created entry via "clone -s" is not lost, and also
+        * to turn entries with paths relative to the original
+        * absolute, so that they can be used in the new repository.
+        */
+       FILE *in = fopen(src->buf, "r");
+       struct strbuf line = STRBUF_INIT;
+
+       while (strbuf_getline(&line, in, '\n') != EOF) {
+               char *abs_path, abs_buf[PATH_MAX];
+               if (!line.len || line.buf[0] == '#')
+                       continue;
+               if (is_absolute_path(line.buf)) {
+                       add_to_alternates_file(line.buf);
+                       continue;
+               }
+               abs_path = mkpath("%s/objects/%s", src_repo, line.buf);
+               normalize_path_copy(abs_buf, abs_path);
+               add_to_alternates_file(abs_buf);
+       }
+       strbuf_release(&line);
+       fclose(in);
 }
 
-static void copy_or_link_directory(struct strbuf *src, struct strbuf *dest)
+static void copy_or_link_directory(struct strbuf *src, struct strbuf *dest,
+                                  const char *src_repo, int src_baselen)
 {
        struct dirent *de;
        struct stat buf;
@@ -265,7 +333,14 @@
                }
                if (S_ISDIR(buf.st_mode)) {
                        if (de->d_name[0] != '.')
-                               copy_or_link_directory(src, dest);
+                               copy_or_link_directory(src, dest,
+                                                      src_repo, src_baselen);
+                       continue;
+               }
+
+               /* Files that cannot be copied bit-for-bit... */
+               if (!strcmp(src->buf + src_baselen, "/info/alternates")) {
+                       copy_alternates(src, dest, src_repo);
                        continue;
                }
 
@@ -288,17 +363,20 @@
                                     const char *dest_repo)
 {
        const struct ref *ret;
-       struct strbuf src = STRBUF_INIT;
-       struct strbuf dest = STRBUF_INIT;
        struct remote *remote;
        struct transport *transport;
 
-       if (option_shared)
-               add_to_alternates_file(src_repo);
-       else {
+       if (option_shared) {
+               struct strbuf alt = STRBUF_INIT;
+               strbuf_addf(&alt, "%s/objects", src_repo);
+               add_to_alternates_file(alt.buf);
+               strbuf_release(&alt);
+       } else {
+               struct strbuf src = STRBUF_INIT;
+               struct strbuf dest = STRBUF_INIT;
                strbuf_addf(&src, "%s/objects", src_repo);
                strbuf_addf(&dest, "%s/objects", dest_repo);
-               copy_or_link_directory(&src, &dest);
+               copy_or_link_directory(&src, &dest, src_repo, src.len);
                strbuf_release(&src);
                strbuf_release(&dest);
        }
@@ -521,8 +599,8 @@
        git_config_set(key.buf, repo);
        strbuf_reset(&key);
 
-       if (option_reference)
-               setup_reference(git_dir);
+       if (option_reference.nr)
+               setup_reference();
 
        fetch_pattern = value.buf;
        refspec = parse_fetch_refspec(1, &fetch_pattern);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/builtin/commit.c 
new/git-1.7.6.4/builtin/commit.c
--- old/git-1.7.6.3/builtin/commit.c    2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/builtin/commit.c    2011-09-24 00:51:18.000000000 +0200
@@ -272,7 +272,7 @@
                        item->util = item; /* better a valid pointer than a 
fake one */
        }
 
-       return report_path_error(m, pattern, prefix ? strlen(prefix) : 0);
+       return report_path_error(m, pattern, prefix);
 }
 
 static void add_remove_files(struct string_list *list)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/builtin/describe.c 
new/git-1.7.6.4/builtin/describe.c
--- old/git-1.7.6.3/builtin/describe.c  2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/builtin/describe.c  2011-09-24 00:51:18.000000000 +0200
@@ -462,8 +462,21 @@
                die(_("No names found, cannot describe anything."));
 
        if (argc == 0) {
-               if (dirty && !cmd_diff_index(ARRAY_SIZE(diff_index_args) - 1, 
diff_index_args, prefix))
-                       dirty = NULL;
+               if (dirty) {
+                       static struct lock_file index_lock;
+                       int fd;
+
+                       read_cache_preload(NULL);
+                       refresh_index(&the_index, 
REFRESH_QUIET|REFRESH_UNMERGED,
+                                     NULL, NULL, NULL);
+                       fd = hold_locked_index(&index_lock, 0);
+                       if (0 <= fd)
+                               update_index_if_able(&the_index, &index_lock);
+
+                       if (!cmd_diff_index(ARRAY_SIZE(diff_index_args) - 1,
+                                           diff_index_args, prefix))
+                               dirty = NULL;
+               }
                describe("HEAD", 1);
        } else if (dirty) {
                die(_("--dirty is incompatible with committishes"));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/builtin/init-db.c 
new/git-1.7.6.4/builtin/init-db.c
--- old/git-1.7.6.3/builtin/init-db.c   2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/builtin/init-db.c   2011-09-24 00:51:18.000000000 +0200
@@ -347,7 +347,7 @@
                const char *src;
 
                if (S_ISREG(st.st_mode))
-                       src = read_gitfile_gently(git_link);
+                       src = read_gitfile(git_link);
                else if (S_ISDIR(st.st_mode))
                        src = git_link;
                else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/builtin/ls-files.c 
new/git-1.7.6.4/builtin/ls-files.c
--- old/git-1.7.6.3/builtin/ls-files.c  2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/builtin/ls-files.c  2011-09-24 00:51:18.000000000 +0200
@@ -388,11 +388,13 @@
        }
 }
 
-int report_path_error(const char *ps_matched, const char **pathspec, int 
prefix_len)
+int report_path_error(const char *ps_matched, const char **pathspec, const 
char *prefix)
 {
        /*
         * Make sure all pathspec matched; otherwise it is an error.
         */
+       struct strbuf sb = STRBUF_INIT;
+       const char *name;
        int num, errors = 0;
        for (num = 0; pathspec[num]; num++) {
                int other, found_dup;
@@ -417,10 +419,12 @@
                if (found_dup)
                        continue;
 
+               name = quote_path_relative(pathspec[num], -1, &sb, prefix);
                error("pathspec '%s' did not match any file(s) known to git.",
-                     pathspec[num] + prefix_len);
+                     name);
                errors++;
        }
+       strbuf_release(&sb);
        return errors;
 }
 
@@ -611,7 +615,7 @@
 
        if (ps_matched) {
                int bad;
-               bad = report_path_error(ps_matched, pathspec, prefix_len);
+               bad = report_path_error(ps_matched, pathspec, prefix);
                if (bad)
                        fprintf(stderr, "Did you forget to 'git add'?\n");
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/cache.h new/git-1.7.6.4/cache.h
--- old/git-1.7.6.3/cache.h     2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/cache.h     2011-09-24 00:51:18.000000000 +0200
@@ -434,7 +434,7 @@
 extern char *get_graft_file(void);
 extern int set_git_dir(const char *path);
 extern const char *get_git_work_tree(void);
-extern const char *read_gitfile_gently(const char *path);
+extern const char *read_gitfile(const char *path);
 extern void set_git_work_tree(const char *tree);
 
 #define ALTERNATE_DB_ENVIRONMENT "GIT_ALTERNATE_OBJECT_DIRECTORIES"
@@ -1189,7 +1189,7 @@
 #define ws_tab_width(rule)     ((rule) & WS_TAB_WIDTH_MASK)
 
 /* ls-files */
-int report_path_error(const char *ps_matched, const char **pathspec, int 
prefix_offset);
+int report_path_error(const char *ps_matched, const char **pathspec, const 
char *prefix);
 void overlay_tree_on_cache(const char *tree_name, const char *prefix);
 
 char *alias_lookup(const char *alias);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/configure new/git-1.7.6.4/configure
--- old/git-1.7.6.3/configure   2011-09-12 22:09:33.000000000 +0200
+++ new/git-1.7.6.4/configure   2011-09-24 00:51:18.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.66 for git 1.7.6.1.
+# Generated by GNU Autoconf 2.67 for git 1.7.6.4.
 #
 # Report bugs to <[email protected]>.
 #
@@ -552,8 +552,8 @@
 # Identity of this package.
 PACKAGE_NAME='git'
 PACKAGE_TARNAME='git'
-PACKAGE_VERSION='1.7.6.1'
-PACKAGE_STRING='git 1.7.6.1'
+PACKAGE_VERSION='1.7.6.4'
+PACKAGE_STRING='git 1.7.6.4'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -790,8 +790,9 @@
   fi
 
   case $ac_option in
-  *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *)   ac_optarg=yes ;;
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
   esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1269,7 +1270,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures git 1.7.6.1 to adapt to many kinds of systems.
+\`configure' configures git 1.7.6.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1330,7 +1331,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of git 1.7.6.1:";;
+     short | recursive ) echo "Configuration of git 1.7.6.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1466,8 +1467,8 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-git configure 1.7.6.1
-generated by GNU Autoconf 2.66
+git configure 1.7.6.4
+generated by GNU Autoconf 2.67
 
 Copyright (C) 2010 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
@@ -1652,7 +1653,7 @@
     mv -f conftest.er1 conftest.err
   fi
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } >/dev/null && {
+  test $ac_status = 0; } > conftest.i && {
         test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
         test ! -s conftest.err
        }; then :
@@ -1715,7 +1716,7 @@
 else
   ac_header_preproc=no
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
 $as_echo "$ac_header_preproc" >&6; }
 
@@ -1946,8 +1947,8 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by git $as_me 1.7.6.1, which was
-generated by GNU Autoconf 2.66.  Invocation command line was
+It was created by git $as_me 1.7.6.4, which was
+generated by GNU Autoconf 2.67.  Invocation command line was
 
   $ $0 $@
 
@@ -2205,7 +2206,7 @@
       || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
   fi
 done
 
@@ -2670,7 +2671,7 @@
                echo "NO_${PROGRAM}=YesPlease" >> "${config_append}"; \
                echo "${PROGRAM}_PATH=" >> "${config_append}"; \
        else \
-               as_fn_error $? "You cannot use git without shell" "$LINENO" 5; \
+               as_fn_error $? "You cannot use git without shell" "$LINENO" 5 ; 
\
        fi; \
 else \
        if test "$withval" = "yes"; then \
@@ -2701,7 +2702,7 @@
                echo "NO_${PROGRAM}=YesPlease" >> "${config_append}"; \
                echo "${PROGRAM}_PATH=" >> "${config_append}"; \
        else \
-               as_fn_error $? "You cannot use git without perl" "$LINENO" 5; \
+               as_fn_error $? "You cannot use git without perl" "$LINENO" 5 ; \
        fi; \
 else \
        if test "$withval" = "yes"; then \
@@ -2732,7 +2733,7 @@
                echo "NO_${PROGRAM}=YesPlease" >> "${config_append}"; \
                echo "${PROGRAM}_PATH=" >> "${config_append}"; \
        else \
-               as_fn_error $? "You cannot use git without python" "$LINENO" 5; 
\
+               as_fn_error $? "You cannot use git without python" "$LINENO" 5 
; \
        fi; \
 else \
        if test "$withval" = "yes"; then \
@@ -2763,7 +2764,7 @@
                echo "NO_${PROGRAM}=YesPlease" >> "${config_append}"; \
                echo "${PROGRAM}_PATH=" >> "${config_append}"; \
        else \
-               as_fn_error $? "You cannot use git without zlib" "$LINENO" 5; \
+               as_fn_error $? "You cannot use git without zlib" "$LINENO" 5 ; \
        fi; \
 else \
        if test "$withval" = "yes"; then \
@@ -2917,7 +2918,7 @@
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in 
\`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3032,7 +3033,7 @@
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -3075,7 +3076,7 @@
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
 fi
 rm -f conftest conftest$ac_cv_exeext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -3134,7 +3135,7 @@
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
     fi
   fi
 fi
@@ -3186,7 +3187,7 @@
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
@@ -4631,7 +4632,7 @@
   # Broken: fails on valid input.
 continue
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
@@ -4647,11 +4648,11 @@
 ac_preproc_ok=:
 break
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then :
   break
 fi
@@ -4690,7 +4691,7 @@
   # Broken: fails on valid input.
 continue
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
@@ -4706,18 +4707,18 @@
 ac_preproc_ok=:
 break
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then :
 
 else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
 fi
 
 ac_ext=c
@@ -5318,7 +5319,7 @@
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -5366,7 +5367,7 @@
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -6970,8 +6971,8 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by git $as_me 1.7.6.1, which was
-generated by GNU Autoconf 2.66.  Invocation command line was
+This file was extended by git $as_me 1.7.6.4, which was
+generated by GNU Autoconf 2.67.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -7023,8 +7024,8 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-git config.status 1.7.6.1
-configured by $0, generated by GNU Autoconf 2.66,
+git config.status 1.7.6.4
+configured by $0, generated by GNU Autoconf 2.67,
   with options \\"\$ac_cs_config\\"
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -7042,11 +7043,16 @@
 while test $# != 0
 do
   case $1 in
-  --*=*)
+  --*=?*)
     ac_option=`expr "X$1" : 'X\([^=]*\)='`
     ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
     ac_shift=:
     ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
   *)
     ac_option=$1
     ac_optarg=$2
@@ -7068,6 +7074,7 @@
     $ac_shift
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
     esac
     as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
@@ -7129,7 +7136,7 @@
   case $ac_config_target in
     ""${config_file}"") CONFIG_FILES="$CONFIG_FILES 
"${config_file}":"${config_in}":"${config_append}"" ;;
 
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
   esac
 done
 
@@ -7335,7 +7342,7 @@
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -7363,7 +7370,7 @@
           [\\/$]*) false;;
           *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
           esac ||
-          as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+          as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; 
esac
       as_fn_append ac_file_inputs " '$ac_f'"
@@ -7390,7 +7397,7 @@
 
     case $ac_tag in
     *:-:* | *:-) cat >"$tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
     esac
     ;;
   esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/environment.c 
new/git-1.7.6.4/environment.c
--- old/git-1.7.6.3/environment.c       2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/environment.c       2011-09-24 00:51:18.000000000 +0200
@@ -91,7 +91,7 @@
        git_dir = getenv(GIT_DIR_ENVIRONMENT);
        git_dir = git_dir ? xstrdup(git_dir) : NULL;
        if (!git_dir) {
-               git_dir = read_gitfile_gently(DEFAULT_GIT_DIR_ENVIRONMENT);
+               git_dir = read_gitfile(DEFAULT_GIT_DIR_ENVIRONMENT);
                git_dir = git_dir ? xstrdup(git_dir) : NULL;
        }
        if (!git_dir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/git-am.sh new/git-1.7.6.4/git-am.sh
--- old/git-1.7.6.3/git-am.sh   2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/git-am.sh   2011-09-24 00:51:18.000000000 +0200
@@ -305,7 +305,8 @@
                msgnum=
                ;;
        *)
-               if test -n "$parse_patch" ; then
+               if test -n "$patch_format"
+               then
                        clean_abort "Patch format $patch_format is not 
supported."
                else
                        clean_abort "Patch format detection failed."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/git-mergetool--lib.sh 
new/git-1.7.6.4/git-mergetool--lib.sh
--- old/git-1.7.6.3/git-mergetool--lib.sh       2011-09-12 22:09:32.000000000 
+0200
+++ new/git-1.7.6.4/git-mergetool--lib.sh       2011-09-24 00:51:18.000000000 
+0200
@@ -38,7 +38,7 @@
                while true; do
                        echo "$MERGED seems unchanged."
                        printf "Was the merge successful? [y/n] "
-                       read answer
+                       read answer || return 1
                        case "$answer" in
                        y*|Y*) status=0; break ;;
                        n*|N*) status=1; break ;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/git-mergetool.sh 
new/git-1.7.6.4/git-mergetool.sh
--- old/git-1.7.6.3/git-mergetool.sh    2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/git-mergetool.sh    2011-09-24 00:51:18.000000000 +0200
@@ -72,7 +72,7 @@
 resolve_symlink_merge () {
     while true; do
        printf "Use (l)ocal or (r)emote, or (a)bort? "
-       read ans
+       read ans || return 1
        case "$ans" in
            [lL]*)
                git checkout-index -f --stage=2 -- "$MERGED"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/git.spec new/git-1.7.6.4/git.spec
--- old/git-1.7.6.3/git.spec    2011-09-12 22:09:33.000000000 +0200
+++ new/git-1.7.6.4/git.spec    2011-09-24 00:51:18.000000000 +0200
@@ -1,7 +1,7 @@
 # Pass --without docs to rpmbuild if you don't want the documentation
 
 Name:          git
-Version:       1.7.6.3
+Version:       1.7.6.4
 Release:       1%{?dist}
 Summary:       Core git tools
 License:       GPL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/path.c new/git-1.7.6.4/path.c
--- old/git-1.7.6.3/path.c      2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/path.c      2011-09-24 00:51:18.000000000 +0200
@@ -139,7 +139,7 @@
                strbuf_addch(&buf, '/');
        strbuf_addstr(&buf, ".git");
 
-       git_dir = read_gitfile_gently(buf.buf);
+       git_dir = read_gitfile(buf.buf);
        if (git_dir) {
                strbuf_reset(&buf);
                strbuf_addstr(&buf, git_dir);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/quote.c new/git-1.7.6.4/quote.c
--- old/git-1.7.6.3/quote.c     2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/quote.c     2011-09-24 00:51:18.000000000 +0200
@@ -325,8 +325,12 @@
 
        if (len < 0)
                len = strlen(in);
-       if (prefix && prefix_len < 0)
-               prefix_len = strlen(prefix);
+       if (prefix_len < 0) {
+               if (prefix)
+                       prefix_len = strlen(prefix);
+               else
+                       prefix_len = 0;
+       }
 
        off = 0;
        i = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/refs.c new/git-1.7.6.4/refs.c
--- old/git-1.7.6.3/refs.c      2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/refs.c      2011-09-24 00:51:18.000000000 +0200
@@ -451,7 +451,7 @@
        memcpy(gitdir + len, "/.git", 6);
        len += 5;
 
-       tmp = read_gitfile_gently(gitdir);
+       tmp = read_gitfile(gitdir);
        if (tmp) {
                free(gitdir);
                len = strlen(tmp);
@@ -837,7 +837,7 @@
 
 static inline int bad_ref_char(int ch)
 {
-       if (((unsigned) ch) <= ' ' ||
+       if (((unsigned) ch) <= ' ' || ch == 0x7f ||
            ch == '~' || ch == '^' || ch == ':' || ch == '\\')
                return 1;
        /* 2.13 Pattern Matching Notation */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/setup.c new/git-1.7.6.4/setup.c
--- old/git-1.7.6.3/setup.c     2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/setup.c     2011-09-24 00:51:18.000000000 +0200
@@ -375,7 +375,7 @@
  * Try to read the location of the git directory from the .git file,
  * return path to git directory if found.
  */
-const char *read_gitfile_gently(const char *path)
+const char *read_gitfile(const char *path)
 {
        char *buf;
        char *dir;
@@ -437,7 +437,7 @@
        if (PATH_MAX - 40 < strlen(gitdirenv))
                die("'$%s' too big", GIT_DIR_ENVIRONMENT);
 
-       gitfile = (char*)read_gitfile_gently(gitdirenv);
+       gitfile = (char*)read_gitfile(gitdirenv);
        if (gitfile) {
                gitfile = xstrdup(gitfile);
                gitdirenv = gitfile;
@@ -661,7 +661,7 @@
        if (one_filesystem)
                current_device = get_device_or_die(".", NULL);
        for (;;) {
-               gitfile = 
(char*)read_gitfile_gently(DEFAULT_GIT_DIR_ENVIRONMENT);
+               gitfile = (char*)read_gitfile(DEFAULT_GIT_DIR_ENVIRONMENT);
                if (gitfile)
                        gitdirenv = gitfile = xstrdup(gitfile);
                else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/sha1_file.c new/git-1.7.6.4/sha1_file.c
--- old/git-1.7.6.3/sha1_file.c 2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/sha1_file.c 2011-09-24 00:51:18.000000000 +0200
@@ -380,7 +380,7 @@
 {
        struct lock_file *lock = xcalloc(1, sizeof(struct lock_file));
        int fd = hold_lock_file_for_append(lock, 
git_path("objects/info/alternates"), LOCK_DIE_ON_ERROR);
-       char *alt = mkpath("%s/objects\n", reference);
+       char *alt = mkpath("%s\n", reference);
        write_or_die(fd, alt, strlen(alt));
        if (commit_lock_file(lock))
                die("could not close alternates file");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/submodule.c new/git-1.7.6.4/submodule.c
--- old/git-1.7.6.3/submodule.c 2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/submodule.c 2011-09-24 00:51:18.000000000 +0200
@@ -32,7 +32,7 @@
        const char *git_dir;
 
        strbuf_addf(&objects_directory, "%s/.git", path);
-       git_dir = read_gitfile_gently(objects_directory.buf);
+       git_dir = read_gitfile(objects_directory.buf);
        if (git_dir) {
                strbuf_reset(&objects_directory);
                strbuf_addstr(&objects_directory, git_dir);
@@ -483,7 +483,7 @@
                strbuf_addf(&submodule_path, "%s/%s", work_tree, ce->name);
                strbuf_addf(&submodule_git_dir, "%s/.git", submodule_path.buf);
                strbuf_addf(&submodule_prefix, "%s%s/", prefix, ce->name);
-               git_dir = read_gitfile_gently(submodule_git_dir.buf);
+               git_dir = read_gitfile(submodule_git_dir.buf);
                if (!git_dir)
                        git_dir = submodule_git_dir.buf;
                if (is_directory(git_dir)) {
@@ -521,7 +521,7 @@
        const char *git_dir;
 
        strbuf_addf(&buf, "%s/.git", path);
-       git_dir = read_gitfile_gently(buf.buf);
+       git_dir = read_gitfile(buf.buf);
        if (!git_dir)
                git_dir = buf.buf;
        if (!is_directory(git_dir)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/t/t1402-check-ref-format.sh 
new/git-1.7.6.4/t/t1402-check-ref-format.sh
--- old/git-1.7.6.3/t/t1402-check-ref-format.sh 2011-09-12 22:09:32.000000000 
+0200
+++ new/git-1.7.6.4/t/t1402-check-ref-format.sh 2011-09-24 00:51:18.000000000 
+0200
@@ -18,6 +18,9 @@
 valid_ref 'foo/bar/baz'
 valid_ref 'refs///heads/foo'
 invalid_ref 'heads/foo/'
+valid_ref '/heads/foo'
+valid_ref '///heads/foo'
+invalid_ref '/foo'
 invalid_ref './foo'
 invalid_ref '.refs/foo'
 invalid_ref 'heads/foo..bar'
@@ -27,6 +30,9 @@
 valid_ref 'heads/foo@bar'
 invalid_ref 'heads/v@{ation'
 invalid_ref 'heads/foo\bar'
+invalid_ref "$(printf 'heads/foo\t')"
+invalid_ref "$(printf 'heads/foo\177')"
+valid_ref "$(printf 'heads/fu\303\237')"
 
 test_expect_success "check-ref-format --branch @{-1}" '
        T=$(git write-tree) &&
@@ -70,7 +76,10 @@
 
 valid_ref_normalized 'heads/foo' 'heads/foo'
 valid_ref_normalized 'refs///heads/foo' 'refs/heads/foo'
+valid_ref_normalized '/heads/foo' 'heads/foo'
+valid_ref_normalized '///heads/foo' 'heads/foo'
 invalid_ref_normalized 'foo'
+invalid_ref_normalized '/foo'
 invalid_ref_normalized 'heads/foo/../bar'
 invalid_ref_normalized 'heads/./foo'
 invalid_ref_normalized 'heads\foo'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/t/t3005-ls-files-relative.sh 
new/git-1.7.6.4/t/t3005-ls-files-relative.sh
--- old/git-1.7.6.3/t/t3005-ls-files-relative.sh        1970-01-01 
01:00:00.000000000 +0100
+++ new/git-1.7.6.4/t/t3005-ls-files-relative.sh        2011-09-24 
00:51:18.000000000 +0200
@@ -0,0 +1,72 @@
+#!/bin/sh
+
+test_description='ls-files tests with relative paths
+
+This test runs git ls-files with various relative path arguments.
+'
+
+. ./test-lib.sh
+
+new_line='
+'
+sq=\'
+
+test_expect_success 'prepare' '
+       : >never-mind-me &&
+       git add never-mind-me &&
+       mkdir top &&
+       (
+               cd top &&
+               mkdir sub &&
+               x="x xa xbc xdef xghij xklmno" &&
+               y=$(echo "$x" | tr x y) &&
+               touch $x &&
+               touch $y &&
+               cd sub &&
+               git add ../x*
+       )
+'
+
+test_expect_success 'ls-files with mixed levels' '
+       (
+               cd top/sub &&
+               cat >expect <<-EOF &&
+               ../../never-mind-me
+               ../x
+               EOF
+               git ls-files $(cat expect) >actual &&
+               test_cmp expect actual
+       )
+'
+
+test_expect_success 'ls-files -c' '
+       (
+               cd top/sub &&
+               for f in ../y*
+               do
+                       echo "error: pathspec $sq$f$sq did not match any 
file(s) known to git."
+               done >expect.err &&
+               echo "Did you forget to ${sq}git add${sq}?" >>expect.err &&
+               ls ../x* >expect.out &&
+               test_must_fail git ls-files -c --error-unmatch ../[xy]* 
>actual.out 2>actual.err &&
+               test_cmp expect.out actual.out &&
+               test_cmp expect.err actual.err
+       )
+'
+
+test_expect_success 'ls-files -o' '
+       (
+               cd top/sub &&
+               for f in ../x*
+               do
+                       echo "error: pathspec $sq$f$sq did not match any 
file(s) known to git."
+               done >expect.err &&
+               echo "Did you forget to ${sq}git add${sq}?" >>expect.err &&
+               ls ../y* >expect.out &&
+               test_must_fail git ls-files -o --error-unmatch ../[xy]* 
>actual.out 2>actual.err &&
+               test_cmp expect.out actual.out &&
+               test_cmp expect.err actual.err
+       )
+'
+
+test_done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/t/t5601-clone.sh 
new/git-1.7.6.4/t/t5601-clone.sh
--- old/git-1.7.6.3/t/t5601-clone.sh    2011-09-12 22:09:32.000000000 +0200
+++ new/git-1.7.6.4/t/t5601-clone.sh    2011-09-24 00:51:18.000000000 +0200
@@ -202,9 +202,36 @@
        test_cmp expected dst/.git
 '
 
+test_expect_success 'clone from .git file' '
+       git clone dst/.git dst2
+'
+
 test_expect_success 'clone separate gitdir where target already exists' '
        rm -rf dst &&
        test_must_fail git clone --separate-git-dir realgitdir src dst
 '
 
+test_expect_success 'clone --reference from original' '
+       git clone --shared --bare src src-1 &&
+       git clone --bare src src-2 &&
+       git clone --reference=src-2 --bare src-1 target-8 &&
+       grep /src-2/ target-8/objects/info/alternates
+'
+
+test_expect_success 'clone with more than one --reference' '
+       git clone --bare src src-3 &&
+       git clone --bare src src-4 &&
+       git clone --reference=src-3 --reference=src-4 src target-9 &&
+       grep /src-3/ target-9/.git/objects/info/alternates &&
+       grep /src-4/ target-9/.git/objects/info/alternates
+'
+
+test_expect_success 'clone from original with relative alternate' '
+       mkdir nest &&
+       git clone --bare src nest/src-5 &&
+       echo ../../../src/.git/objects >nest/src-5/objects/info/alternates &&
+       git clone --bare nest/src-5 target-10 &&
+       grep /src/\\.git/objects target-10/objects/info/alternates
+'
+
 test_done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/t/t6040-tracking-info.sh 
new/git-1.7.6.4/t/t6040-tracking-info.sh
--- old/git-1.7.6.3/t/t6040-tracking-info.sh    2011-09-12 22:09:32.000000000 
+0200
+++ new/git-1.7.6.4/t/t6040-tracking-info.sh    2011-09-24 00:51:18.000000000 
+0200
@@ -110,4 +110,18 @@
        grep -q "^refs/heads/master$" actual &&
        cmp expect2 actual2
 '
+
+test_expect_success '--set-upstream @{-1}' '
+       git checkout from-master &&
+       git checkout from-master2 &&
+       git config branch.from-master2.merge > expect2 &&
+       git branch --set-upstream @{-1} follower &&
+       git config branch.from-master.merge > actual &&
+       git config branch.from-master2.merge > actual2 &&
+       git branch --set-upstream from-master follower &&
+       git config branch.from-master.merge > expect &&
+       test_cmp expect2 actual2 &&
+       test_cmp expect actual
+'
+
 test_done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/git-1.7.6.3/version new/git-1.7.6.4/version
--- old/git-1.7.6.3/version     2011-09-12 22:09:33.000000000 +0200
+++ new/git-1.7.6.4/version     2011-09-24 00:51:18.000000000 +0200
@@ -1 +1 @@
-1.7.6.3
+1.7.6.4


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to