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>
This commit is contained in:
Junio C Hamano 2007-01-12 12:52:03 -08:00
Родитель 514c09fdcf
Коммит 533b70390e
4 изменённых файлов: 12 добавлений и 2 удалений

Просмотреть файл

@ -5,12 +5,14 @@
USAGE='[-n] [--no-commit] [--squash] [-s <strategy>] [-m=<merge-message>] <commit>+' USAGE='[-n] [--no-commit] [--squash] [-s <strategy>] [-m=<merge-message>] <commit>+'
SUBDIRECTORY_OK=Yes
. git-sh-setup . git-sh-setup
set_reflog_action "merge $*" set_reflog_action "merge $*"
require_work_tree require_work_tree
cd_to_toplevel
test -z "$(git ls-files -u)" || 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=' LF='
' '

Просмотреть файл

@ -6,12 +6,14 @@
USAGE='[-n | --no-summary] [--no-commit] [-s strategy]... [<fetch-options>] <repo> <head>...' 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.' LONG_USAGE='Fetch one or more remote refs and merge it/them into the current HEAD.'
SUBDIRECTORY_OK=Yes
. git-sh-setup . git-sh-setup
set_reflog_action "pull $*" set_reflog_action "pull $*"
require_work_tree require_work_tree
cd_to_toplevel
test -z "$(git ls-files -u)" || 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= strategy_args= no_summary= no_commit= squash=
while case "$#,$1" in 0) break ;; *,-*) ;; *) break ;; esac while case "$#,$1" in 0) break ;; *,-*) ;; *) break ;; esac

Просмотреть файл

@ -27,9 +27,12 @@ Example: git-rebase master~1 topic
/ --> / / --> /
D---E---F---G master D---E---F---G master D---E---F---G master D---E---F---G master
' '
SUBDIRECTORY_OK=Yes
. git-sh-setup . git-sh-setup
set_reflog_action rebase set_reflog_action rebase
require_work_tree require_work_tree
cd_to_toplevel
RESOLVEMSG=" RESOLVEMSG="
When you have resolved this problem run \"git rebase --continue\". When you have resolved this problem run \"git rebase --continue\".

Просмотреть файл

@ -19,8 +19,11 @@ case "$0" in
echo >&2 "What are you talking about?" echo >&2 "What are you talking about?"
exit 1 ;; exit 1 ;;
esac esac
SUBDIRECTORY_OK=Yes ;# we will cd up
. git-sh-setup . git-sh-setup
require_work_tree require_work_tree
cd_to_toplevel
no_commit= no_commit=
while case "$#" in 0) break ;; esac while case "$#" in 0) break ;; esac