Mercurial > hg
changeset 23462:afa3fbbcabd3
add: use lexists so that broken symbolic links are added
This restores the add behavior prior to d8cdd46f426d and matches the
behavior of addremove.
author | John Coomes <john.coomes@oracle.com> |
---|---|
date | Wed, 03 Dec 2014 14:33:29 -0800 |
parents | ffef6d503ab2 |
children | bb0143e12f35 |
files | mercurial/cmdutil.py tests/test-symlinks.t |
diffstat | 2 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Tue Dec 02 05:12:59 2014 +0100 +++ b/mercurial/cmdutil.py Wed Dec 03 14:33:29 2014 -0800 @@ -1984,7 +1984,7 @@ cca = scmutil.casecollisionauditor(ui, abort, repo.dirstate) for f in wctx.walk(match): exact = match.exact(f) - if exact or not explicitonly and f not in wctx and repo.wvfs.exists(f): + if exact or not explicitonly and f not in wctx and repo.wvfs.lexists(f): if cca: cca(f) names.append(f)
--- a/tests/test-symlinks.t Tue Dec 02 05:12:59 2014 +0100 +++ b/tests/test-symlinks.t Wed Dec 03 14:33:29 2014 -0800 @@ -3,12 +3,18 @@ == tests added in 0.7 == $ hg init test-symlinks-0.7; cd test-symlinks-0.7; - $ touch foo; ln -s foo bar; + $ touch foo; ln -s foo bar; ln -s nonexistent baz + +import with add and addremove -- symlink walking should _not_ screwup. -import with addremove -- symlink walking should _not_ screwup. - + $ hg add + adding bar + adding baz + adding foo + $ hg forget bar baz foo $ hg addremove adding bar + adding baz adding foo commit -- the symlink should _not_ appear added to dir state