GIT_ONE_FILESYSTEM: flip the default to stop at filesystem boundaries
authorJunio C Hamano <redacted>
Sun, 4 Apr 2010 17:33:53 +0000 (10:33 -0700)
committerJunio C Hamano <redacted>
Sun, 4 Apr 2010 17:33:53 +0000 (10:33 -0700)
commite640551773c9730a47779dfc93155feb092c8e3c
tree798c74407f1e4247dcce2a59c6fad7dd0bc5b171
parent8030e44215fe8f34edd57d711a35f2f0f97a0423
GIT_ONE_FILESYSTEM: flip the default to stop at filesystem boundaries

Regarding the new environment variable, Linus Torvalds
<redacted> writes on Tue, 30 Mar 2010 in
<redacted>:

    I suspect that it is _very_ unusual to have a source repo that crosses
    multiple filesystems, and the original reason for this patch-series
    seems to me to be likely to be more common than that multi-fs case. So
    having the logic go the other way would seem to match the common case,
    no?

The "crossing filesystem boundary" condition is checked by comparing
st_dev field in the result from stat(2).  This is slightly worrysome if
non-POSIX ports return different values in the field even for directories
in the same work tree extracted to the same "filesystem".  Erik Faye-Lund
confirms that in the msysgit port st_dev is 0, so this should be safe, as
"even Windows is safe" ;-)

This will affect those who use /.git to cram /etc and /home/me in the same
repostiory, /home is mounted from non-root filesystem, and a git operation
is done from inside /home/me/src.  But that is such a corner case we don't
want to give preference over helping people who will benefit from having
this default so that they do not have to suffer from slow automounters.

Signed-off-by: Junio C Hamano <redacted>
Documentation/git.txt
setup.c
git clone https://git.99rst.org/PROJECT