On Wed, Oct 22, 2008 at 04:37:22PM -0400, Deskin Miller wrote: > cmd_archive was calling git_config -> setup_git_env prior to > write_archive calling setup_git_directory. In a bare repository, the > former will set git_dir to be '.git' since the latter has not > determined that it's operating in a bare repository yet. > > Things are complicated, however, by the fact that git archive --list > should work from anywhere, not just in git repositories, so that > argument needs to be checked for before setup_git_directory is called. Should you perhaps be able to call setup_git_directory_gently(), and then once you decide that you really do need the setup, call setup_git_directory()? You would have to add a "did we already do run" flag to setup_git_directory_gently(), but I think it is already an error to call it twice, so you wouldn't be hurting anything by that. Note also that by moving the setup, you are moving the chdir() that happens; you may need to prefix paths to any arguments to accomodate this (I don't think it should matter, since git-archive shouldn't look at any paths until after it would have done the setup_git_directory() before, but I didn't check carefully). -Peff -- 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