From 822f7c7349d61f6075961ce42c1bd1a85cf999e5 Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Sun, 23 Sep 2007 22:42:08 +0200 Subject: Supplant the "while case ... break ;; esac" idiom A lot of shell scripts contained stuff starting with while case "$#" in 0) break ;; esac and similar. I consider breaking out of the condition instead of the body od the loop ugly, and the implied "true" value of the non-matching case is not really obvious to humans at first glance. It happens not to be obvious to some BSD shells, either, but that's because they are not POSIX-compliant. In most cases, this has been replaced by a straight condition using "test". "case" has the advantage of being faster than "test" on vintage shells where "test" is not a builtin. Since none of them is likely to run the git scripts, anyway, the added readability should be worth the change. A few loops have had their termination condition expressed differently. Signed-off-by: David Kastrup Signed-off-by: Junio C Hamano --- git-pull.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'git-pull.sh') diff --git a/git-pull.sh b/git-pull.sh index 5e96d1f228..c3f05f56de 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -16,7 +16,7 @@ test -z "$(git ls-files -u)" || die "You are in the middle of a conflicted merge." strategy_args= no_summary= no_commit= squash= -while case "$#,$1" in 0) break ;; *,-*) ;; *) break ;; esac +while : do case "$1" in -n|--n|--no|--no-|--no-s|--no-su|--no-sum|--no-summ|\ @@ -46,8 +46,8 @@ do -h|--h|--he|--hel|--help) usage ;; - -*) - # Pass thru anything that is meant for fetch. + *) + # Pass thru anything that may be meant for fetch. break ;; esac -- cgit v1.3 From 8fc293cb1e639c9ea555a8e95e3a7801fc1d1be8 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Tue, 2 Oct 2007 18:36:30 -0500 Subject: Make git-pull complain and give advice when there is nothing to merge with Signed-off-by: Federico Mena Quintero Signed-off-by: Junio C Hamano --- git-pull.sh | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'git-pull.sh') diff --git a/git-pull.sh b/git-pull.sh index c3f05f56de..74bfc16744 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -97,10 +97,24 @@ case "$merge_head" in esac curr_branch=${curr_branch#refs/heads/} - echo >&2 "Warning: No merge candidate found because value of config option - \"branch.${curr_branch}.merge\" does not match any remote branch fetched." - echo >&2 "No changes." - exit 0 + echo >&2 "You asked me to pull without telling me which branch you" + echo >&2 "want to merge with, and 'branch.${curr_branch}.merge' in" + echo >&2 "your configuration file does not tell me either. Please" + echo >&2 "name which branch you want to merge on the command line and" + echo >&2 "try again (e.g. 'git pull ')." + echo >&2 "See git-pull(1) for details on the refspec." + echo >&2 + echo >&2 "If you often merge with the same branch, you may want to" + echo >&2 "configure the following variables in your configuration" + echo >&2 "file:" + echo >&2 + echo >&2 " branch.${curr_branch}.remote = " + echo >&2 " branch.${curr_branch}.merge = " + echo >&2 " remote..url = " + echo >&2 " remote..fetch = " + echo >&2 + echo >&2 "See git-config(1) for details." + exit 1 ;; ?*' '?*) if test -z "$orig_head" -- cgit v1.3 From 5072a32382fb65fa7295811575d0f5c09cbe0dc3 Mon Sep 17 00:00:00 2001 From: Lars Hjemli Date: Mon, 29 Oct 2007 09:41:18 +0100 Subject: Teach git-pull about --[no-]ff, --no-squash and --commit These options are supported by git-merge, but git-pull didn't know about them. Signed-off-by: Lars Hjemli Signed-off-by: Junio C Hamano --- git-pull.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'git-pull.sh') diff --git a/git-pull.sh b/git-pull.sh index 74bfc16744..75ec011969 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -4,7 +4,7 @@ # # Fetch one or more remote refs and merge it/them into the current HEAD. -USAGE='[-n | --no-summary] [--no-commit] [-s strategy]... [] ...' +USAGE='[-n | --no-summary] [--[no-]commit] [--[no-]squash] [--[no-]ff] [-s strategy]... [] ...' LONG_USAGE='Fetch one or more remote refs and merge it/them into the current HEAD.' SUBDIRECTORY_OK=Yes . git-sh-setup @@ -15,7 +15,7 @@ cd_to_toplevel test -z "$(git ls-files -u)" || die "You are in the middle of a conflicted merge." -strategy_args= no_summary= no_commit= squash= +strategy_args= no_summary= no_commit= squash= no_ff= while : do case "$1" in @@ -27,8 +27,16 @@ do ;; --no-c|--no-co|--no-com|--no-comm|--no-commi|--no-commit) no_commit=--no-commit ;; + --c|--co|--com|--comm|--commi|--commit) + no_commit=--commit ;; --sq|--squ|--squa|--squas|--squash) squash=--squash ;; + --no-sq|--no-squ|--no-squa|--no-squas|--no-squash) + squash=--no-squash ;; + --ff) + no_ff=--ff ;; + --no-ff) + no_ff=--no-ff ;; -s=*|--s=*|--st=*|--str=*|--stra=*|--strat=*|--strate=*|\ --strateg=*|--strategy=*|\ -s|--s|--st|--str|--stra|--strat|--strate|--strateg|--strategy) @@ -133,5 +141,5 @@ then fi merge_name=$(git fmt-merge-msg <"$GIT_DIR/FETCH_HEAD") || exit -exec git-merge $no_summary $no_commit $squash $strategy_args \ +exec git-merge $no_summary $no_commit $squash $no_ff $strategy_args \ "$merge_name" HEAD $merge_head -- cgit v1.3 From 8f321a39257a06db014a3b6ae5dce839821cdb16 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 6 Nov 2007 01:50:02 -0800 Subject: scripts: Add placeholders for OPTIONS_SPEC --text follows this line-- These commands currently lack OPTIONS_SPEC; allow people to easily list with "git grep 'OPTIONS_SPEC=$'" what they can help improving. Signed-off-by: Junio C Hamano --- git-bisect.sh | 1 + git-commit.sh | 1 + git-filter-branch.sh | 1 + git-lost-found.sh | 1 + git-mergetool.sh | 1 + git-pull.sh | 1 + git-rebase--interactive.sh | 1 + git-rebase.sh | 1 + git-request-pull.sh | 1 + git-stash.sh | 1 + git-submodule.sh | 1 + 11 files changed, 11 insertions(+) (limited to 'git-pull.sh') diff --git a/git-bisect.sh b/git-bisect.sh index b74f44df60..c18bd32bf4 100755 --- a/git-bisect.sh +++ b/git-bisect.sh @@ -22,6 +22,7 @@ git bisect log git bisect run ... use ... to automatically bisect.' +OPTIONS_SPEC= . git-sh-setup require_work_tree diff --git a/git-commit.sh b/git-commit.sh index fcb8443bdf..9a636e55cc 100755 --- a/git-commit.sh +++ b/git-commit.sh @@ -5,6 +5,7 @@ USAGE='[-a | --interactive] [-s] [-v] [--no-verify] [-m | -F | (-C|-c) | --amend] [-u] [-e] [--author ] [--template ] [[-i | -o] ...]' SUBDIRECTORY_OK=Yes +OPTIONS_SPEC= . git-sh-setup require_work_tree diff --git a/git-filter-branch.sh b/git-filter-branch.sh index ffcc408ee5..c9f515d0ee 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -92,6 +92,7 @@ USAGE="[--env-filter ] [--tree-filter ] \ [--original ] [-d ] [-f | --force] \ [...]" +OPTIONS_SPEC= . git-sh-setup git diff-files --quiet && diff --git a/git-lost-found.sh b/git-lost-found.sh index c0b00e0fd1..a5a32e7c70 100755 --- a/git-lost-found.sh +++ b/git-lost-found.sh @@ -2,6 +2,7 @@ USAGE='' SUBDIRECTORY_OK='Yes' +OPTIONS_SPEC= . git-sh-setup if [ "$#" != "0" ] diff --git a/git-mergetool.sh b/git-mergetool.sh index a68b40386b..5587c5ecea 100755 --- a/git-mergetool.sh +++ b/git-mergetool.sh @@ -10,6 +10,7 @@ USAGE='[--tool=tool] [file to merge] ...' SUBDIRECTORY_OK=Yes +OPTIONS_SPEC= . git-sh-setup require_work_tree prefix=$(git rev-parse --show-prefix) diff --git a/git-pull.sh b/git-pull.sh index 75ec011969..30fdc57310 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -7,6 +7,7 @@ USAGE='[-n | --no-summary] [--[no-]commit] [--[no-]squash] [--[no-]ff] [-s strategy]... [] ...' LONG_USAGE='Fetch one or more remote refs and merge it/them into the current HEAD.' SUBDIRECTORY_OK=Yes +OPTIONS_SPEC= . git-sh-setup set_reflog_action "pull $*" require_work_tree diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 76dc679e62..6d14092889 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -13,6 +13,7 @@ USAGE='(--continue | --abort | --skip | [--preserve-merges] [--verbose] [--onto ] [])' +OPTIONS_SPEC= . git-sh-setup require_work_tree diff --git a/git-rebase.sh b/git-rebase.sh index 224cca98ee..e3ad7dedc4 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -29,6 +29,7 @@ Example: git-rebase master~1 topic ' SUBDIRECTORY_OK=Yes +OPTIONS_SPEC= . git-sh-setup set_reflog_action rebase require_work_tree diff --git a/git-request-pull.sh b/git-request-pull.sh index a992430679..90d969c625 100755 --- a/git-request-pull.sh +++ b/git-request-pull.sh @@ -8,6 +8,7 @@ USAGE=' []' LONG_USAGE='Summarizes the changes since to the standard output, and includes in the message generated.' SUBDIRECTORY_OK='Yes' +OPTIONS_SPEC= . git-sh-setup . git-parse-remote diff --git a/git-stash.sh b/git-stash.sh index 5bbda47b7b..9cabd5dc2c 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -4,6 +4,7 @@ USAGE='[ | list | show | apply | clear]' SUBDIRECTORY_OK=Yes +OPTIONS_SPEC= . git-sh-setup require_work_tree cd_to_toplevel diff --git a/git-submodule.sh b/git-submodule.sh index 4aaaaab0d8..1c656be1cf 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -5,6 +5,7 @@ # Copyright (c) 2007 Lars Hjemli USAGE='[--quiet] [--cached] [add [-b branch]|status|init|update] [--] [...]' +OPTIONS_SPEC= . git-sh-setup require_work_tree -- cgit v1.3 From cd67e4d46b122b161f2ad7d943e4ae7aa8df6cf5 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 28 Nov 2007 13:11:07 +0000 Subject: Teach 'git pull' about --rebase When calling 'git pull' with the '--rebase' option, it performs a fetch + rebase instead of a fetch + merge. This behavior is more desirable than fetch + pull when a topic branch is ready to be submitted and needs to be update. fetch + rebase might also be considered a better workflow with shared repositories in any case, or for contributors to a centrally managed repository, such as WINE's. As a convenience, you can set the default behavior for a branch by defining the config variable branch..rebase, which is interpreted as a bool. This setting can be overridden on the command line by --rebase and --no-rebase. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- Documentation/config.txt | 7 +++++++ Documentation/git-pull.txt | 10 ++++++++++ git-pull.sh | 11 ++++++++++- t/t5520-pull.sh | 22 ++++++++++++++++++++++ 4 files changed, 49 insertions(+), 1 deletion(-) (limited to 'git-pull.sh') diff --git a/Documentation/config.txt b/Documentation/config.txt index 39d1ef5298..4124ad2970 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -346,6 +346,13 @@ branch..mergeoptions:: option values containing whitespace characters are currently not supported. +branch..rebase:: + When true, rebase the branch on top of the fetched branch, + instead of merging the default branch from the default remote. + *NOTE*: this is a possibly dangerous operation; do *not* use + it unless you understand the implications (see gitlink:git-rebase[1] + for details). + clean.requireForce:: A boolean to make git-clean do nothing unless given -f or -n. Defaults to true. diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt index e1eb2c1d00..d4d26afea0 100644 --- a/Documentation/git-pull.txt +++ b/Documentation/git-pull.txt @@ -33,6 +33,16 @@ include::urls-remotes.txt[] include::merge-strategies.txt[] +\--rebase:: + Instead of a merge, perform a rebase after fetching. + *NOTE:* This is a potentially _dangerous_ mode of operation. + It rewrites history, which does not bode well when you + published that history already. Do *not* use this option + unless you have read gitlink:git-rebase[1] carefully. + +\--no-rebase:: + Override earlier \--rebase. + DEFAULT BEHAVIOUR ----------------- diff --git a/git-pull.sh b/git-pull.sh index 30fdc57310..698e82b116 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -17,6 +17,9 @@ test -z "$(git ls-files -u)" || die "You are in the middle of a conflicted merge." strategy_args= no_summary= no_commit= squash= no_ff= +curr_branch=$(git symbolic-ref -q HEAD) +curr_branch_short=$(echo "$curr_branch" | sed "s|refs/heads/||") +rebase=$(git config --bool branch.$curr_branch_short.rebase) while : do case "$1" in @@ -52,6 +55,12 @@ do esac strategy_args="${strategy_args}-s $strategy " ;; + -r|--r|--re|--reb|--reba|--rebas|--rebase) + rebase=true + ;; + --no-r|--no-re|--no-reb|--no-reba|--no-rebas|--no-rebase) + rebase=false + ;; -h|--h|--he|--hel|--help) usage ;; @@ -95,7 +104,6 @@ merge_head=$(sed -e '/ not-for-merge /d' \ case "$merge_head" in '') - curr_branch=$(git symbolic-ref -q HEAD) case $? in 0) ;; 1) echo >&2 "You are not currently on a branch; you must explicitly" @@ -142,5 +150,6 @@ then fi merge_name=$(git fmt-merge-msg <"$GIT_DIR/FETCH_HEAD") || exit +test true = "$rebase" && exec git-rebase $merge_head exec git-merge $no_summary $no_commit $squash $no_ff $strategy_args \ "$merge_name" HEAD $merge_head diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh index 93eaf2c154..52b3a0c6dd 100755 --- a/t/t5520-pull.sh +++ b/t/t5520-pull.sh @@ -53,4 +53,26 @@ test_expect_success 'the default remote . should not break explicit pull' ' test `cat file` = modified ' +test_expect_success '--rebase' ' + git branch to-rebase && + echo modified again > file && + git commit -m file file && + git checkout to-rebase && + echo new > file2 && + git add file2 && + git commit -m "new file" && + git tag before-rebase && + git pull --rebase . copy && + test $(git rev-parse HEAD^) = $(git rev-parse copy) && + test new = $(git show HEAD:file2) +' + +test_expect_success 'branch.to-rebase.rebase' ' + git reset --hard before-rebase && + git config branch.to-rebase.rebase 1 && + git pull . copy && + test $(git rev-parse HEAD^) = $(git rev-parse copy) && + test new = $(git show HEAD:file2) +' + test_done -- cgit v1.3 From 441ed4131b2d735fea08e4f6277c12b13acebd53 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 28 Dec 2007 13:58:43 -0800 Subject: "git pull --tags": error out with a better message. When "git pull --tags" is run without any other arguments, the standard error message "You told me to fetch and merge stuff but there is nothing to merge! You might want to fix your config" is given. While the error may be technically correct, fixing the config would not help, as "git pull --tags" itself tells "git fetch" not to use the configured refspecs. This commit makes "git pull --tags" to issue a different error message to avoid confusion. This is merely an interim solution. In the longer term, it would be a better approach to change the semantics of --tags option to make "git fetch" and "git pull" to: (1) behave as if no --tags was given (so an explicit refspec on the command line overrides configured ones, or no explicit refspecs on the command line takes configured ones); but (2) no auto-following of tags is made even when using configured refspecs; and (3) fetch all tags as not-for-merge entries". Then we would not need to have this separate error message, as the ordinary merge will happen even with the --tags option. Signed-off-by: Junio C Hamano --- git-pull.sh | 66 +++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 26 deletions(-) (limited to 'git-pull.sh') diff --git a/git-pull.sh b/git-pull.sh index 698e82b116..fa97b0f356 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -72,6 +72,40 @@ do shift done +error_on_no_merge_candidates () { + exec >&2 + for opt + do + case "$opt" in + -t|--t|--ta|--tag|--tags) + echo "Fetching tags only, you probably meant:" + echo " git fetch --tags" + exit 1 + esac + done + + curr_branch=${curr_branch#refs/heads/} + + echo "You asked me to pull without telling me which branch you" + echo "want to merge with, and 'branch.${curr_branch}.merge' in" + echo "your configuration file does not tell me either. Please" + echo "name which branch you want to merge on the command line and" + echo "try again (e.g. 'git pull ')." + echo "See git-pull(1) for details on the refspec." + echo + echo "If you often merge with the same branch, you may want to" + echo "configure the following variables in your configuration" + echo "file:" + echo + echo " branch.${curr_branch}.remote = " + echo " branch.${curr_branch}.merge = " + echo " remote..url = " + echo " remote..fetch = " + echo + echo "See git-config(1) for details." + exit 1 +} + orig_head=$(git rev-parse --verify HEAD 2>/dev/null) git-fetch --update-head-ok "$@" || exit 1 @@ -105,33 +139,13 @@ merge_head=$(sed -e '/ not-for-merge /d' \ case "$merge_head" in '') case $? in - 0) ;; - 1) echo >&2 "You are not currently on a branch; you must explicitly" - echo >&2 "specify which branch you wish to merge:" - echo >&2 " git pull " - exit 1;; - *) exit $?;; + 0) error_on_no_merge_candidates "$@";; + 1) echo >&2 "You are not currently on a branch; you must explicitly" + echo >&2 "specify which branch you wish to merge:" + echo >&2 " git pull " + exit 1;; + *) exit $?;; esac - curr_branch=${curr_branch#refs/heads/} - - echo >&2 "You asked me to pull without telling me which branch you" - echo >&2 "want to merge with, and 'branch.${curr_branch}.merge' in" - echo >&2 "your configuration file does not tell me either. Please" - echo >&2 "name which branch you want to merge on the command line and" - echo >&2 "try again (e.g. 'git pull ')." - echo >&2 "See git-pull(1) for details on the refspec." - echo >&2 - echo >&2 "If you often merge with the same branch, you may want to" - echo >&2 "configure the following variables in your configuration" - echo >&2 "file:" - echo >&2 - echo >&2 " branch.${curr_branch}.remote = " - echo >&2 " branch.${curr_branch}.merge = " - echo >&2 " remote..url = " - echo >&2 " remote..fetch = " - echo >&2 - echo >&2 "See git-config(1) for details." - exit 1 ;; ?*' '?*) if test -z "$orig_head" -- cgit v1.3 From c85c79279df2c8a583d95449d1029baba41f8660 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Sat, 26 Jan 2008 18:04:37 +0000 Subject: pull --rebase: be cleverer with rebased upstream branches When the upstream branch is tracked, we can detect if that branch was rebased since it was last fetched. Teach git to use that information to rebase from the old remote head onto the new remote head. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- Documentation/git-pull.txt | 6 +++++- git-pull.sh | 12 +++++++++++- t/t5520-pull.sh | 17 +++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) (limited to 'git-pull.sh') diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt index f9f1e0d30b..4cc633a5ec 100644 --- a/Documentation/git-pull.txt +++ b/Documentation/git-pull.txt @@ -35,7 +35,11 @@ include::urls-remotes.txt[] include::merge-strategies.txt[] \--rebase:: - Instead of a merge, perform a rebase after fetching. + Instead of a merge, perform a rebase after fetching. If + there is a remote ref for the upstream branch, and this branch + was rebased since last fetched, the rebase uses that information + to avoid rebasing non-local changes. + *NOTE:* This is a potentially _dangerous_ mode of operation. It rewrites history, which does not bode well when you published that history already. Do *not* use this option diff --git a/git-pull.sh b/git-pull.sh index fa97b0f356..46da0f4ca2 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -106,6 +106,15 @@ error_on_no_merge_candidates () { exit 1 } +test true = "$rebase" && { + . git-parse-remote && + origin="$1" + test -z "$origin" && origin=$(get_default_remote) + reflist="$(get_remote_refs_for_fetch "$@" 2>/dev/null | + sed "s|refs/heads/\(.*\):|\1|")" && + oldremoteref="$(git rev-parse --verify \ + "refs/remotes/$origin/$reflist" 2>/dev/null)" +} orig_head=$(git rev-parse --verify HEAD 2>/dev/null) git-fetch --update-head-ok "$@" || exit 1 @@ -164,6 +173,7 @@ then fi merge_name=$(git fmt-merge-msg <"$GIT_DIR/FETCH_HEAD") || exit -test true = "$rebase" && exec git-rebase $merge_head +test true = "$rebase" && + exec git-rebase --onto $merge_head ${oldremoteref:-$merge_head} exec git-merge $no_summary $no_commit $squash $no_ff $strategy_args \ "$merge_name" HEAD $merge_head diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh index 52b3a0c6dd..9484129ca5 100755 --- a/t/t5520-pull.sh +++ b/t/t5520-pull.sh @@ -71,8 +71,25 @@ test_expect_success 'branch.to-rebase.rebase' ' git reset --hard before-rebase && git config branch.to-rebase.rebase 1 && git pull . copy && + git config branch.to-rebase.rebase 0 && test $(git rev-parse HEAD^) = $(git rev-parse copy) && test new = $(git show HEAD:file2) ' +test_expect_success '--rebase with rebased upstream' ' + + git remote add -f me . && + git checkout copy && + git reset --hard HEAD^ && + echo conflicting modification > file && + git commit -m conflict file && + git checkout to-rebase && + echo file > file2 && + git commit -m to-rebase file2 && + git pull --rebase me copy && + test "conflicting modification" = "$(cat file)" && + test file = $(cat file2) + +' + test_done -- cgit v1.3 From 0d2dd191cdfa3f1795c4df60a5cfb0f7e58c097a Mon Sep 17 00:00:00 2001 From: Jay Soffian Date: Fri, 22 Feb 2008 19:52:29 -0500 Subject: pull: pass --strategy along to to rebase rebase supports --strategy, so pull should pass the option along to it. Signed-off-by: Jay Soffian Signed-off-by: Junio C Hamano --- git-pull.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'git-pull.sh') diff --git a/git-pull.sh b/git-pull.sh index 46da0f4ca2..3ce32b5f21 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -174,6 +174,7 @@ fi merge_name=$(git fmt-merge-msg <"$GIT_DIR/FETCH_HEAD") || exit test true = "$rebase" && - exec git-rebase --onto $merge_head ${oldremoteref:-$merge_head} + exec git-rebase $strategy_args --onto $merge_head \ + ${oldremoteref:-$merge_head} exec git-merge $no_summary $no_commit $squash $no_ff $strategy_args \ "$merge_name" HEAD $merge_head -- cgit v1.3 From d8abe148bece83f6c3e5ebe6075aef236322ed74 Mon Sep 17 00:00:00 2001 From: SZEDER Gábor Date: Sun, 6 Apr 2008 03:23:43 +0200 Subject: merge, pull: introduce '--(no-)stat' option MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This option has the same effect as '--(no-)summary' (i.e. whether to show a diffsat at the end of the merge or not), and it is consistent with the '--stat' option of other git commands. Documentation, tests, and bash completion are updaed accordingly, and the old --summary option is marked as being deprected. Signed-off-by: SZEDER Gábor Signed-off-by: Junio C Hamano --- Documentation/git-merge.txt | 2 +- Documentation/merge-options.txt | 8 ++++++-- contrib/completion/git-completion.bash | 2 +- git-merge.sh | 10 ++++++---- git-pull.sh | 16 +++++++--------- t/t7600-merge.sh | 23 +++++++++++++++++++---- 6 files changed, 40 insertions(+), 21 deletions(-) (limited to 'git-pull.sh') diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt index 821e21bba3..ef1f055c85 100644 --- a/Documentation/git-merge.txt +++ b/Documentation/git-merge.txt @@ -9,7 +9,7 @@ git-merge - Join two or more development histories together SYNOPSIS -------- [verse] -'git-merge' [-n] [--summary] [--no-commit] [--squash] [-s ]... +'git-merge' [-n] [--stat] [--no-commit] [--squash] [-s ]... [-m ] ... 'git-merge' HEAD ... diff --git a/Documentation/merge-options.txt b/Documentation/merge-options.txt index 9f1fc82550..7904172644 100644 --- a/Documentation/merge-options.txt +++ b/Documentation/merge-options.txt @@ -1,10 +1,14 @@ ---summary:: +--stat:: Show a diffstat at the end of the merge. The diffstat is also controlled by the configuration option merge.diffstat. --n, \--no-summary:: +-n, \--no-stat:: Do not show diffstat at the end of the merge. +--summary, \--no-summary:: + Synonyms to --stat and --no-stat; these are deprecated and will be + removed in the future. + --no-commit:: Perform the merge but pretend the merge failed and do not autocommit, to give the user a chance to inspect and diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 4d81963b1d..0f54cfd8a3 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -779,7 +779,7 @@ _git_merge () ;; --*) __gitcomp " - --no-commit --no-summary --squash --strategy + --no-commit --no-stat --squash --strategy " return esac diff --git a/git-merge.sh b/git-merge.sh index 7dbbb1d79d..0b15924006 100755 --- a/git-merge.sh +++ b/git-merge.sh @@ -8,8 +8,10 @@ OPTIONS_SPEC="\ git-merge [options] ... git-merge [options] HEAD -- -summary show a diffstat at the end of the merge -n,no-summary don't show a diffstat at the end of the merge +stat show a diffstat at the end of the merge +n,no-stat don't show a diffstat at the end of the merge +summary (synonym to --stat) +no-summary (synonym to --no-stat) squash create a single commit instead of doing a merge commit perform a commit if the merge sucesses (default) ff allow fast forward (default) @@ -148,9 +150,9 @@ merge_name () { parse_config () { while test $# != 0; do case "$1" in - -n|--no-summary) + -n|--no-stat|--no-summary) show_diffstat=false ;; - --summary) + --stat|--summary) show_diffstat=t ;; --squash) test "$allow_fast_forward" = t || diff --git a/git-pull.sh b/git-pull.sh index 3ce32b5f21..ed83ce1e4f 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -4,7 +4,7 @@ # # Fetch one or more remote refs and merge it/them into the current HEAD. -USAGE='[-n | --no-summary] [--[no-]commit] [--[no-]squash] [--[no-]ff] [-s strategy]... [] ...' +USAGE='[-n | --no-stat] [--[no-]commit] [--[no-]squash] [--[no-]ff] [-s strategy]... [] ...' LONG_USAGE='Fetch one or more remote refs and merge it/them into the current HEAD.' SUBDIRECTORY_OK=Yes OPTIONS_SPEC= @@ -16,19 +16,17 @@ cd_to_toplevel test -z "$(git ls-files -u)" || die "You are in the middle of a conflicted merge." -strategy_args= no_summary= no_commit= squash= no_ff= +strategy_args= no_stat= no_commit= squash= no_ff= curr_branch=$(git symbolic-ref -q HEAD) curr_branch_short=$(echo "$curr_branch" | sed "s|refs/heads/||") rebase=$(git config --bool branch.$curr_branch_short.rebase) while : do case "$1" in - -n|--n|--no|--no-|--no-s|--no-su|--no-sum|--no-summ|\ - --no-summa|--no-summar|--no-summary) - no_summary=-n ;; - --summary) - no_summary=$1 - ;; + -n|--no-stat|--no-summary) + no_stat=-n ;; + --stat|--summary) + no_stat=$1 ;; --no-c|--no-co|--no-com|--no-comm|--no-commi|--no-commit) no_commit=--no-commit ;; --c|--co|--com|--comm|--commi|--commit) @@ -176,5 +174,5 @@ merge_name=$(git fmt-merge-msg <"$GIT_DIR/FETCH_HEAD") || exit test true = "$rebase" && exec git-rebase $strategy_args --onto $merge_head \ ${oldremoteref:-$merge_head} -exec git-merge $no_summary $no_commit $squash $no_ff $strategy_args \ +exec git-merge $no_stat $no_commit $squash $no_ff $strategy_args \ "$merge_name" HEAD $merge_head diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh index 56869aceed..dd3eb97363 100755 --- a/t/t7600-merge.sh +++ b/t/t7600-merge.sh @@ -364,7 +364,7 @@ test_expect_success 'merge c1 with c2 (squash in config)' ' test_debug 'gitk --all' -test_expect_success 'override config option -n' ' +test_expect_success 'override config option -n with --summary' ' git reset --hard c1 && git config branch.master.mergeoptions "-n" && test_tick && @@ -373,15 +373,30 @@ test_expect_success 'override config option -n' ' verify_parents $c1 $c2 && if ! grep "^ file | *2 +-$" diffstat.txt then - echo "[OOPS] diffstat was not generated" + echo "[OOPS] diffstat was not generated with --summary" + false + fi +' + +test_expect_success 'override config option -n with --stat' ' + git reset --hard c1 && + git config branch.master.mergeoptions "-n" && + test_tick && + git merge --stat c2 >diffstat.txt && + verify_merge file result.1-5 msg.1-5 && + verify_parents $c1 $c2 && + if ! grep "^ file | *2 +-$" diffstat.txt + then + echo "[OOPS] diffstat was not generated with --stat" + false fi ' test_debug 'gitk --all' -test_expect_success 'override config option --summary' ' +test_expect_success 'override config option --stat' ' git reset --hard c1 && - git config branch.master.mergeoptions "--summary" && + git config branch.master.mergeoptions "--stat" && test_tick && git merge -n c2 >diffstat.txt && verify_merge file result.1-5 msg.1-5 && -- cgit v1.3 From efb779f8873e5aa36be29a4e551186c62c1b580c Mon Sep 17 00:00:00 2001 From: SZEDER Gábor Date: Sun, 6 Apr 2008 03:23:46 +0200 Subject: merge, pull: add '--(no-)log' command line option MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These are the command line option equivalents of the 'merge.log' config variable. The patch also updates documentation and bash completion accordingly, and adds a test. Signed-off-by: SZEDER Gábor Signed-off-by: Junio C Hamano --- Documentation/merge-options.txt | 9 +++++++++ contrib/completion/git-completion.bash | 2 +- git-merge.sh | 8 ++++++-- git-pull.sh | 8 +++++--- t/t7600-merge.sh | 16 +++++++++++++++- 5 files changed, 36 insertions(+), 7 deletions(-) (limited to 'git-pull.sh') diff --git a/Documentation/merge-options.txt b/Documentation/merge-options.txt index d4af5e2664..f37a776489 100644 --- a/Documentation/merge-options.txt +++ b/Documentation/merge-options.txt @@ -9,6 +9,15 @@ Synonyms to --stat and --no-stat; these are deprecated and will be removed in the future. +--log:: + In addition to branch names, populate the log message with + one-line descriptions from the actual commits that are being + merged. + +--no-log:: + Do not list one-line descriptions from the actual commits being + merged. + --no-commit:: Perform the merge but pretend the merge failed and do not autocommit, to give the user a chance to inspect and diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 0f54cfd8a3..8091d2deb7 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -779,7 +779,7 @@ _git_merge () ;; --*) __gitcomp " - --no-commit --no-stat --squash --strategy + --no-commit --no-stat --log --no-log --squash --strategy " return esac diff --git a/git-merge.sh b/git-merge.sh index 793c015550..69b35d87e6 100755 --- a/git-merge.sh +++ b/git-merge.sh @@ -12,6 +12,8 @@ stat show a diffstat at the end of the merge n,no-stat don't show a diffstat at the end of the merge summary (synonym to --stat) no-summary (synonym to --no-stat) +log add list of one-line log to merge commit message +no-log don't add list of one-line log to merge commit message squash create a single commit instead of doing a merge commit perform a commit if the merge sucesses (default) ff allow fast forward (default) @@ -39,7 +41,7 @@ use_strategies= allow_fast_forward=t allow_trivial_merge=t -squash= no_commit= +squash= no_commit= log_arg= dropsave() { rm -f -- "$GIT_DIR/MERGE_HEAD" "$GIT_DIR/MERGE_MSG" \ @@ -154,6 +156,8 @@ parse_config () { show_diffstat=false ;; --stat|--summary) show_diffstat=t ;; + --log|--no-log) + log_arg=$1 ;; --squash) test "$allow_fast_forward" = t || die "You cannot combine --squash with --no-ff." @@ -261,7 +265,7 @@ else merge_name=$(for remote do merge_name "$remote" - done | git fmt-merge-msg + done | git fmt-merge-msg $log_arg ) merge_msg="${merge_msg:+$merge_msg$LF$LF}$merge_name" fi diff --git a/git-pull.sh b/git-pull.sh index ed83ce1e4f..bf0c2985af 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -16,7 +16,7 @@ cd_to_toplevel test -z "$(git ls-files -u)" || die "You are in the middle of a conflicted merge." -strategy_args= no_stat= no_commit= squash= no_ff= +strategy_args= no_stat= no_commit= squash= no_ff= log_arg= curr_branch=$(git symbolic-ref -q HEAD) curr_branch_short=$(echo "$curr_branch" | sed "s|refs/heads/||") rebase=$(git config --bool branch.$curr_branch_short.rebase) @@ -27,6 +27,8 @@ do no_stat=-n ;; --stat|--summary) no_stat=$1 ;; + --log|--no-log) + log_arg=$1 ;; --no-c|--no-co|--no-com|--no-comm|--no-commi|--no-commit) no_commit=--no-commit ;; --c|--co|--com|--comm|--commi|--commit) @@ -170,9 +172,9 @@ then exit fi -merge_name=$(git fmt-merge-msg <"$GIT_DIR/FETCH_HEAD") || exit +merge_name=$(git fmt-merge-msg $log_arg <"$GIT_DIR/FETCH_HEAD") || exit test true = "$rebase" && exec git-rebase $strategy_args --onto $merge_head \ ${oldremoteref:-$merge_head} -exec git-merge $no_stat $no_commit $squash $no_ff $strategy_args \ +exec git-merge $no_stat $no_commit $squash $no_ff $log_arg $strategy_args \ "$merge_name" HEAD $merge_head diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh index dd3eb97363..d21cd290d3 100755 --- a/t/t7600-merge.sh +++ b/t/t7600-merge.sh @@ -104,7 +104,11 @@ create_merge_msgs() { git log --no-merges ^HEAD c2 >>squash.1-5 && echo "Squashed commit of the following:" >squash.1-5-9 && echo >>squash.1-5-9 && - git log --no-merges ^HEAD c2 c3 >>squash.1-5-9 + git log --no-merges ^HEAD c2 c3 >>squash.1-5-9 && + echo > msg.nolog && + echo "* commit 'c3':" >msg.log && + echo " commit 3" >>msg.log && + echo >>msg.log } verify_diff() { @@ -456,6 +460,16 @@ test_expect_success 'merge c0 with c1 (ff overrides no-ff)' ' verify_head $c1 ' +test_expect_success 'merge log message' ' + git reset --hard c0 && + git merge --no-log c2 && + git show -s --pretty=format:%b HEAD >msg.act && + verify_diff msg.nolog msg.act "[OOPS] bad merge log message" && + git merge --log c3 && + git show -s --pretty=format:%b HEAD >msg.act && + verify_diff msg.log msg.act "[OOPS] bad merge log message" +' + test_debug 'gitk --all' test_done -- cgit v1.3 From f9189cf8f2427b10a40b5b3e530e2c893bc64ae9 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 21 May 2008 12:32:16 +0100 Subject: pull --rebase: exit early when the working directory is dirty When rebasing fails during "pull --rebase", you cannot just clean up the working directory and call "pull --rebase" again, since the remote branch was already fetched. Therefore, die early when the working directory is dirty. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- git-pull.sh | 5 +++++ t/t5520-pull.sh | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) (limited to 'git-pull.sh') diff --git a/git-pull.sh b/git-pull.sh index bf0c2985af..809e537a4d 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -107,6 +107,11 @@ error_on_no_merge_candidates () { } test true = "$rebase" && { + git update-index --refresh && + git diff-files --quiet && + git diff-index --cached --quiet HEAD -- || + die "refusing to pull with rebase: your working tree is not up-to-date" + . git-parse-remote && origin="$1" test -z "$origin" && origin=$(get_default_remote) diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh index 9484129ca5..997b2db827 100755 --- a/t/t5520-pull.sh +++ b/t/t5520-pull.sh @@ -92,4 +92,22 @@ test_expect_success '--rebase with rebased upstream' ' ' +test_expect_success 'pull --rebase dies early with dirty working directory' ' + + git update-ref refs/remotes/me/copy copy^ && + COPY=$(git rev-parse --verify me/copy) && + git rebase --onto $COPY copy && + git config branch.to-rebase.remote me && + git config branch.to-rebase.merge refs/heads/copy && + git config branch.to-rebase.rebase true && + echo dirty >> file && + git add file && + test_must_fail git pull && + test $COPY = $(git rev-parse --verify me/copy) && + git checkout HEAD -- file && + git pull && + test $COPY != $(git rev-parse --verify me/copy) + +' + test_done -- cgit v1.3 From 1b1dd23f2d6a707b7077cdf6bc6d4055bd0bfb7d Mon Sep 17 00:00:00 2001 From: Stephan Beyer Date: Sun, 13 Jul 2008 15:36:15 +0200 Subject: Make usage strings dash-less When you misuse a git command, you are shown the usage string. But this is currently shown in the dashed form. So if you just copy what you see, it will not work, when the dashed form is no longer supported. This patch makes git commands show the dash-less version. For shell scripts that do not specify OPTIONS_SPEC, git-sh-setup.sh generates a dash-less usage string now. Signed-off-by: Stephan Beyer Signed-off-by: Junio C Hamano --- builtin-add.c | 2 +- builtin-apply.c | 2 +- builtin-archive.c | 2 +- builtin-blame.c | 2 +- builtin-branch.c | 8 ++++---- builtin-cat-file.c | 4 ++-- builtin-check-attr.c | 2 +- builtin-checkout-index.c | 2 +- builtin-clean.c | 2 +- builtin-clone.c | 2 +- builtin-commit.c | 4 ++-- builtin-config.c | 2 +- builtin-count-objects.c | 2 +- builtin-describe.c | 2 +- builtin-diff-files.c | 2 +- builtin-diff-index.c | 2 +- builtin-diff-tree.c | 2 +- builtin-diff.c | 2 +- builtin-fast-export.c | 2 +- builtin-fetch-pack.c | 2 +- builtin-fetch.c | 2 +- builtin-fmt-merge-msg.c | 2 +- builtin-for-each-ref.c | 2 +- builtin-fsck.c | 2 +- builtin-gc.c | 2 +- builtin-grep.c | 2 +- builtin-init-db.c | 2 +- builtin-log.c | 2 +- builtin-ls-files.c | 2 +- builtin-ls-remote.c | 2 +- builtin-ls-tree.c | 2 +- builtin-mailinfo.c | 2 +- builtin-mailsplit.c | 2 +- builtin-merge-base.c | 2 +- builtin-mv.c | 2 +- builtin-name-rev.c | 2 +- builtin-pack-refs.c | 2 +- builtin-prune-packed.c | 2 +- builtin-prune.c | 2 +- builtin-push.c | 2 +- builtin-reflog.c | 6 +++--- builtin-rerere.c | 2 +- builtin-reset.c | 4 ++-- builtin-rev-list.c | 2 +- builtin-rev-parse.c | 2 +- builtin-revert.c | 4 ++-- builtin-rm.c | 2 +- builtin-send-pack.c | 2 +- builtin-shortlog.c | 2 +- builtin-show-branch.c | 2 +- builtin-symbolic-ref.c | 2 +- builtin-tag.c | 8 ++++---- builtin-tar-tree.c | 2 +- builtin-update-index.c | 2 +- builtin-update-ref.c | 4 ++-- builtin-upload-archive.c | 6 +++--- builtin-verify-tag.c | 2 +- builtin-write-tree.c | 2 +- daemon.c | 2 +- fast-import.c | 2 +- git-am.sh | 6 +++--- git-archimport.perl | 4 ++-- git-cvsexportcommit.perl | 2 +- git-cvsimport.perl | 2 +- git-cvsserver.perl | 2 +- git-instaweb.sh | 2 +- git-merge.sh | 4 ++-- git-pull.sh | 2 +- git-quiltimport.sh | 2 +- git-relink.perl | 2 +- git-repack.sh | 2 +- git-send-email.perl | 2 +- git-sh-setup.sh | 7 ++++--- git-svn.perl | 2 +- hash-object.c | 2 +- help.c | 2 +- http-push.c | 2 +- index-pack.c | 2 +- pack-redundant.c | 2 +- update-server-info.c | 2 +- 80 files changed, 102 insertions(+), 101 deletions(-) (limited to 'git-pull.sh') diff --git a/builtin-add.c b/builtin-add.c index 9930cf53f5..bf13aa3ad6 100644 --- a/builtin-add.c +++ b/builtin-add.c @@ -16,7 +16,7 @@ #include "parse-options.h" static const char * const builtin_add_usage[] = { - "git-add [options] [--] ...", + "git add [options] [--] ...", NULL }; static int patch_interactive = 0, add_interactive = 0; diff --git a/builtin-apply.c b/builtin-apply.c index d13313f105..e15471b5b6 100644 --- a/builtin-apply.c +++ b/builtin-apply.c @@ -46,7 +46,7 @@ static const char *fake_ancestor; static int line_termination = '\n'; static unsigned long p_context = ULONG_MAX; static const char apply_usage[] = -"git-apply [--stat] [--numstat] [--summary] [--check] [--index] [--cached] [--apply] [--no-add] [--index-info] [--allow-binary-replacement] [--reverse] [--reject] [--verbose] [-z] [-pNUM] [-CNUM] [--whitespace=] ..."; +"git apply [--stat] [--numstat] [--summary] [--check] [--index] [--cached] [--apply] [--no-add] [--index-info] [--allow-binary-replacement] [--reverse] [--reject] [--verbose] [-z] [-pNUM] [-CNUM] [--whitespace=] ..."; static enum ws_error_action { nowarn_ws_error, diff --git a/builtin-archive.c b/builtin-archive.c index c2e0c1ea5a..5cca460129 100644 --- a/builtin-archive.c +++ b/builtin-archive.c @@ -13,7 +13,7 @@ #include "attr.h" static const char archive_usage[] = \ -"git-archive --format= [--prefix=/] [--verbose] [] [path...]"; +"git archive --format= [--prefix=/] [--verbose] [] [path...]"; static struct archiver_desc { diff --git a/builtin-blame.c b/builtin-blame.c index b451f6c64d..91850a53e1 100644 --- a/builtin-blame.c +++ b/builtin-blame.c @@ -20,7 +20,7 @@ #include "mailmap.h" static char blame_usage[] = -"git-blame [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-p] [-w] [-L n,m] [-S ] [-M] [-C] [-C] [--contents ] [--incremental] [commit] [--] file\n" +"git blame [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-p] [-w] [-L n,m] [-S ] [-M] [-C] [-C] [--contents ] [--incremental] [commit] [--] file\n" " -c Use the same output mode as git-annotate (Default: off)\n" " -b Show blank SHA-1 for boundary commits (Default: off)\n" " -l Show long commit SHA1 (Default: off)\n" diff --git a/builtin-branch.c b/builtin-branch.c index d279702ba9..5cc3771ddd 100644 --- a/builtin-branch.c +++ b/builtin-branch.c @@ -15,10 +15,10 @@ #include "branch.h" static const char * const builtin_branch_usage[] = { - "git-branch [options] [-r | -a] [--merged | --no-merged]", - "git-branch [options] [-l] [-f] []", - "git-branch [options] [-r] (-d | -D) ", - "git-branch [options] (-m | -M) [] ", + "git branch [options] [-r | -a] [--merged | --no-merged]", + "git branch [options] [-l] [-f] []", + "git branch [options] [-r] (-d | -D) ", + "git branch [options] (-m | -M) [] ", NULL }; diff --git a/builtin-cat-file.c b/builtin-cat-file.c index 880e75af5e..7441a56acd 100644 --- a/builtin-cat-file.c +++ b/builtin-cat-file.c @@ -202,8 +202,8 @@ static int batch_objects(int print_contents) } static const char * const cat_file_usage[] = { - "git-cat-file [-t|-s|-e|-p|] ", - "git-cat-file [--batch|--batch-check] < ", + "git cat-file [-t|-s|-e|-p|] ", + "git cat-file [--batch|--batch-check] < ", NULL }; diff --git a/builtin-check-attr.c b/builtin-check-attr.c index 6afdfa10a1..cb783fc77e 100644 --- a/builtin-check-attr.c +++ b/builtin-check-attr.c @@ -4,7 +4,7 @@ #include "quote.h" static const char check_attr_usage[] = -"git-check-attr attr... [--] pathname..."; +"git check-attr attr... [--] pathname..."; int cmd_check_attr(int argc, const char **argv, const char *prefix) { diff --git a/builtin-checkout-index.c b/builtin-checkout-index.c index eb1fc9aa6f..71ebabf990 100644 --- a/builtin-checkout-index.c +++ b/builtin-checkout-index.c @@ -154,7 +154,7 @@ static void checkout_all(const char *prefix, int prefix_length) } static const char checkout_cache_usage[] = -"git-checkout-index [-u] [-q] [-a] [-f] [-n] [--stage=[123]|all] [--prefix=] [--temp] [--] ..."; +"git checkout-index [-u] [-q] [-a] [-f] [-n] [--stage=[123]|all] [--prefix=] [--temp] [--] ..."; static struct lock_file lock_file; diff --git a/builtin-clean.c b/builtin-clean.c index 80a7ff9ae4..48bf29f40a 100644 --- a/builtin-clean.c +++ b/builtin-clean.c @@ -15,7 +15,7 @@ static int force = -1; /* unset */ static const char *const builtin_clean_usage[] = { - "git-clean [-d] [-f] [-n] [-q] [-x | -X] [--] ...", + "git clean [-d] [-f] [-n] [-q] [-x | -X] [--] ...", NULL }; diff --git a/builtin-clone.c b/builtin-clone.c index ec36209600..8112716c10 100644 --- a/builtin-clone.c +++ b/builtin-clone.c @@ -29,7 +29,7 @@ * */ static const char * const builtin_clone_usage[] = { - "git-clone [options] [--] []", + "git clone [options] [--] []", NULL }; diff --git a/builtin-commit.c b/builtin-commit.c index 745c11e773..41cf5f2dc2 100644 --- a/builtin-commit.c +++ b/builtin-commit.c @@ -25,12 +25,12 @@ #include "unpack-trees.h" static const char * const builtin_commit_usage[] = { - "git-commit [options] [--] ...", + "git commit [options] [--] ...", NULL }; static const char * const builtin_status_usage[] = { - "git-status [options] [--] ...", + "git status [options] [--] ...", NULL }; diff --git a/builtin-config.c b/builtin-config.c index 39f63d7b10..0cf191a112 100644 --- a/builtin-config.c +++ b/builtin-config.c @@ -3,7 +3,7 @@ #include "color.h" static const char git_config_set_usage[] = -"git-config [ --global | --system | [ -f | --file ] config-file ] [ --bool | --int | --bool-or-int ] [ -z | --null ] [--get | --get-all | --get-regexp | --replace-all | --add | --unset | --unset-all] name [value [value_regex]] | --rename-section old_name new_name | --remove-section name | --list | --get-color var [default] | --get-colorbool name [stdout-is-tty]"; +"git config [ --global | --system | [ -f | --file ] config-file ] [ --bool | --int | --bool-or-int ] [ -z | --null ] [--get | --get-all | --get-regexp | --replace-all | --add | --unset | --unset-all] name [value [value_regex]] | --rename-section old_name new_name | --remove-section name | --list | --get-color var [default] | --get-colorbool name [stdout-is-tty]"; static char *key; static regex_t *key_regexp; diff --git a/builtin-count-objects.c b/builtin-count-objects.c index f00306fb67..91b5487478 100644 --- a/builtin-count-objects.c +++ b/builtin-count-objects.c @@ -67,7 +67,7 @@ static void count_objects(DIR *d, char *path, int len, int verbose, } static char const * const count_objects_usage[] = { - "git-count-objects [-v]", + "git count-objects [-v]", NULL }; diff --git a/builtin-describe.c b/builtin-describe.c index e515f9ca9b..5dabca950d 100644 --- a/builtin-describe.c +++ b/builtin-describe.c @@ -10,7 +10,7 @@ #define MAX_TAGS (FLAG_BITS - 1) static const char * const describe_usage[] = { - "git-describe [options] *", + "git describe [options] *", NULL }; diff --git a/builtin-diff-files.c b/builtin-diff-files.c index 384d871263..9bf10bb37e 100644 --- a/builtin-diff-files.c +++ b/builtin-diff-files.c @@ -10,7 +10,7 @@ #include "builtin.h" static const char diff_files_usage[] = -"git-diff-files [-q] [-0/-1/2/3 |-c|--cc] [] [...]" +"git diff-files [-q] [-0/-1/2/3 |-c|--cc] [] [...]" COMMON_DIFF_OPTIONS_HELP; int cmd_diff_files(int argc, const char **argv, const char *prefix) diff --git a/builtin-diff-index.c b/builtin-diff-index.c index 2f44ebfcdd..17d851b29e 100644 --- a/builtin-diff-index.c +++ b/builtin-diff-index.c @@ -5,7 +5,7 @@ #include "builtin.h" static const char diff_cache_usage[] = -"git-diff-index [-m] [--cached] " +"git diff-index [-m] [--cached] " "[] [...]" COMMON_DIFF_OPTIONS_HELP; diff --git a/builtin-diff-tree.c b/builtin-diff-tree.c index 9d2a48fd68..415cb1612f 100644 --- a/builtin-diff-tree.c +++ b/builtin-diff-tree.c @@ -53,7 +53,7 @@ static int diff_tree_stdin(char *line) } static const char diff_tree_usage[] = -"git-diff-tree [--stdin] [-m] [-c] [--cc] [-s] [-v] [--pretty] [-t] [-r] [--root] " +"git diff-tree [--stdin] [-m] [-c] [--cc] [-s] [-v] [--pretty] [-t] [-r] [--root] " "[] [] [...]\n" " -r diff recursively\n" " --root include the initial commit as diff against /dev/null\n" diff --git a/builtin-diff.c b/builtin-diff.c index 4c289e798a..faaa85a1d4 100644 --- a/builtin-diff.c +++ b/builtin-diff.c @@ -21,7 +21,7 @@ struct blobinfo { }; static const char builtin_diff_usage[] = -"git-diff {0,2} -- *"; +"git diff {0,2} -- *"; static void stuff_change(struct diff_options *opt, unsigned old_mode, unsigned new_mode, diff --git a/builtin-fast-export.c b/builtin-fast-export.c index 75132bacfa..76f3167276 100644 --- a/builtin-fast-export.c +++ b/builtin-fast-export.c @@ -18,7 +18,7 @@ #include "parse-options.h" static const char *fast_export_usage[] = { - "git-fast-export [rev-list-opts]", + "git fast-export [rev-list-opts]", NULL }; diff --git a/builtin-fetch-pack.c b/builtin-fetch-pack.c index 1ea7040639..273239af3b 100644 --- a/builtin-fetch-pack.c +++ b/builtin-fetch-pack.c @@ -18,7 +18,7 @@ static struct fetch_pack_args args = { }; static const char fetch_pack_usage[] = -"git-fetch-pack [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag] [--upload-pack=] [--depth=] [--no-progress] [-v] [:] [...]"; +"git fetch-pack [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag] [--upload-pack=] [--depth=] [--no-progress] [-v] [:] [...]"; #define COMPLETE (1U << 0) #define COMMON (1U << 1) diff --git a/builtin-fetch.c b/builtin-fetch.c index 97fdc51e31..61de50a020 100644 --- a/builtin-fetch.c +++ b/builtin-fetch.c @@ -12,7 +12,7 @@ #include "parse-options.h" static const char * const builtin_fetch_usage[] = { - "git-fetch [options] [ ...]", + "git fetch [options] [ ...]", NULL }; diff --git a/builtin-fmt-merge-msg.c b/builtin-fmt-merge-msg.c index b892621ab5..b34b01ff51 100644 --- a/builtin-fmt-merge-msg.c +++ b/builtin-fmt-merge-msg.c @@ -6,7 +6,7 @@ #include "tag.h" static const char *fmt_merge_msg_usage = - "git-fmt-merge-msg [--log] [--no-log] [--file ]"; + "git fmt-merge-msg [--log] [--no-log] [--file ]"; static int merge_summary; diff --git a/builtin-for-each-ref.c b/builtin-for-each-ref.c index fef93d7488..76282ad791 100644 --- a/builtin-for-each-ref.c +++ b/builtin-for-each-ref.c @@ -831,7 +831,7 @@ int opt_parse_sort(const struct option *opt, const char *arg, int unset) } static char const * const for_each_ref_usage[] = { - "git-for-each-ref [options] []", + "git for-each-ref [options] []", NULL }; diff --git a/builtin-fsck.c b/builtin-fsck.c index b0f9648f86..7326dc33a5 100644 --- a/builtin-fsck.c +++ b/builtin-fsck.c @@ -539,7 +539,7 @@ static int fsck_cache_tree(struct cache_tree *it) } static char const * const fsck_usage[] = { - "git-fsck [options] [...]", + "git fsck [options] [...]", NULL }; diff --git a/builtin-gc.c b/builtin-gc.c index f5625bb9fb..fac200e0b0 100644 --- a/builtin-gc.c +++ b/builtin-gc.c @@ -18,7 +18,7 @@ #define FAILED_RUN "failed to run %s" static const char * const builtin_gc_usage[] = { - "git-gc [options]", + "git gc [options]", NULL }; diff --git a/builtin-grep.c b/builtin-grep.c index ef299108f5..0cac39590d 100644 --- a/builtin-grep.c +++ b/builtin-grep.c @@ -495,7 +495,7 @@ static int grep_object(struct grep_opt *opt, const char **paths, } static const char builtin_grep_usage[] = -"git-grep