[Bug 5818] New: Abort: path 'lib/app.py' traverses symbolic link 'lib' on ArchLinux

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Thu Mar 15 00:54:08 UTC 2018


https://bz.mercurial-scm.org/show_bug.cgi?id=5818

            Bug ID: 5818
           Summary: Abort: path 'lib/app.py' traverses symbolic link 'lib'
                    on ArchLinux
           Product: Mercurial
           Version: 4.5.2
          Hardware: PC
                OS: Linux
            Status: UNCONFIRMED
          Severity: bug
          Priority: wish
         Component: Mercurial
          Assignee: bugzilla at mercurial-scm.org
          Reporter: alain.leufroy at gmail.com
                CC: mercurial-devel at mercurial-scm.org

On ArchLinux (and maybe others) `/lib` is a symbolic link.

This breaks mercurial when the repository contains a folder named `lib` in the
repository root.

Here how you can reproduce the bug:

cd /tmp

# !!!!!!!!!! clean up things for the test !!!!!!!!!!!!!!!!
rm -r lib lib_ repo

# Create a symbolic link that will cause troubles
mkdir lib_
ln -s lib_ lib

# Create a repository with a similar structure than /tmp/lib → tmp/lib
# In my case, I just have a directory named `lib`.
hg init repo
cd repo
mkdir -p tmp/lib
touch tmp/lib/a
hg add tmp/lib/a
hg ci -m 'a'

# Prepare something to rebase
touch tmp/lib/b
hg add tmp/lib/b
hg ci -m 'b'
hg up .^
touch tmp/lib/c
hg add tmp/lib/c
hg ci -m 'c'

# The following fails with
# "abort: path 'tmp/lib/b' traverses symbolic link 'tmp/lib'"
# because of matchmod.match('/', '', [path + '/'], default=b'relpath')
# in mercurial/context.py(2143)

hg rebase -s 1 -d .

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list