git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: 乙酸鋰 <ch3cooli@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: git pull --no-ff documentation
Date: Sun, 30 Sep 2012 21:42:26 -0700	[thread overview]
Message-ID: <7vsj9yerbh.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <CAHtLG6ROuyCg9WK79igJ=a=6pwT+7TjOJLCNwe454oW3hiJETg@mail.gmail.com> ("乙酸鋰"'s message of "Mon, 1 Oct 2012 11:36:16 +0800")

乙酸鋰 <ch3cooli@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)

  reply	other threads:[~2012-10-01  4:42 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-01  3:36 git pull --no-ff documentation 乙酸鋰
2012-10-01  4:42 ` Junio C Hamano [this message]
2012-10-01 19:54   ` Philip Oakley
2012-10-01 20:24     ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7vsj9yerbh.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=ch3cooli@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).