Merge branch 'ab/subtree-doc'
* ab/subtree-doc: subtree: fix argument validation in add/pull/push
This commit is contained in:
commit
c9e8c1aa3f
@ -9,10 +9,10 @@ if [ $# -eq 0 ]; then
|
||||
fi
|
||||
OPTS_SPEC="\
|
||||
git subtree add --prefix=<prefix> <commit>
|
||||
git subtree add --prefix=<prefix> <repository> <commit>
|
||||
git subtree add --prefix=<prefix> <repository> <ref>
|
||||
git subtree merge --prefix=<prefix> <commit>
|
||||
git subtree pull --prefix=<prefix> <repository> <refspec...>
|
||||
git subtree push --prefix=<prefix> <repository> <refspec...>
|
||||
git subtree pull --prefix=<prefix> <repository> <ref>
|
||||
git subtree push --prefix=<prefix> <repository> <ref>
|
||||
git subtree split --prefix=<prefix> <commit...>
|
||||
--
|
||||
h,help show the help
|
||||
@ -489,6 +489,12 @@ ensure_clean()
|
||||
fi
|
||||
}
|
||||
|
||||
ensure_valid_ref_format()
|
||||
{
|
||||
git check-ref-format "refs/heads/$1" ||
|
||||
die "'$1' does not look like a ref"
|
||||
}
|
||||
|
||||
cmd_add()
|
||||
{
|
||||
if [ -e "$dir" ]; then
|
||||
@ -508,8 +514,7 @@ cmd_add()
|
||||
# specified directory. Allowing a refspec might be
|
||||
# misleading because we won't do anything with any other
|
||||
# branches fetched via the refspec.
|
||||
git rev-parse -q --verify "$2^{commit}" >/dev/null ||
|
||||
die "'$2' does not refer to a commit"
|
||||
ensure_valid_ref_format "$2"
|
||||
|
||||
"cmd_add_repository" "$@"
|
||||
else
|
||||
@ -699,7 +704,11 @@ cmd_merge()
|
||||
|
||||
cmd_pull()
|
||||
{
|
||||
if [ $# -ne 2 ]; then
|
||||
die "You must provide <repository> <ref>"
|
||||
fi
|
||||
ensure_clean
|
||||
ensure_valid_ref_format "$2"
|
||||
git fetch "$@" || exit $?
|
||||
revs=FETCH_HEAD
|
||||
set -- $revs
|
||||
@ -709,8 +718,9 @@ cmd_pull()
|
||||
cmd_push()
|
||||
{
|
||||
if [ $# -ne 2 ]; then
|
||||
die "You must provide <repository> <refspec>"
|
||||
die "You must provide <repository> <ref>"
|
||||
fi
|
||||
ensure_valid_ref_format "$2"
|
||||
if [ -e "$dir" ]; then
|
||||
repository=$1
|
||||
refspec=$2
|
||||
|
@ -9,10 +9,10 @@ git-subtree - Merge subtrees together and split repository into subtrees
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git subtree' add -P <prefix> <refspec>
|
||||
'git subtree' add -P <prefix> <repository> <refspec>
|
||||
'git subtree' pull -P <prefix> <repository> <refspec...>
|
||||
'git subtree' push -P <prefix> <repository> <refspec...>
|
||||
'git subtree' add -P <prefix> <commit>
|
||||
'git subtree' add -P <prefix> <repository> <ref>
|
||||
'git subtree' pull -P <prefix> <repository> <ref>
|
||||
'git subtree' push -P <prefix> <repository> <ref>
|
||||
'git subtree' merge -P <prefix> <commit>
|
||||
'git subtree' split -P <prefix> [OPTIONS] [<commit>]
|
||||
|
||||
@ -68,7 +68,7 @@ COMMANDS
|
||||
--------
|
||||
add::
|
||||
Create the <prefix> subtree by importing its contents
|
||||
from the given <refspec> or <repository> and remote <refspec>.
|
||||
from the given <commit> or <repository> and remote <ref>.
|
||||
A new commit is created automatically, joining the imported
|
||||
project's history with your own. With '--squash', imports
|
||||
only a single commit from the subproject, rather than its
|
||||
@ -90,13 +90,13 @@ merge::
|
||||
|
||||
pull::
|
||||
Exactly like 'merge', but parallels 'git pull' in that
|
||||
it fetches the given commit from the specified remote
|
||||
it fetches the given ref from the specified remote
|
||||
repository.
|
||||
|
||||
push::
|
||||
Does a 'split' (see below) using the <prefix> supplied
|
||||
and then does a 'git push' to push the result to the
|
||||
repository and refspec. This can be used to push your
|
||||
repository and ref. This can be used to push your
|
||||
subtree to different branches of the remote repository.
|
||||
|
||||
split::
|
||||
|
Loading…
Reference in New Issue
Block a user