Re: [PATCH 12/12] receive-pack: avoid duplicates between our refs and alternates
From: Jeff King <hidden>
Date: 2017-01-25 20:05:29
On Wed, Jan 25, 2017 at 12:02:30PM -0800, Junio C Hamano wrote:
quoted
+extract_ref_advertisement () { + perl -lne ' + # \\ is there to skip capabilities after \0 + /push< ([^\\]+)/ or next; + exit 0 if $1 eq "0000"; + print $1; + 'Parsing TRACE_PACKET output? Yuck. But I think this has to do, as any other solution will bound to be uglier.
Agreed. My initial attempt was to just run "git receive-pack </dev/null" and parse the advertisement. But then you have to parse pktlines. :)
quoted
+ # Notable things in this expectation: + # - local refs are not de-duped + # - .have does not duplicate locals + # - .have does not duplicate itself + local=$(git -C fork rev-parse HEAD) && + shared=$(git -C shared rev-parse only-shared) && + cat >expect <<-EOF && + $local refs/heads/master + $local refs/remotes/origin/HEAD + $local refs/remotes/origin/master + $shared .have + EOFWe may want to sort this thing and the extracted one when comparing; the order of the entries is not part of the feature we cast in stone.
True (and in fact the .have moved in the previous patch). I wondered, though, if it might not be a reasonable thing for somebody to have to look at the output and verify it when the order _does_ change. I dunno. -Peff