Mercurial > hg > hg-git
changeset 287:e08a22250fa9
Don't import git submodule files (we don't support them .. yet).
author | jeremy avnet <brainsik@saucelabs.com> |
---|---|
date | Tue, 23 Feb 2010 16:23:09 -0500 |
parents | 0661d5721ad7 |
children | efe9e6a9235f |
files | hggit/git_handler.py tests/test-git-submodules tests/test-git-submodules.out |
diffstat | 3 files changed, 123 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/hggit/git_handler.py +++ b/hggit/git_handler.py @@ -771,6 +771,21 @@ changes = self.git.object_store.tree_changes(btree, tree) files = {} for (oldfile, newfile), (oldmode, newmode), (oldsha, newsha) in changes: + # don't create new submodules + if newmode == 0160000: + if oldfile: + # become a regular delete + newfile, newmode = None, None + else: + continue + # so old submodules shoudn't exist + if oldmode == 0160000: + if newfile: + # become a regular add + oldfile, oldmode = None, None + else: + continue + if newfile is None: file = oldfile delete = True
new file mode 100755 --- /dev/null +++ b/tests/test-git-submodules @@ -0,0 +1,64 @@ +#!/bin/sh + +# Fails for some reason, need to investigate +# "$TESTDIR/hghave" git || exit 80 + +# bail if the user does not have dulwich +python -c 'import dulwich, dulwich.repo' || exit 80 + +# bail early if the user is already running git-daemon +echo hi | nc localhost 9418 2>/dev/null && exit 80 + +echo "[extensions]" >> $HGRCPATH +echo "hggit=$(echo $(dirname $(dirname $0)))/hggit" >> $HGRCPATH +echo 'hgext.graphlog =' >> $HGRCPATH +echo 'hgext.bookmarks =' >> $HGRCPATH + +GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME +GIT_AUTHOR_EMAIL='test@example.org'; export GIT_AUTHOR_EMAIL +GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0000"; export GIT_AUTHOR_DATE +GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; export GIT_COMMITTER_NAME +GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"; export GIT_COMMITTER_EMAIL +GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; export GIT_COMMITTER_DATE + +count=10 +commit() +{ + GIT_AUTHOR_DATE="2007-01-01 00:00:$count +0000" + GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" + git commit "$@" >/dev/null 2>/dev/null || echo "git commit error" + count=`expr $count + 1` +} + +mkdir gitrepo1 +cd gitrepo1 +git init | python -c "import sys; print sys.stdin.read().replace('$(dirname $(pwd))/', '')" +echo alpha > alpha +git add alpha +commit -m 'add alpha' +cd .. + +mkdir gitsubrepo +cd gitsubrepo +git init | python -c "import sys; print sys.stdin.read().replace('$(dirname $(pwd))/', '')" +echo beta > beta +git add beta +commit -m 'add beta' +cd .. + +mkdir gitrepo2 +cd gitrepo2 +git clone ../gitrepo1 . | python -c "import sys; print sys.stdin.read().replace('$(dirname $(pwd))/', '')" +git submodule add ../gitsubrepo subrepo | python -c "import sys; print sys.stdin.read().replace('$(dirname $(pwd))/', '')" +git commit -m 'add subrepo' +git rm --cached subrepo +git rm .gitmodules +git commit -m 'rm subrepo' +cd .. + +hg clone gitrepo2 hgrepo | grep -v '^updating' +cd hgrepo +hg log --graph + +echo % we should have some bookmarks +hg book
new file mode 100644 --- /dev/null +++ b/tests/test-git-submodules.out @@ -0,0 +1,44 @@ +Initialized empty Git repository in gitrepo1/.git/ + +Initialized empty Git repository in gitsubrepo/.git/ + +Initialized empty Git repository in gitrepo2/.git/ + +Initialized empty Git repository in gitrepo2/subrepo/.git/ + +[master e42b08b] add subrepo + 2 files changed, 4 insertions(+), 0 deletions(-) + create mode 100644 .gitmodules + create mode 160000 subrepo +rm 'subrepo' +rm '.gitmodules' +[master 7e4c934] rm subrepo + 2 files changed, 0 insertions(+), 4 deletions(-) + delete mode 100644 .gitmodules + delete mode 160000 subrepo +importing Hg objects into Git +Counting objects: 7, done. +Compressing objects: 20% (1/5) Compressing objects: 40% (2/5) Compressing objects: 60% (3/5) Compressing objects: 80% (4/5) Compressing objects: 100% (5/5) Compressing objects: 100% (5/5), done. +Total 7 (delta 1), reused 0 (delta 0) +importing Git objects into Hg +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +@ changeset: 2:954cdf1c8c82 +| tag: master +| tag: default/master +| tag: tip +| user: test <test@example.org> +| date: Mon Jan 01 00:00:11 2007 +0000 +| summary: rm subrepo +| +o changeset: 1:145121c71064 +| user: test <test@example.org> +| date: Mon Jan 01 00:00:11 2007 +0000 +| summary: add subrepo +| +o changeset: 0:3442585be8a6 + user: test <test@example.org> + date: Mon Jan 01 00:00:10 2007 +0000 + summary: add alpha + +% we should have some bookmarks + * master 2:954cdf1c8c82