Re: Testing for commit reachability through plumbing commands
- From
Jeff King <peff@peff.net>
- Date
- Mar 6, 2014, 20:23 UTC
- Message-ID
- <20140306202319.GB29659@sigill.intra.peff.net>
- In-Reply-To
- <CACPiFCJLyE6XC9dY_eawe2y9gS4YsPdTbqkKAd0dcPXd5-eMCg@mail.gmail.com>
On Thu, Mar 06, 2014 at 12:17:34PM -0500, Martin Langhoff wrote:
Show 9 quoted lines
> 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