diff options
author | Junio C Hamano <gitster@pobox.com> | 2007-11-22 16:51:18 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-11-22 16:51:18 -0800 |
commit | fa30383642c5838bd6d4c903abafcea17568abb1 (patch) | |
tree | 9dad233b115c5bcd4274c4f6e095ae4aaff7cb45 /bundle.c | |
parent | 6047a234c5a6aef58c72a35feba326484f07660d (diff) | |
parent | 958e67c0a8b7f12462ad1828ac3b3178181ea4e9 (diff) | |
download | git-fa30383642c5838bd6d4c903abafcea17568abb1.tar.gz git-fa30383642c5838bd6d4c903abafcea17568abb1.tar.xz |
Merge branch 'maint'
* maint:
Make test scripts executable.
bundle create: keep symbolic refs' names instead of resolving them
Diffstat (limited to 'bundle.c')
-rw-r--r-- | bundle.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -6,6 +6,7 @@ #include "revision.h" #include "list-objects.h" #include "run-command.h" +#include "refs.h" static const char bundle_signature[] = "# v2 git bundle\n"; @@ -232,11 +233,17 @@ int create_bundle(struct bundle_header *header, const char *path, struct object_array_entry *e = revs.pending.objects + i; unsigned char sha1[20]; char *ref; + const char *display_ref; + int flag; if (e->item->flags & UNINTERESTING) continue; if (dwim_ref(e->name, strlen(e->name), sha1, &ref) != 1) continue; + if (!resolve_ref(e->name, sha1, 1, &flag)) + flag = 0; + display_ref = (flag & REF_ISSYMREF) ? e->name : ref; + /* * Make sure the refs we wrote out is correct; --max-count and * other limiting options could have prevented all the tips @@ -287,7 +294,7 @@ int create_bundle(struct bundle_header *header, const char *path, ref_count++; write_or_die(bundle_fd, sha1_to_hex(e->item->sha1), 40); write_or_die(bundle_fd, " ", 1); - write_or_die(bundle_fd, ref, strlen(ref)); + write_or_die(bundle_fd, display_ref, strlen(display_ref)); write_or_die(bundle_fd, "\n", 1); free(ref); } |