Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
builtin/fetch: rewrite to take an object_id argument
author
Michael Haggerty
<mhagger@alum.mit.edu>
Mon, 25 May 2015 18:38:35 +0000
(18:38 +0000)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 25 May 2015 19:19:29 +0000
(12:19 -0700)
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fetch.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
99a2cfb
)
diff --git
a/builtin/fetch.c
b/builtin/fetch.c
index 4878c3dbd1b3757b23d681364180f39e2f4d617f..8d5b2dba2bc4251a7c35bc6aa6ff260ea72b7455 100644
(file)
--- a/
builtin/fetch.c
+++ b/
builtin/fetch.c
@@
-179,13
+179,15
@@
static void add_merge_config(struct ref **head,
}
}
}
}
-static int add_existing(const char *refname, const
unsigned char *sha1
,
+static int add_existing(const char *refname, const
struct object_id *oid
,
int flag, void *cbdata)
{
struct string_list *list = (struct string_list *)cbdata;
struct string_list_item *item = string_list_insert(list, refname);
int flag, void *cbdata)
{
struct string_list *list = (struct string_list *)cbdata;
struct string_list_item *item = string_list_insert(list, refname);
- item->util = xmalloc(20);
- hashcpy(item->util, sha1);
+ struct object_id *old_oid = xmalloc(sizeof(*old_oid));
+
+ oidcpy(old_oid, oid);
+ item->util = old_oid;
return 0;
}
return 0;
}
@@
-208,10
+210,8
@@
static void find_non_local_tags(struct transport *transport,
struct string_list remote_refs = STRING_LIST_INIT_NODUP;
const struct ref *ref;
struct string_list_item *item = NULL;
struct string_list remote_refs = STRING_LIST_INIT_NODUP;
const struct ref *ref;
struct string_list_item *item = NULL;
- struct each_ref_fn_sha1_adapter wrapped_add_existing =
- {add_existing, &existing_refs};
- for_each_ref(
each_ref_fn_adapter, &wrapped_add_existing
);
+ for_each_ref(
add_existing, &existing_refs
);
for (ref = transport_get_remote_refs(transport); ref; ref = ref->next) {
if (!starts_with(ref->name, "refs/tags/"))
continue;
for (ref = transport_get_remote_refs(transport); ref; ref = ref->next) {
if (!starts_with(ref->name, "refs/tags/"))
continue;
@@
-886,10
+886,8
@@
static int do_fetch(struct transport *transport,
struct ref *rm;
int autotags = (transport->remote->fetch_tags == 1);
int retcode = 0;
struct ref *rm;
int autotags = (transport->remote->fetch_tags == 1);
int retcode = 0;
- struct each_ref_fn_sha1_adapter wrapped_add_existing =
- {add_existing, &existing_refs};
- for_each_ref(
each_ref_fn_adapter, &wrapped_add_existing
);
+ for_each_ref(
add_existing, &existing_refs
);
if (tags == TAGS_DEFAULT) {
if (transport->remote->fetch_tags == 2)
if (tags == TAGS_DEFAULT) {
if (transport->remote->fetch_tags == 2)
@@
-917,9
+915,10
@@
static int do_fetch(struct transport *transport,
struct string_list_item *peer_item =
string_list_lookup(&existing_refs,
rm->peer_ref->name);
struct string_list_item *peer_item =
string_list_lookup(&existing_refs,
rm->peer_ref->name);
- if (peer_item)
- hashcpy(rm->peer_ref->old_sha1,
- peer_item->util);
+ if (peer_item) {
+ struct object_id *old_oid = peer_item->util;
+ hashcpy(rm->peer_ref->old_sha1, old_oid->hash);
+ }
}
}
}
}