scalar-diagnose: add directory to archiver more gently
If a directory added to the 'scalar diagnose' archiver does not exist, warn and return 0 from 'add_directory_to_archiver()' rather than failing with a fatal error. This handles a failure edge case where the '.git/logs' has not yet been created when running 'scalar diagnose', but extends to any situation where a directory may be missing in the '.git' dir. Now, when a directory is missing a warning is captured in the diagnostic logs. This provides a user with more complete information than if 'scalar diagnose' simply failed with an error. Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Victoria Dye <vdye@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
91be401945
commit
ba307a5046
@ -266,14 +266,20 @@ static int add_directory_to_archiver(struct strvec *archiver_args,
|
||||
const char *path, int recurse)
|
||||
{
|
||||
int at_root = !*path;
|
||||
DIR *dir = opendir(at_root ? "." : path);
|
||||
DIR *dir;
|
||||
struct dirent *e;
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
size_t len;
|
||||
int res = 0;
|
||||
|
||||
if (!dir)
|
||||
dir = opendir(at_root ? "." : path);
|
||||
if (!dir) {
|
||||
if (errno == ENOENT) {
|
||||
warning(_("could not archive missing directory '%s'"), path);
|
||||
return 0;
|
||||
}
|
||||
return error_errno(_("could not open directory '%s'"), path);
|
||||
}
|
||||
|
||||
if (!at_root)
|
||||
strbuf_addf(&buf, "%s/", path);
|
||||
|
Loading…
Reference in New Issue
Block a user