Merge branch 'jc/subdir'
* jc/subdir: Allow whole-tree operations to be started from a subdirectory Use cd_to_toplevel in scripts that implement it by hand. Define cd_to_toplevel shell function in git-sh-setupmaint
commit
3681d40b96
|
@ -135,11 +135,7 @@ fi
|
||||||
|
|
||||||
# We are switching branches and checking out trees, so
|
# We are switching branches and checking out trees, so
|
||||||
# we *NEED* to be at the toplevel.
|
# we *NEED* to be at the toplevel.
|
||||||
cdup=$(git-rev-parse --show-cdup)
|
cd_to_toplevel
|
||||||
if test ! -z "$cdup"
|
|
||||||
then
|
|
||||||
cd "$cdup"
|
|
||||||
fi
|
|
||||||
|
|
||||||
[ -z "$new" ] && new=$old && new_name="$old_name"
|
[ -z "$new" ] && new=$old && new_name="$old_name"
|
||||||
|
|
||||||
|
|
|
@ -316,22 +316,16 @@ esac
|
||||||
################################################################
|
################################################################
|
||||||
# Prepare index to have a tree to be committed
|
# Prepare index to have a tree to be committed
|
||||||
|
|
||||||
TOP=`git-rev-parse --show-cdup`
|
|
||||||
if test -z "$TOP"
|
|
||||||
then
|
|
||||||
TOP=./
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$all,$also" in
|
case "$all,$also" in
|
||||||
t,)
|
t,)
|
||||||
save_index &&
|
save_index &&
|
||||||
(
|
(
|
||||||
cd "$TOP"
|
cd_to_toplevel &&
|
||||||
GIT_INDEX_FILE="$NEXT_INDEX"
|
GIT_INDEX_FILE="$NEXT_INDEX" &&
|
||||||
export GIT_INDEX_FILE
|
export GIT_INDEX_FILE &&
|
||||||
git-diff-files --name-only -z |
|
git-diff-files --name-only -z |
|
||||||
git-update-index --remove -z --stdin
|
git-update-index --remove -z --stdin
|
||||||
)
|
) || exit
|
||||||
;;
|
;;
|
||||||
,t)
|
,t)
|
||||||
save_index &&
|
save_index &&
|
||||||
|
@ -339,11 +333,11 @@ t,)
|
||||||
|
|
||||||
git-diff-files --name-only -z -- "$@" |
|
git-diff-files --name-only -z -- "$@" |
|
||||||
(
|
(
|
||||||
cd "$TOP"
|
cd_to_toplevel &&
|
||||||
GIT_INDEX_FILE="$NEXT_INDEX"
|
GIT_INDEX_FILE="$NEXT_INDEX" &&
|
||||||
export GIT_INDEX_FILE
|
export GIT_INDEX_FILE &&
|
||||||
git-update-index --remove -z --stdin
|
git-update-index --remove -z --stdin
|
||||||
)
|
) || exit
|
||||||
;;
|
;;
|
||||||
,)
|
,)
|
||||||
case "$#" in
|
case "$#" in
|
||||||
|
|
|
@ -5,12 +5,8 @@ USAGE='<fetch-options> <repository> <refspec>...'
|
||||||
SUBDIRECTORY_OK=Yes
|
SUBDIRECTORY_OK=Yes
|
||||||
. git-sh-setup
|
. git-sh-setup
|
||||||
set_reflog_action "fetch $*"
|
set_reflog_action "fetch $*"
|
||||||
|
cd_to_toplevel ;# probably unnecessary...
|
||||||
|
|
||||||
TOP=$(git-rev-parse --show-cdup)
|
|
||||||
if test ! -z "$TOP"
|
|
||||||
then
|
|
||||||
cd "$TOP"
|
|
||||||
fi
|
|
||||||
. git-parse-remote
|
. git-parse-remote
|
||||||
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
|
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
|
||||||
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
|
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
|
||||||
|
|
|
@ -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\".
|
||||||
|
|
|
@ -53,11 +53,7 @@ then
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TOP=$(git-rev-parse --show-cdup)
|
cd_to_toplevel
|
||||||
if test ! -z "$TOP"
|
|
||||||
then
|
|
||||||
cd "$TOP"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$reset_type" = "--hard"
|
if test "$reset_type" = "--hard"
|
||||||
then
|
then
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -36,6 +36,17 @@ is_bare_repository () {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cd_to_toplevel () {
|
||||||
|
cdup=$(git-rev-parse --show-cdup)
|
||||||
|
if test ! -z "$cdup"
|
||||||
|
then
|
||||||
|
cd "$cdup" || {
|
||||||
|
echo >&2 "Cannot chdir to $cdup, the toplevel of the working tree"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
require_work_tree () {
|
require_work_tree () {
|
||||||
test $(is_bare_repository) = false ||
|
test $(is_bare_repository) = false ||
|
||||||
die "fatal: $0 cannot be used without a working tree."
|
die "fatal: $0 cannot be used without a working tree."
|
||||||
|
|
Loading…
Reference in New Issue