diff options
author | Junio C Hamano <junkio@cox.net> | 2007-01-12 12:52:03 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-01-12 16:54:38 -0800 |
commit | 533b70390e540de4e0faed4823ee561c8368e5ec (patch) | |
tree | a8daab8c94e77c77cb5a8cdba6a071d5cfb3f2a8 | |
parent | 514c09fdcfef6385f1a61ee52344794356c99986 (diff) | |
download | git-533b70390e540de4e0faed4823ee561c8368e5ec.tar.gz |
Allow whole-tree operations to be started from a subdirectory
This updates five commands (merge, pull, rebase, revert and cherry-pick)
so that they can be started from a subdirectory.
This may not actually be what we want to do. These commands are
inherently whole-tree operations, and an inexperienced user may
mistakenly expect a "git pull" from a subdirectory would merge
only the subdirectory the command started from.
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-x | git-merge.sh | 4 | ||||
-rwxr-xr-x | git-pull.sh | 4 | ||||
-rwxr-xr-x | git-rebase.sh | 3 | ||||
-rwxr-xr-x | git-revert.sh | 3 |
4 files changed, 12 insertions, 2 deletions
diff --git a/git-merge.sh b/git-merge.sh index 3eef048efc..7de83dc76c 100755 --- a/git-merge.sh +++ b/git-merge.sh @@ -5,12 +5,14 @@ USAGE='[-n] [--no-commit] [--squash] [-s <strategy>] [-m=<merge-message>] <commit>+' +SUBDIRECTORY_OK=Yes . git-sh-setup set_reflog_action "merge $*" require_work_tree +cd_to_toplevel test -z "$(git ls-files -u)" || - die "You are in a middle of conflicted merge." + die "You are in the middle of a conflicted merge." LF=' ' diff --git a/git-pull.sh b/git-pull.sh index e9826fc4ce..959261757c 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -6,12 +6,14 @@ USAGE='[-n | --no-summary] [--no-commit] [-s strategy]... [<fetch-options>] <repo> <head>...' LONG_USAGE='Fetch one or more remote refs and merge it/them into the current HEAD.' +SUBDIRECTORY_OK=Yes . git-sh-setup set_reflog_action "pull $*" require_work_tree +cd_to_toplevel test -z "$(git ls-files -u)" || - die "You are in a middle of conflicted merge." + 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 diff --git a/git-rebase.sh b/git-rebase.sh index 98f9558145..c8bd0f99d1 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -27,9 +27,12 @@ Example: git-rebase master~1 topic / --> / D---E---F---G master D---E---F---G master ' + +SUBDIRECTORY_OK=Yes . git-sh-setup set_reflog_action rebase require_work_tree +cd_to_toplevel RESOLVEMSG=" When you have resolved this problem run \"git rebase --continue\". diff --git a/git-revert.sh b/git-revert.sh index fcca3ebb90..224e6540ca 100755 --- a/git-revert.sh +++ b/git-revert.sh @@ -19,8 +19,11 @@ case "$0" in echo >&2 "What are you talking about?" exit 1 ;; esac + +SUBDIRECTORY_OK=Yes ;# we will cd up . git-sh-setup require_work_tree +cd_to_toplevel no_commit= while case "$#" in 0) break ;; esac |