зеркало из https://github.com/microsoft/git.git
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:
Родитель
514c09fdcf
Коммит
533b70390e
|
@ -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
|
||||||
|
|
Загрузка…
Ссылка в новой задаче