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

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

 



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.

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").

To add some facts to it:

GIT-LS-FILES(1)                                                GIT-LS-FILES(1)

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.


> I can imagine keeping hooks under git control.
> In this case path(pwd) does contain .git component
> (as in .hg example).

doesn't work either:

% cd .git/hooks
% git add *
fatal: unable to add .git/hooks/applypatch-msg to index

cd .git
git init
git add .
git commit

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.

Of course I don't say "refuse operation if there is .git in the path".  What I mean is, "refuse operation if there is $GIT_DIR in the path".  Maybe my example was not complete enough.  With mercurial, you can as well have a .hg in .hg.

cheers
 simon

--
Serve - BSD     +++  RENT this banner advert  +++    ASCII Ribbon   /"\
Work - Mac      +++  space for low €€€ NOW!1  +++      Campaign     \ /
Party Enjoy Relax   |   http://dragonflybsd.org      Against  HTML   \
Dude 2c 2 the max   !   http://golden-apple.biz       Mail + News   / \

Attachment: signature.asc
Description: OpenPGP digital signature


[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]