Archiving off old branches
I've got a branch for each bug/issue and it was getting a bit unwieldy. A little searching suggested this # archive off the BUG-123 branch git update-ref refs/closed/BUG-123 BUG-123 git branch -D BUG-123 which seems to do exactly what I want -- branches are archived off so they still have refs, but they don't appear in the output of git branch. Reading up on git help update-ref, it states that it updates the name safely. As best I can tell, the above process does something like cd .git/refs mkdir -p closed mv heads/BUG-123 closed Is there something unsafe about this? The advantage to the latter would be that I could do a bunch of them easily: mv heads/BUG-{123,234,345,456,567} closed but I want to make sure I'm not screwing something up unsafely. Is there some key element to update-ref's safety that I'm missing? -tkc -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Archiving off old branches
Tim Chase g...@tim.thechases.com writes: Reading up on git help update-ref, it states that it updates the name safely. I think that description is well intended but is misleading. There are many potential sources of risk, and the safely refers to protection against a particular kind of risk: updating from a value that you did not intend to (i.e. you examined and decided the update is good, time passes while somebody else might have mucked with the ref, and then you execute the update you decided to do). And the safety afforded to you is with git update-ref ref newvalue oldvalue that makes sure the ref still points at the oldvalue and refuses to update it to newvalue if it doesn't. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Archiving off old branches
Hi, Tim Chase wrote: cd .git/refs mkdir -p closed mv heads/BUG-123 closed That breaks with packed refs (see git-pack-refs(1)), which are a normal thing to encounter after garbage collection. Hope that helps, Jonathan -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Archiving off old branches
On 2014-04-23 10:58, Jonathan Nieder wrote: Tim Chase wrote: cd .git/refs mkdir -p closed mv heads/BUG-123 closed That breaks with packed refs (see git-pack-refs(1)), which are a normal thing to encounter after garbage collection. Hope that helps, Very much so. Alrighty...based on that alone, I'll stick to my archive script that calls update-ref and then deletes the branch. Thanks, -tkc -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Archiving off old branches
Jonathan Nieder jrnie...@gmail.com writes: Tim Chase wrote: cd .git/refs mkdir -p closed mv heads/BUG-123 closed That breaks with packed refs (see git-pack-refs(1)), which are a normal thing to encounter after garbage collection. Specifically, - if BUG-123 branch was placed in packed-refs file in the past (which may be older than what you have right now at heads/BUG-123 as a loose ref), the above procedure will still make it appear in your git branch --list output, pointing at a possibly old commit that may even have been pruned away. - if BUG-123 branch was placed in packed-refs file and you haven't touched that branch since then, heads/BUG-123 file would not exist, mv will fail, and you won't see closed/BUG-123 at the end of the procedure. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html