Re: [PATCH] git-archive: document CWD effect
From: Andy Parkins <hidden>
Date: 2016-06-15 22:43:03
On Monday 2007, April 09, René Scharfe wrote:
I agree with (1) and (3), meaning that we are free to change the behaviour. I don't agree with (2), though. I'd find it strange if changing the working directory wouldn't change the archive contents. We should keep consistency with the rest of git here. Since git-archive is just a fancy git-ls-tree, I think we should mirror its behaviour with respect to the working directory. (Which is what the current code does. Modulo bugs, of course.)
I don't agree with the supposition that git-archive is a fancy git-ls-tree. If it were, then you'd be right. It's not though. It's more like a git-read-tree or git-checkout-index; those both don't care where you are in the working tree. Argument 1) git-archive should have nothing to do with a working tree in fact; it's perfectly reasonable to expect that it would work in a bare repository in fact - that's almost the definition of a command that shouldn't be working directory aware. Argument 2) Consider the --remote option. What "working path" should be relevant when "--remote" is passed? For consistency, git-archive should always refer to the repository root. Argument 3) git-archive is similar to other VCS's "export" command; and for those the export command in it's default form will work without a local checkout and they export from the repository root. Argument 4) What if the repository has multiple root commits, similar to git's html and todo branches. Now, use git-archive and reference one of those commits. The working directory you're in now has no relevance at all to the commit your targeting - it need not even exist. The same problem exists of course if you are now in a directory that didn't exist in the past. Andy -- Dr Andy Parkins, M Eng (hons), MIET andyparkins@gmail.com