All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gummerer <t.gummerer@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, "Stephan Beyer" <s-beyer@gmx.net>,
	"Marc Strapetz" <marc.strapetz@syntevo.com>,
	"Jeff King" <peff@peff.net>,
	"Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
	"Øyvind A . Holm" <sunny@sunbase.org>,
	"Jakub Narębski" <jnareb@gmail.com>
Subject: Re: [PATCH v3 5/5] stash: teach 'push' (and 'create') to honor pathspec
Date: Sat, 11 Feb 2017 16:50:17 +0000	[thread overview]
Message-ID: <20170211165017.GB23081@hank> (raw)
In-Reply-To: <xmqqmvdz3ied.fsf@gitster.mtv.corp.google.com>

On 02/05, Junio C Hamano wrote:
> Thomas Gummerer <t.gummerer@gmail.com> writes:
> 
> > @@ -72,6 +72,11 @@ create_stash () {
> >  			untracked="$1"
> >  			new_style=t
> >  			;;
> > +		--)
> > +			shift
> > +			new_style=t
> > +			break
> > +			;;
> >  		*)
> >  			if test -n "$new_style"
> >  			then
> > @@ -99,6 +104,10 @@ create_stash () {
> >  	if test -z "$new_style"
> >  	then
> >  		stash_msg="$*"
> > +		while test $# != 0
> > +		do
> > +			shift
> > +		done
> >  	fi
> 
> The intent is correct, but I would probaly empty the "$@" not with
> an iteration of shifts but with a single
> 
> 	set x && shift
> 
> ;-)

Thanks, I knew there had to be a better way, but I was unable to find
it.  I think I like Andreas suggestion of "shift $#" the best here.

