On Wed, Jul 22, 2015 at 3:04 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Jacob Keller <jacob.e.keller@xxxxxxxxx> writes: > >> From: Jacob Keller <jacob.keller@xxxxxxxxx> >> >> Modify logic of check_refname_component and add a new disposition >> regarding "*". Allow refspecs that contain a single "*" if >> REFNAME_REFSPEC_PATTERN is set. Change the function to pass the flags as >> a pointer, and clear REFNAME_REFSPEC_PATTERN after the first "*" so that >> only a single "*" is accepted. >> >> This loosens restrictions on refspecs by allowing patterns that have >> a "*" within a component instead of only as the whole component. Also >> remove the code that hangled refspec patterns in check_refname_format >> since it is now handled via the check_refname_component logic. >> >> Now refs such as `for/bar*:foo/bar*` and even `foo/bar*:foo/baz*` will >> be accepted. This allows users more control over what is fetched where. >> Since users must modify the default by hand to make use of this >> functionality it is not considered a large risk. Any refspec which >> functioned before shall continue functioning with the new logic. > > > Thanks. Now I can read the changes to the code in these two commits > and see that they both make sense ;-) > > The above description seem to use "ref" and "refspec" rather > liberally, so I'll rewrite some parts of it to clarify while > queuing. > > By the way, have you run test suite before sending this (or any > previous round of this) patch? This seems to break t5511-refspec.sh > for me. > > > Looks like another location I forgot to update. I can send a re-spin if you need with the following diff. Basically looks like the tests just didn't get updated to count the new behavior is valid. diff --git i/t/t5511-refspec.sh w/t/t5511-refspec.sh index de6db86ccff0..7bfca7962d41 100755 --- i/t/t5511-refspec.sh +++ w/t/t5511-refspec.sh @@ -71,11 +71,11 @@ test_refspec fetch ':refs/remotes/frotz/HEAD-to-me' test_refspec push ':refs/remotes/frotz/delete me' invalid test_refspec fetch ':refs/remotes/frotz/HEAD to me' invalid -test_refspec fetch 'refs/heads/*/for-linus:refs/remotes/mine/*-blah' invalid -test_refspec push 'refs/heads/*/for-linus:refs/remotes/mine/*-blah' invalid +test_refspec fetch 'refs/heads/*/for-linus:refs/remotes/mine/*-blah' +test_refspec push 'refs/heads/*/for-linus:refs/remotes/mine/*-blah' -test_refspec fetch 'refs/heads*/for-linus:refs/remotes/mine/*' invalid -test_refspec push 'refs/heads*/for-linus:refs/remotes/mine/*' invalid +test_refspec fetch 'refs/heads*/for-linus:refs/remotes/mine/*' +test_refspec push 'refs/heads*/for-linus:refs/remotes/mine/*' test_refspec fetch 'refs/heads/*/*/for-linus:refs/remotes/mine/*' invalid test_refspec push 'refs/heads/*/*/for-linus:refs/remotes/mine/*' invalid Regards, Jake -- 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