I have a project under version control, say, in /project
, and .hgignore
located at /project/.hgignore
. Its syntax seems correct, but the problem is this file is completely ignored for certain users while still parsed for the others.
Say, running
su -l dipsy -c 'cd /project; hg status'
shows correct results with proper files ignored, while
su -l laalaa -c 'cd /project; hg status'
also outputs files listed in /project/.hgignore
.
What I checked already:
~/.hgrc
files are identical for both users, so are outputs forhg showconfig
.- Both users can read
/project/.hgignore
and write to that.
What am I missing?
(Just in case: Debian Lenny, Mercurial 1.6.3)
// Sorry if usernames seem stupid, they are not real (:
-- added 2010-11-26 --
PS. Is there any way to launch hg and get the debug output on processing .hgignore
-s? hg --debug status
and hg status --debug
do not print anything sensible.
-- added 2010-11026 --
Debugging hg status
(results vary):
# su -l dipsy -c 'cd /project; strace hg status 2>&1 >/dev/null | grep hgignore'
open("/project/.hgignore", O_RDONLY|O_LARGEFILE) = 4
fstatat64(4, ".hgignore", {st_mode=S_IFREG|0664, st_size=214, ...}, AT_SYMLINK_NOFOLLOW) = 0
write(1, "M .hgignore\nM foo/bar/baz"..., 4096) = 4096
# su -l laalaa -c 'cd /project; strace hg status 2>&1 >/dev/null | grep hgignore'
write(1, "M .hgignore\nM foo/bar/baz"..., 4096) = 4096
Debugging hg status --ignore
(results are the same):
# su -l dipsy -c 'cd /project; strace hg status --ignore 2>&1 >/dev/null | grep hgignore'
open("/project/.hgignore", O_RDONLY|O_LARGEFILE) = 3
fstatat64(3, ".hgignore", {st_mode=S_IFREG|0664, st_size=214, ...}, AT_SYMLINK_NOFOLLOW) = 0
# su -l laalaa -c 'cd /project; strace hg status --ignore 2>&1 >/dev/null | grep hgignore'
open("/project/.hgignore", O_RDONLY|O_LARGEFILE) = 3
fstatat64(3, ".hgignore", {st_mode=S_IFREG|0664, st_size=214, ...}, AT_SYMLINK_NOFOLLOW) = 0
So, /project/.hgignore
is read when running hg status --ignore
and skipped if running just hg status
. WTF?
hg clone /repo /newrepo; mv /repo/.hg /repo/.hg.bak; cp -R /newrepo/.hg /repo/.hg
. No need to pull/push indeed. – Cartridge