Re: [PATCH 0/5] Extend pattern refspecs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 6 Mar 2009, Jay Soffian wrote:

> On Thu, Mar 5, 2009 at 11:56 PM, Daniel Barkalow <barkalow@xxxxxxxxxxxx> wrote:
> > This series only supports the narrowest case of having the * in the middle
> > of a side of a refspec: having it as a full path component on each side.
> >
> > Patches 1-3 centralize all of the parsing and matching rules to a pair of
> > functions; patch 4 makes the stored representation more convenient (and
> > serves as a distinguished bisection outcome for anything I missed that was
> > relying on the contents of struct refspec for patterns); and patch 5
> > extends the matching implementation and loosens the ref format
> > requirements to allow the * to be in the middle.
> >
> > An easy followup would relax the restrictions further without requiring
> > any particularly tricky further changes.
> 
> This series and js/remote-improvements (e5dcbfd) in pu may not get
> along completely. "git remote show" tries to show how the refspecs
> expand out. And actually, that should be fine since builtin-remote now
> uses the same code as fetch/push to expand the refs.
> 
> However, "git remote show -n" (-n means don't query the remote) makes
> use of a new function, get_push_ref_states_noquery(), which more or
> less tries to reverse the parsed refspec back into the original
> string. That function relies on the current (before your patch)
> refspec semantics and assumes if refspec.pattern is set, then the '*'
> is at the end. So it will need tweaking.

Actually, you should be able to just drop your "buf" and use spec->src and 
spec->dst, since it just stores the original strings. So that should be 
easy enough, although it might be good to go through a remote.c function 
just in case it becomes more complicated later. On the other hand, 
get_head_names() should probably get a patch like my 1/5 to have it use 
the remote.c parser, or should use a constant "head mirror" refspec like 
that tag_refspec already in remote.c

Do you have tests for "git remote show -n"? Merging my series (on top of 
origin/master) and e5dcbfd and adding a final '*' to the string in 
get_head_names() made everything pass for me, without doing anything about 
the extra *s, but the output is clearly not quite right.

I'm not seeing anything that makes assumptions about the matching 
semantics of pattern refspecs, just stuff about how the stored form 
relates to the config-file form.

	-Daniel
*This .sig left intentionally blank*
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux