* Testing for commit reachability through plumbing commands
@ 2014-03-06 17:17 Martin Langhoff
2014-03-06 19:17 ` Andreas Schwab
2014-03-06 20:23 ` Jeff King
0 siblings, 2 replies; 4+ messages in thread
From: Martin Langhoff @ 2014-03-06 17:17 UTC (permalink / raw)
To: Git Mailing List
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.langhoff@gmail.com
- ask interesting questions
- don't get distracted with shiny stuff - working code first
~ http://docs.moodle.org/en/User:Martin_Langhoff
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Testing for commit reachability through plumbing commands
2014-03-06 17:17 Testing for commit reachability through plumbing commands Martin Langhoff
@ 2014-03-06 19:17 ` Andreas Schwab
2014-03-06 19:29 ` Martin Langhoff
2014-03-06 20:23 ` Jeff King
1 sibling, 1 reply; 4+ messages in thread
From: Andreas Schwab @ 2014-03-06 19:17 UTC (permalink / raw)
To: Martin Langhoff; +Cc: Git Mailing List
Martin Langhoff <martin.langhoff@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, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Testing for commit reachability through plumbing commands
2014-03-06 19:17 ` Andreas Schwab
@ 2014-03-06 19:29 ` Martin Langhoff
0 siblings, 0 replies; 4+ messages in thread
From: Martin Langhoff @ 2014-03-06 19:29 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Git Mailing List
On Thu, Mar 6, 2014 at 2:17 PM, Andreas Schwab <schwab@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.langhoff@gmail.com
- ask interesting questions
- don't get distracted with shiny stuff - working code first
~ http://docs.moodle.org/en/User:Martin_Langhoff
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Testing for commit reachability through plumbing commands
2014-03-06 17:17 Testing for commit reachability through plumbing commands Martin Langhoff
2014-03-06 19:17 ` Andreas Schwab
@ 2014-03-06 20:23 ` Jeff King
1 sibling, 0 replies; 4+ messages in thread
From: Jeff King @ 2014-03-06 20:23 UTC (permalink / raw)
To: Martin Langhoff; +Cc: Git Mailing List
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
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-03-06 20:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-06 17:17 Testing for commit reachability through plumbing commands Martin Langhoff
2014-03-06 19:17 ` Andreas Schwab
2014-03-06 19:29 ` Martin Langhoff
2014-03-06 20:23 ` Jeff King
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).