[PATCH 2 of 8] ignore: refactor syntax concatenation

Durham Goode durham at fb.com
Wed May 13 10:13:16 CDT 2015


# HG changeset patch
# User Durham Goode <durham at fb.com>
# Date 1431057646 25200
#      Thu May 07 21:00:46 2015 -0700
# Node ID 1236d101b01d251715016df1b0ba53d3a37edfb8
# Parent  7bfb75835fb87a5e906007144b04b7d735ddfdfa
ignore: refactor syntax concatenation

This refactors the syntax+rule concatenation logic to be more separated. It
determines the syntax and the rule separately and then puts them back together.
This will help in a later patch when we want to process just the rule before it
gets concatenated.

diff --git a/mercurial/ignore.py b/mercurial/ignore.py
--- a/mercurial/ignore.py
+++ b/mercurial/ignore.py
@@ -40,15 +40,18 @@ def ignorepats(lines):
             except KeyError:
                 warnings.append(_("ignoring invalid syntax '%s'") % s)
             continue
-        pat = syntax + line
+
+        linesyntax = syntax
         for s, rels in syntaxes.iteritems():
             if line.startswith(rels):
-                pat = line
+                linesyntax = rels
+                line = line[len(rels):]
                 break
             elif line.startswith(s+':'):
-                pat = rels + line[len(s) + 1:]
+                linesyntax = rels
+                line = line[len(s) + 1:]
                 break
-        patterns.append(pat)
+        patterns.append(linesyntax + line)
 
     return patterns, warnings
 


More information about the Mercurial-devel mailing list