Re: [PATCH 1/2] clone: Fix error message for reference repository

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At 16:48 -0700 07 Apr 2013, Jonathan Nieder <jrnieder@xxxxxxxxx> wrote:
Hi Aaron,

Thanks for the feedback.

Aaron Schrab wrote:

Do not report an argument to clone's --reference option is not a local
directory.  Nothing checks for the actual directory so we have no way to
know if whether or not exists.  Telling the user that a directory doesn't
exist when that isn't actually known may lead him or her on the wrong
path to finding the problem.

I don't understand the above explanation.  Could you give an example?

I originally noticed this while trying to use a submodule as a reference repository. Since that submodule was first checked out using a recent version of git it used a .git file rather than having a .git directory. This caused the checks to fail, and the misleading error message had me checking for a typo in the path which I'd supplied.

I'll attempt to clarify that message in the next version.

--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -241,7 +241,7 @@ static int add_one_reference(struct string_list_item *item, void *cb_data)
 		free(ref_git);
 		ref_git = ref_git_git;
 	} else if (!is_directory(mkpath("%s/objects", ref_git)))
-		die(_("reference repository '%s' is not a local directory."),
+		die(_("reference repository '%s' is not a local repository."),

"is_directory" calls stat and checks if its target is a directory.  Is
the problem that "/path/to/repo.git" might be a directory but
"/path/to/repo.git/objects" may not?

In my case the issue was that /path/to/repo is a directory, but /path/to/repo/.git/objects (which is checked shortly before the above context) didn't exist since /path/to/repo/.git is a file.

Would it make sense for the message to say something like the
following?

	fatal: alternate object store '/path/to/repo.git/objects' is not a local directory

That would also avoid lying to the user. But if combined with the second patch in this series it could cause confusion for a different reason. Once .git files are honored, the path reported there may have no relation to the path supplied by the user.
--
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




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]