Browse Source

Merge branch 'rs/maint-archive-match-pathspec'

* rs/maint-archive-match-pathspec:
  archive: complain about path specs that don't match anything
maint
Junio C Hamano 15 years ago
parent
commit
5b9c0a699b
  1. 25
      archive.c

25
archive.c

@ -211,10 +211,33 @@ static const struct archiver *lookup_archiver(const char *name) @@ -211,10 +211,33 @@ static const struct archiver *lookup_archiver(const char *name)
return NULL;
}

static int reject_entry(const unsigned char *sha1, const char *base,
int baselen, const char *filename, unsigned mode,
int stage, void *context)
{
return -1;
}

static int path_exists(struct tree *tree, const char *path)
{
const char *pathspec[] = { path, NULL };

if (read_tree_recursive(tree, "", 0, 0, pathspec, reject_entry, NULL))
return 1;
return 0;
}

static void parse_pathspec_arg(const char **pathspec,
struct archiver_args *ar_args)
{
ar_args->pathspec = get_pathspec("", pathspec);
ar_args->pathspec = pathspec = get_pathspec("", pathspec);
if (pathspec) {
while (*pathspec) {
if (!path_exists(ar_args->tree, *pathspec))
die("path not found: %s", *pathspec);
pathspec++;
}
}
}

static void parse_treeish_arg(const char **argv,

Loading…
Cancel
Save