Testing for commit reachability through plumbing commands
I have a shell script that trims old history on a cronjob. This is for a repo that is used to track reports that have limited life (like logs). Old history is trimmed with grafts pointing to an empty root commit. Right now, info/graft grows unbound. I am looking for a way to trim unreachable grafts, I would like to be able to say something like: git is-reachable treeish Grepping through docs and existing code hasn't helped, but perhaps I'm missing something obvious... This repository has a couple hundred branches (one per server tracked). For a single branch, I can picture a relatively easy approach with git merge-base. thanks! m -- martin.langh...@gmail.com - ask interesting questions - don't get distracted with shiny stuff - working code first ~ http://docs.moodle.org/en/User:Martin_Langhoff -- 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: Testing for commit reachability through plumbing commands
Martin Langhoff martin.langh...@gmail.com writes: I have a shell script that trims old history on a cronjob. This is for a repo that is used to track reports that have limited life (like logs). Old history is trimmed with grafts pointing to an empty root commit. Right now, info/graft grows unbound. I am looking for a way to trim unreachable grafts, I would like to be able to say something like: git is-reachable treeish Grepping through docs and existing code hasn't helped, but perhaps I'm missing something obvious... Does git fsck --unreachable --no-reflogs help? Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 And now for something completely different. -- 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: Testing for commit reachability through plumbing commands
On Thu, Mar 6, 2014 at 2:17 PM, Andreas Schwab sch...@linux-m68k.org wrote: Does git fsck --unreachable --no-reflogs help? Well, my script, called regularly, does: - adds grafts - git repack -AFfd (which unpacks unreachable objects) - git prune --expire now hmm, I guess could prune the grafts using git fsck --unreachable --no-reflogs before pruning the objects themselves. we'll find out if it works :-) m -- martin.langh...@gmail.com - ask interesting questions - don't get distracted with shiny stuff - working code first ~ http://docs.moodle.org/en/User:Martin_Langhoff -- 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: Testing for commit reachability through plumbing commands
On Thu, Mar 06, 2014 at 12:17:34PM -0500, Martin Langhoff wrote: I have a shell script that trims old history on a cronjob. This is for a repo that is used to track reports that have limited life (like logs). Old history is trimmed with grafts pointing to an empty root commit. Right now, info/graft grows unbound. I am looking for a way to trim unreachable grafts, I would like to be able to say something like: git is-reachable treeish How about: git rev-list --objects --all | cut -d' ' -f1 | grep $(git rev-parse treeish) Add --reflog to the rev-list invocation if you want to catch things referenced by the reflog, too. If you're looking for a commit, you can drop the --objects, and it will run much faster. -Peff -- 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