Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
git-bundle: make verify a bit more chatty.
author
Junio C Hamano
<junkio@cox.net>
Tue, 6 Mar 2007 00:17:27 +0000
(16:17 -0800)
committer
Junio C Hamano
<junkio@cox.net>
Tue, 6 Mar 2007 09:08:34 +0000
(
01:08
-0800)
Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-bundle.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
c33d859
)
diff --git
a/builtin-bundle.c
b/builtin-bundle.c
index d4dd57d159eaf9cacf5e8dd48a72586541e6aba3..d0c361763c915f0577c7f88e819ae104d71f1e8b 100644
(file)
--- a/
builtin-bundle.c
+++ b/
builtin-bundle.c
@@
-160,9
+160,28
@@
static int fork_with_pipe(const char **argv, int *in, int *out)
return pid;
}
return pid;
}
+static int list_refs(struct ref_list *r, int argc, const char **argv)
+{
+ int i;
+
+ for (i = 0; i < r->nr; i++) {
+ if (argc > 1) {
+ int j;
+ for (j = 1; j < argc; j++)
+ if (!strcmp(r->list[i].name, argv[j]))
+ break;
+ if (j == argc)
+ continue;
+ }
+ printf("%s %s\n", sha1_to_hex(r->list[i].sha1),
+ r->list[i].name);
+ }
+ return 0;
+}
+
#define PREREQ_MARK (1u<<16)
#define PREREQ_MARK (1u<<16)
-static int verify_bundle(struct bundle_header *header)
+static int verify_bundle(struct bundle_header *header
, int verbose
)
{
/*
* Do fast check, then if any prereqs are missing then go line by line
{
/*
* Do fast check, then if any prereqs are missing then go line by line
@@
-218,27
+237,24
@@
static int verify_bundle(struct bundle_header *header)
for (i = 0; i < refs.nr; i++)
clear_commit_marks((struct commit *)refs.objects[i].item, -1);
for (i = 0; i < refs.nr; i++)
clear_commit_marks((struct commit *)refs.objects[i].item, -1);
+ if (verbose) {
+ struct ref_list *r;
+
+ r = &header->references;
+ printf("The bundle contains %d ref%s\n",
+ r->nr, (1 < r->nr) ? "s" : "");
+ list_refs(r, 0, NULL);
+ r = &header->prerequisites;
+ printf("The bundle requires these %d ref%s\n",
+ r->nr, (1 < r->nr) ? "s" : "");
+ list_refs(r, 0, NULL);
+ }
return ret;
}
static int list_heads(struct bundle_header *header, int argc, const char **argv)
{
return ret;
}
static int list_heads(struct bundle_header *header, int argc, const char **argv)
{
- int i;
- struct ref_list *r = &header->references;
-
- for (i = 0; i < r->nr; i++) {
- if (argc > 1) {
- int j;
- for (j = 1; j < argc; j++)
- if (!strcmp(r->list[i].name, argv[j]))
- break;
- if (j == argc)
- continue;
- }
- printf("%s %s\n", sha1_to_hex(r->list[i].sha1),
- r->list[i].name);
- }
- return 0;
+ return list_refs(&header->references, argc, argv);
}
static void show_commit(struct commit *commit)
}
static void show_commit(struct commit *commit)
@@
-385,7
+401,7
@@
static int unbundle(struct bundle_header *header, int bundle_fd,
const char *argv_index_pack[] = {"index-pack", "--stdin", NULL};
int pid, status, dev_null;
const char *argv_index_pack[] = {"index-pack", "--stdin", NULL};
int pid, status, dev_null;
- if (verify_bundle(header))
+ if (verify_bundle(header
, 0
))
return -1;
dev_null = open("/dev/null", O_WRONLY);
pid = fork_with_pipe(argv_index_pack, &bundle_fd, &dev_null);
return -1;
dev_null = open("/dev/null", O_WRONLY);
pid = fork_with_pipe(argv_index_pack, &bundle_fd, &dev_null);
@@
-429,7
+445,7
@@
int cmd_bundle(int argc, const char **argv, const char *prefix)
if (!strcmp(cmd, "verify")) {
close(bundle_fd);
if (!strcmp(cmd, "verify")) {
close(bundle_fd);
- if (verify_bundle(&header))
+ if (verify_bundle(&header
, 1
))
return 1;
fprintf(stderr, "%s is okay\n", bundle_file);
return 0;
return 1;
fprintf(stderr, "%s is okay\n", bundle_file);
return 0;
@@
-449,4
+465,3
@@
int cmd_bundle(int argc, const char **argv, const char *prefix)
} else
usage(bundle_usage);
}
} else
usage(bundle_usage);
}
-