git-bundle: fix pack generation.
authorJunio C Hamano <junkio@cox.net>
Tue, 6 Mar 2007 06:48:00 +0000 (22:48 -0800)
committerJunio C Hamano <junkio@cox.net>
Tue, 6 Mar 2007 07:28:36 +0000 (23:28 -0800)
The handcrafted built-in rev-list lookalike forgot to mark the trees
and blobs contained in the boundary commits uninteresting, resulting
in unnecessary objects in the pack.

Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-bundle.c

index d41a413b58d139283315720d9ffba95ea595cc1d..279b8f8e582665dda3c99d800094db2f5cf5af99 100644 (file)
@@ -263,6 +263,11 @@ static void show_object(struct object_array_entry *p)
        write_or_die(1, "\n", 1);
 }
 
+static void show_edge(struct commit *commit)
+{
+       ; /* nothing to do */
+}
+
 static int create_bundle(struct bundle_header *header, const char *path,
                int argc, const char **argv)
 {
@@ -341,6 +346,7 @@ static int create_bundle(struct bundle_header *header, const char *path,
        dup2(in, 1);
        close(in);
        prepare_revision_walk(&revs);
+       mark_edges_uninteresting(revs.commits, &revs, show_edge);
        traverse_commit_list(&revs, show_commit, show_object);
        close(1);
        while (waitpid(pid, &status, 0) < 0)