# HG changeset patch # User Durham Goode # Date 1435623558 25200 # Node ID 307370c2dda2bbad150d93aaf1190d12e5010b1d # Parent 1538e72209fddbf88148de23669e55969d4bd8bc convert: handle .gitmodules with non-tab whitespaces The old implementation assumed .gitmodules file lines always began with tabs. It can be any whitespace, so lets trim the lines appropriately. diff -r 1538e72209fd -r 307370c2dda2 hgext/convert/git.py --- a/hgext/convert/git.py Mon Jun 29 13:39:05 2015 -0700 +++ b/hgext/convert/git.py Mon Jun 29 17:19:18 2015 -0700 @@ -174,8 +174,9 @@ """ self.submodules = [] c = config.config() - # Each item in .gitmodules starts with \t that cant be parsed - c.parse('.gitmodules', content.replace('\t','')) + # Each item in .gitmodules starts with whitespace that cant be parsed + c.parse('.gitmodules', '\n'.join(line.strip() for line in + content.split('\n'))) for sec in c.sections(): s = c[sec] if 'url' in s and 'path' in s: diff -r 1538e72209fd -r 307370c2dda2 tests/test-convert-git.t --- a/tests/test-convert-git.t Mon Jun 29 13:39:05 2015 -0700 +++ b/tests/test-convert-git.t Mon Jun 29 17:19:18 2015 -0700 @@ -457,6 +457,31 @@ $ git init-db >/dev/null 2>/dev/null $ git submodule add ${BASE} >/dev/null 2>/dev/null $ commit -a -m 'addsubmodule' >/dev/null 2>/dev/null + +test non-tab whitespace .gitmodules + + $ cat >> .gitmodules < [submodule "git-repo5"] + > path = git-repo5 + > url = $TESTTMP/git-repo5 + > EOF + $ git commit -a -m "weird white space submodule" + [master *] weird white space submodule (glob) + Author: nottest + 1 file changed, 3 insertions(+) + $ cd .. + $ hg convert git-repo6 hg-repo6 + initializing destination hg-repo6 repository + scanning source... + sorting... + converting... + 1 addsubmodule + 0 weird white space submodule + updating bookmarks + + $ rm -rf hg-repo6 + $ cd git-repo6 + $ git reset --hard 'HEAD^' > /dev/null $ cd .. test invalid splicemap1