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 for hg 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
Edit
Report