gitweb: update Git homepage URL
[gitweb.git] / builtin-fast-export.c
index f171ee4a2beb3cfd6eec203f422799249508ee13..9a8a6fc6b1e98162a1548b40bd4281172e18d7b2 100644 (file)
@@ -119,7 +119,7 @@ static void handle_object(const unsigned char *sha1)
 
        printf("blob\nmark :%"PRIu32"\ndata %lu\n", last_idnum, size);
        if (size && fwrite(buf, size, 1, stdout) != 1)
-               die ("Could not write blob %s", sha1_to_hex(sha1));
+               die_errno ("Could not write blob '%s'", sha1_to_hex(sha1));
        printf("\n");
 
        show_progress();
@@ -221,7 +221,8 @@ static void handle_commit(struct commit *commit, struct rev_info *rev)
        if (message)
                message += 2;
 
-       if (commit->parents) {
+       if (commit->parents &&
+           get_object_mark(&commit->parents->item->object) != 0) {
                parse_commit(commit->parents->item);
                diff_tree_sha1(commit->parents->item->tree->object.sha1,
                               commit->tree->object.sha1, "", &rev->diffopt);
@@ -450,7 +451,7 @@ static void import_marks(char *input_file)
        char line[512];
        FILE *f = fopen(input_file, "r");
        if (!f)
-               die("cannot read %s: %s", input_file, strerror(errno));
+               die_errno("cannot read '%s'", input_file);
 
        while (fgets(line, sizeof(line), f)) {
                uint32_t mark;
@@ -514,7 +515,7 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix)
 
        init_revisions(&revs, prefix);
        argc = setup_revisions(argc, argv, &revs, NULL);
-       argc = parse_options(argc, argv, options, fast_export_usage, 0);
+       argc = parse_options(argc, argv, prefix, options, fast_export_usage, 0);
        if (argc > 1)
                usage_with_options (fast_export_usage, options);