Re: [RFC][PATCH] for_each_ref() returning heads in wrong order
- From
Petr Baudis <pasky@suse.cz>
- Date
- Sep 23, 2006, 16:47 UTC
- Message-ID
- <20060923164759.GP8259@pasky.or.cz>
- In-Reply-To
- <20060923160712.5890.73139.stgit@machine.or.cz>
Dear diary, on Sat, Sep 23, 2006 at 06:36:21PM CEST, I got a letter where Petr Baudis <pasky@suse.cz> said that...
Show 6 quoted lines
> Using the #next branch I've now hit a problem with git-fetch-pack > master choosing refs/bases/master (I geuss created by StGIT) instead > of refs/heads/master. The old upload-pack returned the refs in the order > heads-tags-everything_else but the new one just goes for whatever order > readdir() returns them in (modulo merging with packed refs). I actually > can't see the difference that caused this right now, though.
Portion of this is obsolete, I've since noticed what the difference actually is - the _old_ one processed the directory unsorted and the new one actually keeps it sorted in add_ref().
Alternate approach would be just to modify add_ref() sort order to take heads and tags into account (but you still need to keep the cmp hack for merging packed/loose refs). Should be pretty easy to do, but I personally need to proceed with my TODO list for now since I've already a working workaround.
--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)