A common use of bundle is to schedule nightly emailed updates to a remote system containing all updates made over a given period. We want bundle to complain only if the resulting bundle would be empty, but not if at least one of the given refs has an update resulting in a non-empty bundle. Signed-off-by: Mark Levedahl <mdl123@xxxxxxxxxxx> --- builtin-bundle.c | 17 +++++++++-------- 1 files changed, 9 insertions(+), 8 deletions(-) diff --git a/builtin-bundle.c b/builtin-bundle.c index c85f996..b888a9f 100644 --- a/builtin-bundle.c +++ b/builtin-bundle.c @@ -261,6 +261,7 @@ static int create_bundle(struct bundle_header *header, const char *path, int argc, const char **argv) { int bundle_fd = -1; + int isempty = 1; const char **argv_boundary = xmalloc((argc + 4) * sizeof(const char *)); const char **argv_pack = xmalloc(5 * sizeof(const char *)); int pid, in, out, i, status; @@ -328,17 +329,17 @@ static int create_bundle(struct bundle_header *header, const char *path, * other limiting options could have prevented all the tips * from getting output. */ - if (!(e->item->flags & SHOWN)) { - warn("ref '%s' is excluded by the rev-list options", - e->name); - continue; + if ((e->item->flags & SHOWN)) { + isempty = 0; + 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, "\n", 1); } - 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, "\n", 1); free(ref); } + if (isempty) + die("Bundle is empty"); /* end header */ write_or_die(bundle_fd, "\n", 1); -- 1.5.0.3.927.g2432c-dirty - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html