]> rtime.felk.cvut.cz Git - git.git/commitdiff
Merge branch 'maint'
authorJunio C Hamano <gitster@pobox.com>
Fri, 23 Nov 2007 00:51:18 +0000 (16:51 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 23 Nov 2007 00:51:18 +0000 (16:51 -0800)
* maint:
  Make test scripts executable.
  bundle create: keep symbolic refs' names instead of resolving them

bundle.c
t/t4018-diff-funcname.sh [changed mode: 0644->0755]
t/t5510-fetch.sh
t/t7501-commit.sh [changed mode: 0644->0755]

index e4d60cde6f1b9dd7a2aab36ebc4f2a97a9d61b22..9b9b9166df05e984dc571462f333aeaee9cdcd23 100644 (file)
--- a/bundle.c
+++ b/bundle.c
@@ -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);
        }
old mode 100644 (file)
new mode 100755 (executable)
index aad863db7ad74ed217b3bcc76de43556f9fe7a07..35889c0a125fffdfb556ec521d61c18ac4e96c17 100755 (executable)
@@ -215,4 +215,17 @@ test_expect_success 'quoting of a strangely named repo' '
        grep "fatal: '\''a\\\\!'\''b'\''" result
 '
 
+test_expect_success 'bundle should record HEAD correctly' '
+
+       cd "$D" &&
+       git bundle create bundle5 HEAD master &&
+       git bundle list-heads bundle5 >actual &&
+       for h in HEAD refs/heads/master
+       do
+               echo "$(git rev-parse --verify $h) $h"
+       done >expect &&
+       diff -u expect actual
+
+'
+
 test_done
old mode 100644 (file)
new mode 100755 (executable)