[Bug 4621] New: Don't follow symlinks on windows
mercurial-bugs at selenic.com
mercurial-bugs at selenic.com
Fri Apr 24 07:30:40 UTC 2015
http://bz.selenic.com/show_bug.cgi?id=4621
Priority: normal
Bug ID: 4621
CC: mercurial-devel at selenic.com
Assignee: bugzilla at selenic.com
Summary: Don't follow symlinks on windows
Severity: bug
Classification: Unclassified
OS: Windows
Reporter: pesterev_da at skbkontur.ru
Hardware: PC
Status: UNCONFIRMED
Version: 3.3.3
Component: purge
Product: Mercurial
Purge is following directory symbolic links on windows and tries to remove
content of symlink, not symlink directory itself. Also if I have several
symlinks pointing to one directory and this symlinks are ignored by .hgignore
â purge crashes with error: "abort: '<dirName>/*.*'" and exit code is 255.
Expected behaivour: purge removes symlink to directory, not content of real
directory where symlinks points.
Command executed: hg purge --all
Steps to reproduce:
1) Create hg repository
2) Add directory MAIN and create some files inside it
3) Commit changes
4) Add two symlinks pointing to MAIN (command to create symlink is `mklink /D
SYMLINK1 MAIN`)
Here is how your repo must look at this moment:
\
-- MAIN
-- someFile1
-- someFile2
-- someFile3
-- SYMLINK1
-- SYMLINK2
And hg now thinks that you have added someFiles into SYMLINK1 and SYMLINK2.
5) Add into .hgignore lines with SYMLINK1/ and SYMLINK2/, so hg must track only
.hgignore file, files in symlink directories must not be commited.
6) Commit hgignore file
7) Now finally try to purge your repository â purge will remove content from
MAIN folder (but they are not ignored, stop it!) and probably crash.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Mercurial-devel
mailing list