diff mercurial/sparse.py @ 33683:7dcb517122f9

sparse: properly error out when absolute paths are used Current logic is misleading (it says it drops only absolute paths, but it actually drops all of them), not cross-platform (does not support Windows) and IMO just wrong (as it should just error out if absolute paths are given). This commit fixes it.
author Kostia Balytskyi <ikostia@fb.com>
date Wed, 02 Aug 2017 15:05:21 -0700
parents 22371eabb3b1
children e1c56486d1aa
line wrap: on
line diff
--- a/mercurial/sparse.py	Thu Aug 03 23:02:32 2017 +0900
+++ b/mercurial/sparse.py	Wed Aug 02 15:05:21 2017 -0700
@@ -636,10 +636,10 @@
             newexclude = set(oldexclude)
             newprofiles = set(oldprofiles)
 
-        if any(pat.startswith('/') for pat in pats):
-            repo.ui.warn(_('warning: paths cannot start with /, ignoring: %s\n')
-                         % ([pat for pat in pats if pat.startswith('/')]))
-        elif include:
+        if any(os.path.isabs(pat) for pat in pats):
+            raise error.Abort(_('paths cannot be absolute'))
+
+        if include:
             newinclude.update(pats)
         elif exclude:
             newexclude.update(pats)