Bug: 'git ls-files' doesn't work on submodule in post-commit hook

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

 



Hey there,

I think I found a bug in git: I want to use 'git ls-files' onto a git submodule, called in a post-commit hook of main repository, which doesn’t work.
The same call in a post-checkout hook works perfectly.

Example setup to try it out, use a empty (temporary) folder:
--- snipp ---
mkdir git-submodulerepo
cd git-submodulerepo
git init
git config user.email "you@xxxxxxxxxxx"
git config user.name "Your Name"
echo "nothing" > submodule_file.txt
git add submodule_file.txt
git commit submodule_file.txt -m "Add my file"
cd ..
 
mkdir git-repo
cd git-repo
git init
git config user.email "you@xxxxxxxxxxx"
git config user.name "Your Name"
echo "nothing" > rubbish.txt
git add rubbish.txt
git commit rubbish.txt -m "Add my rubbish"
 
git submodule add ../git-submodulerepo
 
printf '#!/bin/bash\ncd git-submodulerepo\necho Git says my files are:\ngit ls-files\necho ---------------\necho Filesystem says my files are:\nls -w1\necho ---------------\n' > .git/hooks/post-commit
chmod +x .git/hooks/post-commit
cp .git/hooks/post-commit .git/hooks/post-checkout
chmod +x .git/hooks/post-checkout
--- snapp ---


So 'git ls-files' call in post-checkout hook works:
$ git checkout HEAD
A       .gitmodules
A       git-submodulerepo
Git says my files are:
submodule_file.txt
---------------
Filesystem says my files are:
submodule_file.txt
---------------
 
A 'git ls-files' in post-commit doesn’t work:
$  echo nothing >> rubbish.txt && git commit rubbish.txt -m "Add just rubbish"
Git says my files are:
---------------
Filesystem says my files are:
submodule_file.txt
---------------
[master e05efb1] just rubbish
1 file changed, 1 insertion(+)
 

This was tested using git version 2.25.0.windows.1
With git version 2.21.0 (cygwin) git ls-files outputs "fatal: .git/index: index file open failed: Not a directory"

I didn’t test other hooks.

Calling "git ls-files" in hook for your main repository (and not a submodule) works for both cases.
I checked for basic things (I'm in submodule directory in both hooks), so I guess this is a bug in git.

Any questions?
Thanks in advance!

Stefan



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

  Powered by Linux