revision: factor out add_pending_sha1
This function is a combination of the static get_reference and add_pending_object. It can be used to easily queue objects by hash. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe committed
Oct 1, 2011 at 17:43 UTC
26c3177ee41897af984fac9148763131562accf2
2 files changed
+9
-3
revision.c
+8
-3
@@ -185,6 +185,13 @@ static struct object *get_reference(struct rev_info *revs, const char *name, con
185
return object;
186
}
187
188
+void add_pending_sha1(struct rev_info *revs, const char *name,
189
+ const unsigned char *sha1, unsigned int flags)
190
+{
191
+ struct object *object = get_reference(revs, name, sha1, flags);
192
+ add_pending_object(revs, object, name);
193
+}
194
+
195
static struct commit *handle_commit(struct rev_info *revs, struct object *object, const char *name)
196
{
197
unsigned long flags = object->flags;
@@ -832,9 +839,7 @@ struct all_refs_cb {
839
static int handle_one_ref(const char *path, const unsigned char *sha1, int flag, void *cb_data)
840
{
841
struct all_refs_cb *cb = cb_data;
835
- struct object *object = get_reference(cb->all_revs, path, sha1,
836
- cb->all_flags);
837
- add_pending_object(cb->all_revs, object, path);
842
+ add_pending_sha1(cb->all_revs, path, sha1, cb->all_flags);
843
return 0;
844
}
845
revision.h
+1
@@ -191,6 +191,7 @@ extern void add_object(struct object *obj,
191
const char *name);
192
193
extern void add_pending_object(struct rev_info *revs, struct object *obj, const char *name);
194
+extern void add_pending_sha1(struct rev_info *revs, const char *name, const unsigned char *sha1, unsigned int flags);
195
196
extern void add_head_to_pending(struct rev_info *);
197