Re: git ls-files -o under .git/ prints all repository files

From: Alex Riesen <raa.lkml@gmail.com>
Date: 2007-01-19 21:38:04
On 1/19/07, Simon 'corecode' Schubert <corecode@fs.ei.tum.de> wrote:
> Alex Riesen wrote:
> >> >> i would claim .git to be off limits and unrelated to the working dir
> >> >> (file-wise).  if you want to list files there, do a find . or so.
> >> >>  After all you wouldn't expect cd /usr && git-ls-files -o work there
> >> >> unless you have a /.git or /usr/.git, right?
> >> > Right, just see no practical point changing ls-file for that.
> >> right.  .git should be forbidden in higher layers already.
> >
> > That's where I disagree. git-clean shouldn't clean it, but
> > git-ls-files will do no harm to the directory
>
> of course git-ls-files will do no harm.  but "fixing" every consumer of
> git-ls-files seems wrong to me.

There are not that many users of ls-files, which could harm a repo.
Besides of git-clean, cannot think of any.

> okay, what do I expect when doing cd .git && git-ls-files?
>  Either listing *all files* in the repo (like git-ls-files from the
> repo root) or no files at all, or failure (".git is private").

List nothing. That's what it does. It could return non-0
(which it does not), but aside from that,... looks very sensible.

> NAME
>        git-ls-files - Information about files in the index/working directory
>
> That's pretty clear to me.  Working directory.  .git is *not* part of the working directory.
>

Alright, it is not. I can even imagine someone having a script
containing "git-ls-files -o| rm -f; git reset --hard" to get clean working dir,
and starting the script in .git one day. Make "-o" list nothing as well?

> > Works. And the path contains .git component. And git-clean
> > here is ok. The test should check if we are in $GIT_DIR
> > and probably $GIT_DIR/{objects,refs,logs}, not just below
> > .git (with ".git" anywhere in pwd, which the mercurial
> > example seem to suggest).
>
> No, the path does *not* contain a .git component.  You just
> committed to the root of the *inside* repo.

"$OLDPWD/.git/hooks". It does contain ".git" :)
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Sat Jan 20 00:00:29 2007

This archive was generated by hypermail 2.1.8 : 2007-01-20 00:02:12 EST