int bundle_fd = -1;
int bundle_to_stdout;
const char **argv_boundary = xmalloc((argc + 4) * sizeof(const char *));
- const char **argv_pack = xmalloc(5 * sizeof(const char *));
+ const char **argv_pack = xmalloc(6 * sizeof(const char *));
int i, ref_count = 0;
char buffer[1024];
struct rev_info revs;
- int read_from_stdin = 0;
struct child_process rls;
FILE *rls_fout;
/* write references */
argc = setup_revisions(argc, argv, &revs, NULL);
- for (i = 1; i < argc; i++) {
- if (!strcmp(argv[i], "--stdin")) {
- if (read_from_stdin++)
- die("--stdin given twice?");
- read_revisions_from_stdin(&revs);
- continue;
- }
- return error("unrecognized argument: %s'", argv[i]);
- }
+ if (argc > 1)
+ return error("unrecognized argument: %s'", argv[1]);
object_array_remove_duplicates(&revs.pending);
argv_pack[1] = "--all-progress-implied";
argv_pack[2] = "--stdout";
argv_pack[3] = "--thin";
- argv_pack[4] = NULL;
+ argv_pack[4] = "--delta-base-offset";
+ argv_pack[5] = NULL;
memset(&rls, 0, sizeof(rls));
rls.argv = argv_pack;
rls.in = -1;
close(rls.in);
if (finish_command(&rls))
return error ("pack-objects died");
- if (!bundle_to_stdout)
- commit_lock_file(&lock);
+ if (!bundle_to_stdout) {
+ if (commit_lock_file(&lock))
+ die_errno("cannot create '%s'", path);
+ }
return 0;
}