Before this patch, when rebasing a file called "foo/bar", we would
check e.g. if "/foo" (i.e. rooted at the file system root) was a
symlink.
Details
- Reviewers
- None
- Group Reviewers
hg-reviewers - Commits
- rHG1c8c54cf9725: rebase: fix path auditing to audit path relative to repo root (issue5818)
Diff Detail
- Repository
- rHG Mercurial
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
Event Timeline
Before this patch, when rebasing a file called "foo/bar", we would check e.g. if "/foo" (i.e. rooted at the file system root) was a symlink. That's clearly not what we meant to do. I haven't added a test case because I don't know to test it.
This probably fixes the issue5818.
https://bz.mercurial-scm.org/show_bug.cgi?id=5818
- Test the other direction -- that this path from p2 isn't a directory
- # in p1 (test that p1 doesn't any paths matching path/*).
- match = matchmod.match('/', '', [path + '/'], default=b'relpath')
+ # in p1 (test that p1 doesn't have any paths matching path/*).
+ match = self.match(pats=[path + '/'], default=b'relpath')
'relpath' means relative to cwd. It should be default=b'path' or simply
scmutil.matchfiles().
Oh, I had not noticed that issue. I should be able to create a test case based on that. Thanks!
https://bz.mercurial-scm.org/show_bug.cgi?id=5818
- Test the other direction -- that this path from p2 isn't a directory
- # in p1 (test that p1 doesn't any paths matching path/*).
- match = matchmod.match('/', '', [path + '/'], default=b'relpath')
+ # in p1 (test that p1 doesn't have any paths matching path/*).
+ match = self.match(pats=[path + '/'], default=b'relpath')'relpath' means relative to cwd. It should be default=b'path'
Good point. I'll fix that.
or simply
scmutil.matchfiles().
I don't think that will work because we want to match files in <path>/** here, not <path> itself.