Mercurial > hg
changeset 25698:307370c2dda2
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.
author | Durham Goode <durham@fb.com> |
---|---|
date | Mon, 29 Jun 2015 17:19:18 -0700 |
parents | 1538e72209fd |
children | 5c97a4ecbdd4 |
files | hgext/convert/git.py tests/test-convert-git.t |
diffstat | 2 files changed, 28 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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