diff options
-rw-r--r-- | Documentation/RelNotes-1.5.3.5.txt | 4 | ||||
-rw-r--r-- | Documentation/git-clone.txt | 2 | ||||
-rw-r--r-- | builtin-blame.c | 6 | ||||
-rw-r--r-- | builtin-branch.c | 2 | ||||
-rw-r--r-- | builtin-fetch.c | 2 | ||||
-rw-r--r-- | builtin-reset.c | 24 | ||||
-rwxr-xr-x | git-clone.sh | 5 | ||||
-rwxr-xr-x | git-cvsimport.perl | 1 | ||||
-rwxr-xr-x | git-svn.perl | 2 | ||||
-rw-r--r-- | http-push.c | 15 | ||||
-rw-r--r-- | send-pack.c | 6 | ||||
-rwxr-xr-x | t/t7102-reset.sh | 7 |
12 files changed, 52 insertions, 24 deletions
diff --git a/Documentation/RelNotes-1.5.3.5.txt b/Documentation/RelNotes-1.5.3.5.txt index 4e46d2c2a2..f99a2cd650 100644 --- a/Documentation/RelNotes-1.5.3.5.txt +++ b/Documentation/RelNotes-1.5.3.5.txt @@ -63,8 +63,8 @@ Fixes since v1.5.3.4 * Git segfaulted when reading an invalid .gitattributes file. Fixed. - * post-receive-email example hook fixed was fixed for - non-fast-forward updates. + * post-receive-email example hook was fixed for non-fast-forward + updates. * Documentation updates for supported (but previously undocumented) options of "git-archive" and "git-reflog". diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt index cca14d6b5d..14e58f3866 100644 --- a/Documentation/git-clone.txt +++ b/Documentation/git-clone.txt @@ -12,7 +12,7 @@ SYNOPSIS 'git-clone' [--template=<template_directory>] [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [-o <name>] [-u <upload-pack>] [--reference <repository>] - [--depth <depth>] <repository> [<directory>] + [--depth <depth>] [--] <repository> [<directory>] DESCRIPTION ----------- diff --git a/builtin-blame.c b/builtin-blame.c index 8432b823e6..aedc294eac 100644 --- a/builtin-blame.c +++ b/builtin-blame.c @@ -2215,9 +2215,6 @@ int cmd_blame(int argc, const char **argv, const char *prefix) argv[unk++] = arg; } - if (!incremental) - setup_pager(); - if (!blame_move_score) blame_move_score = BLAME_DEFAULT_MOVE_SCORE; if (!blame_copy_score) @@ -2411,6 +2408,9 @@ int cmd_blame(int argc, const char **argv, const char *prefix) read_mailmap(&mailmap, ".mailmap", NULL); + if (!incremental) + setup_pager(); + assign_blame(&sb, &revs, opt); if (incremental) diff --git a/builtin-branch.c b/builtin-branch.c index d6d5cff6b8..fbd90e42d1 100644 --- a/builtin-branch.c +++ b/builtin-branch.c @@ -148,7 +148,7 @@ static int delete_branches(int argc, const char **argv, int force, int kinds) if (!force && !in_merge_bases(rev, &head_rev, 1)) { - error("The branch '%s' is not a strict subset of " + error("The branch '%s' is not an ancestor of " "your current HEAD.\n" "If you are sure you want to delete it, " "run 'git branch -D %s'.", argv[i], argv[i]); diff --git a/builtin-fetch.c b/builtin-fetch.c index 960b1dae89..5f5b59bfdb 100644 --- a/builtin-fetch.c +++ b/builtin-fetch.c @@ -523,7 +523,7 @@ int cmd_fetch(int argc, const char **argv, const char *prefix) depth = argv[i]; continue; } - if (!strcmp(arg, "--quiet")) { + if (!strcmp(arg, "--quiet") || !strcmp(arg, "-q")) { quiet = 1; continue; } diff --git a/builtin-reset.c b/builtin-reset.c index e1dc31e0eb..5467e36c73 100644 --- a/builtin-reset.c +++ b/builtin-reset.c @@ -113,10 +113,17 @@ static int update_index_refresh(void) return run_command_v_opt(argv_update_index, RUN_GIT_CMD); } +struct update_cb_data { + int index_fd; + struct lock_file *lock; + int exit_code; +}; + static void update_index_from_diff(struct diff_queue_struct *q, struct diff_options *opt, void *data) { int i; + struct update_cb_data *cb = data; /* do_diff_cache() mangled the index */ discard_cache(); @@ -133,29 +140,34 @@ static void update_index_from_diff(struct diff_queue_struct *q, } else remove_file_from_cache(one->path); } + + cb->exit_code = write_cache(cb->index_fd, active_cache, active_nr) || + close(cb->index_fd) || + commit_locked_index(cb->lock); } static int read_from_tree(const char *prefix, const char **argv, unsigned char *tree_sha1) { - struct lock_file *lock = xcalloc(1, sizeof(struct lock_file)); - int index_fd; struct diff_options opt; + struct update_cb_data cb; memset(&opt, 0, sizeof(opt)); diff_tree_setup_paths(get_pathspec(prefix, (const char **)argv), &opt); opt.output_format = DIFF_FORMAT_CALLBACK; opt.format_callback = update_index_from_diff; + opt.format_callback_data = &cb; - index_fd = hold_locked_index(lock, 1); + cb.lock = xcalloc(1, sizeof(struct lock_file)); + cb.index_fd = hold_locked_index(cb.lock, 1); + cb.exit_code = 0; read_cache(); if (do_diff_cache(tree_sha1, &opt)) return 1; diffcore_std(&opt); diff_flush(&opt); - return write_cache(index_fd, active_cache, active_nr) || - close(index_fd) || - commit_locked_index(lock); + + return cb.exit_code; } static void prepend_reflog_action(const char *action, char *buf, size_t size) diff --git a/git-clone.sh b/git-clone.sh index 0ea3c24f59..3f00693608 100755 --- a/git-clone.sh +++ b/git-clone.sh @@ -14,7 +14,7 @@ die() { } usage() { - die "Usage: $0 [--template=<template_directory>] [--reference <reference-repo>] [--bare] [-l [-s]] [-q] [-u <upload-pack>] [--origin <name>] [--depth <n>] [-n] <repo> [<dir>]" + die "Usage: $0 [--template=<template_directory>] [--reference <reference-repo>] [--bare] [-l [-s]] [-q] [-u <upload-pack>] [--origin <name>] [--depth <n>] [-n] [--] <repo> [<dir>]" } get_repo_base() { @@ -160,6 +160,9 @@ while *,--depth) shift depth="--depth=$1";; + *,--) + shift + break ;; *,-*) usage ;; *) break ;; esac diff --git a/git-cvsimport.perl b/git-cvsimport.perl index 2954fb846e..e4bc2b54f6 100755 --- a/git-cvsimport.perl +++ b/git-cvsimport.perl @@ -818,6 +818,7 @@ while (<CVS>) { $state = 4; } elsif ($state == 4 and s/^Branch:\s+//) { s/\s+$//; + tr/_/\./ if ( $opt_u ); s/[\/]/$opt_s/g; $branch = $_; $state = 5; diff --git a/git-svn.perl b/git-svn.perl index 22bb47b34d..4900f57f18 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -252,7 +252,7 @@ Usage: $0 <command> [options] [arguments]\n next if $cmd && $cmd ne $_; next if /^multi-/; # don't show deprecated commands print $fd ' ',pack('A17',$_),$cmd{$_}->[1],"\n"; - foreach (keys %{$cmd{$_}->[2]}) { + foreach (sort keys %{$cmd{$_}->[2]}) { # mixed-case options are for .git/config only next if /[A-Z]/ && /^[a-z]+$/i; # prints out arguments as they should be passed: diff --git a/http-push.c b/http-push.c index c02a3af634..9314621a11 100644 --- a/http-push.c +++ b/http-push.c @@ -2241,7 +2241,11 @@ static int delete_remote_branch(char *pattern, int force) /* Remote branch must be an ancestor of remote HEAD */ if (!verify_merge_base(head_sha1, remote_ref->old_sha1)) { - return error("The branch '%s' is not a strict subset of your current HEAD.\nIf you are sure you want to delete it, run:\n\t'git http-push -D %s %s'", remote_ref->name, remote->url, pattern); + return error("The branch '%s' is not an ancestor " + "of your current HEAD.\n" + "If you are sure you want to delete it," + " run:\n\t'git http-push -D %s %s'", + remote_ref->name, remote->url, pattern); } } @@ -2417,16 +2421,17 @@ int main(int argc, char **argv) if (!has_sha1_file(ref->old_sha1) || !ref_newer(ref->peer_ref->new_sha1, ref->old_sha1)) { - /* We do not have the remote ref, or + /* + * We do not have the remote ref, or * we know that the remote ref is not * an ancestor of what we are trying to * push. Either way this can be losing * commits at the remote end and likely * we were not up to date to begin with. */ - error("remote '%s' is not a strict " - "subset of local ref '%s'. " - "maybe you are not up-to-date and " + error("remote '%s' is not an ancestor of\n" + "local '%s'.\n" + "Maybe you are not up-to-date and " "need to pull first?", ref->name, ref->peer_ref->name); diff --git a/send-pack.c b/send-pack.c index 5e127a1b7b..b74fd454f2 100644 --- a/send-pack.c +++ b/send-pack.c @@ -297,9 +297,9 @@ static int send_pack(int in, int out, struct remote *remote, int nr_refspec, cha * commits at the remote end and likely * we were not up to date to begin with. */ - error("remote '%s' is not a strict " - "subset of local ref '%s'. " - "maybe you are not up-to-date and " + error("remote '%s' is not an ancestor of\n" + " local '%s'.\n" + " Maybe you are not up-to-date and " "need to pull first?", ref->name, ref->peer_ref->name); diff --git a/t/t7102-reset.sh b/t/t7102-reset.sh index f64b1cbf75..cea9afb764 100755 --- a/t/t7102-reset.sh +++ b/t/t7102-reset.sh @@ -402,4 +402,11 @@ test_expect_success 'test resetting the index at give paths' ' ' +test_expect_success 'resetting an unmodified path is a no-op' ' + git reset --hard && + git reset -- file1 && + git diff-files --exit-code && + git diff-index --cached --exit-code HEAD +' + test_done |