# HG changeset patch # User Matt Mackall # Date 2010-01-29 05:13:10 # Node ID cade47dcac2de86bf3aae345dd6547c1715075c1 # Parent ea7a14ca118a49bcfa52afaad4c49154a0cefa3b # Parent 44c923eeb81d64d7a00d6d2271c86821e70c95f0 Merge with stable diff --git a/mercurial/config.py b/mercurial/config.py --- a/mercurial/config.py +++ b/mercurial/config.py @@ -73,10 +73,10 @@ class config(object): def parse(self, src, data, sections=None, remap=None, include=None): sectionre = re.compile(r'\[([^\[]+)\]') itemre = re.compile(r'([^=\s][^=]*?)\s*=\s*(.*\S|)') - contre = re.compile(r'\s+(\S.*\S)') + contre = re.compile(r'\s+(\S|\S.*\S)\s*$') emptyre = re.compile(r'(;|#|\s*$)') unsetre = re.compile(r'%unset\s+(\S+)') - includere = re.compile(r'%include\s+(\S.*\S)') + includere = re.compile(r'%include\s+(\S|\S.*\S)\s*$') section = "" item = None line = 0 diff --git a/mercurial/copies.py b/mercurial/copies.py --- a/mercurial/copies.py +++ b/mercurial/copies.py @@ -154,7 +154,7 @@ def copies(repo, c1, c2, ca, checkdirs=F break # no merge needed, quit early c2 = ctx(of, m2[of]) cr = related(oc, c2, ca.rev()) - if of == f or of == c2.path(): # non-divergent + if cr and (cr.path() == f or cr.path == c2.path()): # non-divergent copy[f] = of of = None break diff --git a/tests/test-hgrc b/tests/test-hgrc --- a/tests/test-hgrc +++ b/tests/test-hgrc @@ -19,5 +19,9 @@ echo '[foo]' > $HGRCPATH echo ' x = y' >> $HGRCPATH hg version 2>&1 | sed -e "s|$HGRCPATH|\$HGRCPATH|" +python -c "print '[foo]\nbar = a\n b\n c \n de\n fg \nbaz = bif cb \n'" \ + > $HGRCPATH +hg showconfig foo + echo '%include /no-such-file' > $HGRCPATH hg version 2>&1 | sed -e "s|$HGRCPATH|\$HGRCPATH|" diff --git a/tests/test-hgrc.out b/tests/test-hgrc.out --- a/tests/test-hgrc.out +++ b/tests/test-hgrc.out @@ -7,4 +7,6 @@ default = .../foo%bar bundle.mainreporoot=.../foobar paths.default=.../foo%bar hg: config error at $HGRCPATH:2: ' x = y' +foo.bar=a\nb\nc\nde\nfg +foo.baz=bif cb hg: config error at $HGRCPATH:1: cannot include /no-such-file (No such file or directory)