Bug Report: Creating a hardlink to any of the file in git repo cause the source file to show up in git commit message editor under "Changes not staged for commit" section.

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

 



Creating a hardlink to any of the file in git repo cause the source file to show up in git commit message editor under "Changes not staged for commit"
section.

Reproduced on:
Ubuntu 10.04, Gentoo, FreeBSD
Git version: 1.7.6

Bug has been observed by atleast 3 people.

Follow these steps to reproduce:

# create test repo
cd /tmp
mkdir -p test-repo/repo
cd test-repo/repo
git init
git config user.name "Foo"
git config user.email "foo@xxxxxxxxxxx"

# put some files in the repo
touch FILE1 FILE2 FILE3 FILE4 FILE5
git add -A
git commit -m "initial commit"

# create git hook that hardlink FILE2 and FILE3 and remove the hardlinks
# right then and there
echo "ln -vf FILE2 ../HARDLINK_TO_FILE2" >| .git/hooks/pre-commit
echo "rm -vf ../HARDLINK_TO_FILE2" >> .git/hooks/pre-commit
echo "ln -vf FILE3 ../HARDLINK_TO_FILE3" >> .git/hooks/pre-commit
echo "rm -vf ../HARDLINK_TO_FILE3" >> .git/hooks/pre-commit

# make pre-commit executable
chmod u+x .git/hooks/pre-commit

# modify FILE1
echo "hello world" >> FILE1

# run git status
git status
-------------------------------------------------------------------------------
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   FILE1
#
no changes added to commit (use "git add" and/or "git commit -a")
-------------------------------------------------------------------------------

# try commit using nano as commit editor and without usin -a flag
VISUAL=nano git commit FILE1

# Despite the fact that they are modified FILE2 and FILE3 will show in the
# commit message, under "Changes not staged for commit" section
# like so:

--------------------------------------------------------------------------------
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Explicit paths specified without -i nor -o; assuming --only paths...
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   FILE1
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   FILE2
#       modified:   FILE3
#
--------------------------------------------------------------------------------


In case anyone interested, tor me this happens when I do a python EGG build
which hardlinks files in order to build.


-- Michael
--
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


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