Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
builtin-prune: separate ref walking from reflog walking.
author
Junio C Hamano
<junkio@cox.net>
Sat, 6 Jan 2007 10:16:14 +0000
(
02:16
-0800)
committer
Junio C Hamano
<junkio@cox.net>
Sun, 7 Jan 2007 06:57:34 +0000
(22:57 -0800)
This is necessary for the next step, because the reason I am
making the connectivity walker into a library is because I want
to use it for cleaning up stale reflog entries.
Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-prune.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
2430481
)
diff --git
a/builtin-prune.c
b/builtin-prune.c
index 95228645d58cd0c83d023f62f301180b5347cac4..cd079b419cf2792550809a398ba1e7abf60d550f 100644
(file)
--- a/
builtin-prune.c
+++ b/
builtin-prune.c
@@
-203,8
+203,12
@@
static int add_one_ref(const char *path, const unsigned char *sha1, int flag, vo
die("bad object ref: %s:%s", path, sha1_to_hex(sha1));
add_pending_object(revs, object, "");
die("bad object ref: %s:%s", path, sha1_to_hex(sha1));
add_pending_object(revs, object, "");
- for_each_reflog_ent(path, add_one_reflog_ent, cb_data);
+ return 0;
+}
+static int add_one_reflog(const char *path, const unsigned char *sha1, int flag, void *cb_data)
+{
+ for_each_reflog_ent(path, add_one_reflog_ent, cb_data);
return 0;
}
return 0;
}
@@
-267,12
+271,15
@@
int cmd_prune(int argc, const char **argv, const char *prefix)
revs.blob_objects = 1;
revs.tree_objects = 1;
revs.blob_objects = 1;
revs.tree_objects = 1;
- /* Add all external refs
, along with its reflog info
*/
+ /* Add all external refs */
for_each_ref(add_one_ref, &revs);
/* Add all refs from the index file */
add_cache_refs(&revs);
for_each_ref(add_one_ref, &revs);
/* Add all refs from the index file */
add_cache_refs(&revs);
+ /* Add all reflog info from refs */
+ for_each_ref(add_one_reflog, &revs);
+
/*
* Set up the revision walk - this will move all commits
* from the pending list to the commit walking list.
/*
* Set up the revision walk - this will move all commits
* from the pending list to the commit walking list.