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.
--- 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:
--- 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 <<EOF
+ > [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 <test@example.org>
+ 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