> > @@ -134,7 +143,7 @@ create_stash () {
> >  		# Untracked files are stored by themselves in a parentless commit, for
> >  		# ease of unpacking later.
> >  		u_commit=$(
> > -			untracked_files | (
> > +			untracked_files "$@" | (
> 
> The above (and all other uses of "$@" was exactly what I had in mind
> when I gave you the "can we leave the '$@' the user gave us as-is?"
> comment during the review of the previous round.  
> 
> Looks much nicer.
> 
> > +test_expect_success 'stash push with $IFS character' '
> > +	>"foo	bar" &&
> 
> IIRC, a pathname with HT in it cannot be tested on MINGW.  For the
> purpose of this test, I think it is sufficient to use SP instead of
> HT here (and matching change below in the expectation, of course).

Will change.

> > +	>foo &&
> > +	>bar &&
> > +	git add foo* &&
> > +	git stash push --include-untracked -- foo* &&
> 
> While it is good that you are testing "foo*", you would also want
> another test to cover a pathspec with $IFS in it.  That is the case
> the code in the previous round had problems with.  Perhaps try
> something like
> 
> 	>foo && >bar && >"foo bar" && git add . &&
> 	echo modify foo >foo &&
> 	echo modify bar >bar &&
> 	echo modify "foo bar" >"foo bar" &&
> 	git stash push -- "foo b*"
> 
> which should result in the changes to "foo bar" in the resulting
> stash, while changes to "foo" and "bar" are not (and left in the
> working tree).  And make sure that is what happens?  I think with
> the code from the previous round, the above would instead stash
> changes to "foo" and "bar" without catching changes to "foo bar",
> because the single pathspec "foo b*" would have been mistakenly
> split into two, i.e. "foo" and "b*", and failed to match "foo bar"
> while matching the other two.

Thanks, I'll add a test for that.

  parent reply	other threads:[~2017-02-11 16:49 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-21 20:08 [PATCH 0/3] stash: support filename argument Thomas Gummerer
2017-01-21 20:08 ` [PATCH 1/3] Documentation/stash: remove mention of git reset --hard Thomas Gummerer
2017-01-22  1:27   ` Øyvind A. Holm
2017-01-24 19:51   ` Jakub Narębski
2017-01-24 20:14   ` Jeff King
2017-01-25 13:02     ` Jakub Narębski
2017-01-25 21:20       ` Junio C Hamano
2017-01-25 21:20     ` Junio C Hamano
2017-01-28 19:30       ` Thomas Gummerer
2017-01-28 23:54         ` Jeff King
2017-01-21 20:08 ` [PATCH 2/3] stash: introduce push verb Thomas Gummerer
2017-01-23 18:27   ` Junio C Hamano
2017-01-29 12:39     ` Thomas Gummerer
2017-01-21 20:08 ` [PATCH 3/3] stash: support filename argument Thomas Gummerer
2017-01-23 18:50   ` Junio C Hamano
2017-01-29 13:29     ` Thomas Gummerer
2017-01-24 10:56 ` [PATCH 0/3] " Johannes Schindelin
2017-01-29 20:16 ` [PATCH v2 0/4] stash: create " Thomas Gummerer
2017-01-29 20:16   ` [PATCH v2 1/4] Documentation/stash: remove mention of git reset --hard Thomas Gummerer
2017-01-30 21:13     ` Junio C Hamano
2017-02-05 12:13       ` Thomas Gummerer
2017-01-29 20:16   ` [PATCH v2 2/4] stash: introduce push verb Thomas Gummerer
2017-01-30 21:12     ` Junio C Hamano
     [not found]     ` <xmqqy3xsux4g.fsf@gitster.mtv.corp.google.com>
2017-02-04 12:19       ` Thomas Gummerer
2017-01-29 20:16   ` [PATCH v2 3/4] introduce new format for git stash create Thomas Gummerer
2017-01-30 21:10     ` Junio C Hamano
     [not found]     ` <xmqqtw8guwfm.fsf@gitster.mtv.corp.google.com>
2017-02-04 13:18       ` Thomas Gummerer
2017-01-29 20:16   ` [PATCH v2 4/4] stash: support filename argument Thomas Gummerer
2017-01-30 21:11     ` Junio C Hamano
2017-02-05 11:02       ` Thomas Gummerer
2017-02-05 20:26   ` [PATCH v3 0/5] stash: support pathspec argument Thomas Gummerer
2017-02-05 20:26     ` [PATCH v3 1/5] Documentation/stash: remove mention of git reset --hard Thomas Gummerer
2017-02-06 15:22       ` Jeff King
2017-02-05 20:26     ` [PATCH v3 2/5] stash: introduce push verb Thomas Gummerer
2017-02-06 15:46       ` Jeff King
2017-02-11 13:33         ` Thomas Gummerer
     [not found]       ` <vpqlgtaz09q.fsf@anie.imag.fr>
2017-02-13 22:16         ` Thomas Gummerer
2017-02-05 20:26     ` [PATCH v3 3/5] stash: add test for the create command line arguments Thomas Gummerer
2017-02-06 15:50       ` Jeff King
2017-02-11 13:55         ` Thomas Gummerer
2017-02-05 20:26     ` [PATCH v3 4/5] stash: introduce new format create Thomas Gummerer
2017-02-06 15:56       ` Jeff King
2017-02-11 14:51         ` Thomas Gummerer
2017-02-13 21:57           ` Jeff King
2017-02-13 23:05             ` Jeff King
2017-02-14 21:30               ` Thomas Gummerer
2017-02-05 20:26     ` [PATCH v3 5/5] stash: teach 'push' (and 'create') to honor pathspec Thomas Gummerer
     [not found]       ` <xmqqmvdz3ied.fsf@gitster.mtv.corp.google.com>
2017-02-06 15:20         ` Jeff King
2017-02-11 16:50         ` Thomas Gummerer [this message]
2017-02-06 16:14     ` [PATCH v3 0/5] stash: support pathspec argument Jeff King
2017-02-12 19:30       ` Thomas Gummerer
     [not found]         ` <vpq7f4uxjmo.fsf@anie.imag.fr>
2017-02-13 20:09           ` Jeff King
     [not found]             ` <vpqo9y5lqos.fsf@anie.imag.fr>
2017-02-13 21:45               ` Jeff King
2017-02-13 22:33                 ` Thomas Gummerer
     [not found]                   ` <xmqqwpctabvw.fsf@gitster.mtv.corp.google.com>
2017-02-14  0:27                     ` Jeff King
     [not found]                       ` <xmqqpoila9rt.fsf@gitster.mtv.corp.google.com>
2017-02-14  0:37                         ` Jeff King
     [not found]                   ` <vpq60kdjl63.fsf@anie.imag.fr>
2017-02-14 21:36                     ` Thomas Gummerer

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

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

  git send-email \
    --in-reply-to=20170211165017.GB23081@hank \
    --to=t.gummerer@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jnareb@gmail.com \
    --cc=marc.strapetz@syntevo.com \
    --cc=peff@peff.net \
    --cc=s-beyer@gmx.net \
    --cc=sunny@sunbase.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.