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]
