git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Martin Langhoff
Message 4 of 4 in “Testing for commit reachability through plumbing commands”
  1. Martin LanghoffMar 6, 2014
  2. Andreas SchwabMar 6, 2014
  3. Martin LanghoffMar 6, 2014
  4. Jeff KingMar 6, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.