Re: git pull --no-ff documentation
From: Junio C Hamano gits...@pobox.com 乙酸鋰 ch3co...@gmail.com writes: The order of options in git pull is not clear in the documentation It only says git pull [options] [repository [refspec...]] So we have no idea which options should come first I tried git pull -v --no-tags --progress --no-ff origin but failed with unknown option 'no-ff'. But if I ran git pull -v --no-ff --no-tags --progress origin it succeeded. This actually is not about --no-ff but about --no-tags. Any option that pull itself does not care about stops the command line parser and the remainder of the command line is fed to underlying fetch. Should this be said within the documentation's synopsis ? e.g. git pull [pull_options] [merge_options] [fetch_options [repository [refspec…]] Perhaps something like this? But you should trace the codepath involved to see if this covers all uses of the --tags before using it for real projects, as I didn't. git-pull.sh | 21 ++--- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git i/git-pull.sh w/git-pull.sh index 2a10047..a53c1e5 100755 --- i/git-pull.sh +++ w/git-pull.sh @@ -39,7 +39,7 @@ test -z $(git ls-files -u) || die_conflict test -f $GIT_DIR/MERGE_HEAD die_merge strategy_args= diffstat= no_commit= squash= no_ff= ff_only= -log_arg= verbosity= progress= recurse_submodules= +log_arg= verbosity= progress= recurse_submodules= fetch_tags= merge_args= edit= curr_branch=$(git symbolic-ref -q HEAD) curr_branch_short=${curr_branch#refs/heads/} @@ -62,6 +62,8 @@ do progress=--no-progress ;; -n|--no-stat|--no-summary) diffstat=--no-stat ;; + -t|--t|--ta|--tag|--tags|--no-tags) + fetch_tags=$1 ;; --stat|--summary) diffstat=--stat ;; --log|--no-log) @@ -141,15 +143,12 @@ done error_on_no_merge_candidates () { exec 2 - for opt - do - case $opt in - -t|--t|--ta|--tag|--tags) - echo Fetching tags only, you probably meant: - echo git fetch --tags - exit 1 - esac - done + case $fetch_tags in + -t|--t|--ta|--tag|--tags) + echo Fetching tags only, you probably meant: + echo git fetch --tags + exit 1 + esac if test true = $rebase then @@ -213,7 +212,7 @@ test true = $rebase { done } orig_head=$(git rev-parse -q --verify HEAD) -git fetch $verbosity $progress $dry_run $recurse_submodules --update-head-ok $@ || exit 1 +git fetch $verbosity $progress $dry_run $recurse_submodules $fetch_tags --update-head-ok $@ || exit 1 test -z $dry_run || exit 0 curr_head=$(git rev-parse -q --verify HEAD) -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html - No virus found in this message. Checked by AVG - www.avg.com Version: 2012.0.2221 / Virus Database: 2441/5300 - Release Date: 09/30/12 -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: git pull --no-ff documentation
Philip Oakley philipoak...@iee.org writes: This actually is not about --no-ff but about --no-tags. Any option that pull itself does not care about stops the command line parser and the remainder of the command line is fed to underlying fetch. Should this be said within the documentation's synopsis ? e.g. git pull [pull_options] [merge_options] [fetch_options [repository [refspec…]] We certainly could do that, but I was hoping somebody would volunteer to make it easier to the end users so that they do not have to remember which one is which. The perhaps something like this? patch was a hint to show the first step in that preferrable direction. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: git pull --no-ff documentation
乙酸鋰 ch3co...@gmail.com writes: The order of options in git pull is not clear in the documentation It only says git pull [options] [repository [refspec...]] So we have no idea which options should come first I tried git pull -v --no-tags --progress --no-ff origin but failed with unknown option 'no-ff'. But if I ran git pull -v --no-ff --no-tags --progress origin it succeeded. This actually is not about --no-ff but about --no-tags. Any option that pull itself does not care about stops the command line parser and the remainder of the command line is fed to underlying fetch. Perhaps something like this? But you should trace the codepath involved to see if this covers all uses of the --tags before using it for real projects, as I didn't. git-pull.sh | 21 ++--- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git i/git-pull.sh w/git-pull.sh index 2a10047..a53c1e5 100755 --- i/git-pull.sh +++ w/git-pull.sh @@ -39,7 +39,7 @@ test -z $(git ls-files -u) || die_conflict test -f $GIT_DIR/MERGE_HEAD die_merge strategy_args= diffstat= no_commit= squash= no_ff= ff_only= -log_arg= verbosity= progress= recurse_submodules= +log_arg= verbosity= progress= recurse_submodules= fetch_tags= merge_args= edit= curr_branch=$(git symbolic-ref -q HEAD) curr_branch_short=${curr_branch#refs/heads/} @@ -62,6 +62,8 @@ do progress=--no-progress ;; -n|--no-stat|--no-summary) diffstat=--no-stat ;; + -t|--t|--ta|--tag|--tags|--no-tags) + fetch_tags=$1 ;; --stat|--summary) diffstat=--stat ;; --log|--no-log) @@ -141,15 +143,12 @@ done error_on_no_merge_candidates () { exec 2 - for opt - do - case $opt in - -t|--t|--ta|--tag|--tags) - echo Fetching tags only, you probably meant: - echo git fetch --tags - exit 1 - esac - done + case $fetch_tags in + -t|--t|--ta|--tag|--tags) + echo Fetching tags only, you probably meant: + echo git fetch --tags + exit 1 + esac if test true = $rebase then @@ -213,7 +212,7 @@ test true = $rebase { done } orig_head=$(git rev-parse -q --verify HEAD) -git fetch $verbosity $progress $dry_run $recurse_submodules --update-head-ok $@ || exit 1 +git fetch $verbosity $progress $dry_run $recurse_submodules $fetch_tags --update-head-ok $@ || exit 1 test -z $dry_run || exit 0 curr_head=$(git rev-parse -q --verify HEAD) -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html