diff mercurial/dirstate.py @ 23629:a04c7b74b3d5

ignore: resolve ignore files relative to repo root (issue4473) (BC) Previously these would be considered to be relative to the current working directory. That behavior is both undocumented and doesn't really make sense. There are two reasonable options for how to resolve relative paths: - relative to the repo root - relative to the config file Resolving these files relative to the repo root matches existing behavior with hooks. An earlier discussion about this is available at http://mercurial.markmail.org/thread/tvu7yhzsiywgkjzl. Thanks to Isaac Jurado <diptongo@gmail.com> for the initial patchset that spurred the discussion.
author Siddharth Agarwal <sid0@fb.com>
date Tue, 16 Dec 2014 14:34:53 -0800
parents ee5a4ed4c8b1
children 9dd442148301
line wrap: on
line diff
--- a/mercurial/dirstate.py	Wed Dec 17 18:53:38 2014 -0800
+++ b/mercurial/dirstate.py	Tue Dec 16 14:34:53 2014 -0800
@@ -130,7 +130,9 @@
         files = [self._join('.hgignore')]
         for name, path in self._ui.configitems("ui"):
             if name == 'ignore' or name.startswith('ignore.'):
-                files.append(util.expandpath(path))
+                # we need to use os.path.join here rather than self._join
+                # because path is arbitrary and user-specified
+                files.append(os.path.join(self._rootdir, util.expandpath(path)))
         return ignore.ignore(self._root, files, self._ui.warn)
 
     @propertycache