diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-13 12:35:08 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-13 12:35:08 -0700 |
commit | 2845dbe4a451b20f963f872c3914b9184142ff3f (patch) | |
tree | 8caa89079f408d056c20ae13a2a62cb2148ccd2c | |
parent | d9839e030592292267e6317fba308383e0012001 (diff) | |
download | git-2845dbe4a451b20f963f872c3914b9184142ff3f.tar.gz git-2845dbe4a451b20f963f872c3914b9184142ff3f.tar.xz |
Make fsck reachability avoid doing unnecessary work for
parents that we reach multiple ways.
This doesn't matter right now. It _will_ matter once we have
complex revision graphs.
-rw-r--r-- | fsck-cache.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fsck-cache.c b/fsck-cache.c index bb2b86761..34c80811c 100644 --- a/fsck-cache.c +++ b/fsck-cache.c @@ -108,6 +108,9 @@ static void mark_reachable(struct revision *rev) { struct parent *p = rev->parent; + /* If we've been here already, don't bother */ + if (rev->flags & REACHABLE) + return; rev->flags |= REACHABLE | USED; while (p) { mark_reachable(p->parent); |