Mercurial > hg-git
changeset 119:70381c36c113
dulwich: initialise ctree in each iteration, fixes issue16.
author | Dmitriy Taychenachev <dimichxp@gmail.com> |
---|---|
date | Tue, 19 May 2009 17:17:38 +0900 |
parents | b3be536e3f50 |
children | 35ad13185e60 |
files | dulwich/repo.py tests/test-tree-decomposition tests/test-tree-decomposition.out |
diffstat | 3 files changed, 74 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/dulwich/repo.py Mon May 11 16:03:57 2009 -0700 +++ b/dulwich/repo.py Tue May 19 17:17:38 2009 +0900 @@ -424,7 +424,6 @@ basefiles = set() changes = list() csha = None - ctree = None cmode = None if basetree: for (bmode, bname, bsha) in basetree.entries(): @@ -438,6 +437,7 @@ if isinstance (bobj, Blob): changes.append (prefix + bname) elif isinstance(bobj, Tree): + ctree = None if csha: ctree = self.get_object(csha) changes.extend(filenames(bobj,
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-tree-decomposition Tue May 19 17:17:38 2009 +0900 @@ -0,0 +1,55 @@ +#!/bin/sh + +# Fails for some reason, need to investigate +# "$TESTDIR/hghave" git || exit 80 + +# bail early if the user is already running git-daemon +echo hi | nc localhost 9418 && exit 80 + +echo "[extensions]" >> $HGRCPATH +echo "hggit=$(echo $(dirname $(dirname $0)))" >> $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 gitrepo +cd gitrepo +git init | python -c "import sys; print sys.stdin.read().replace('$(dirname $(pwd))/', '')" + +mkdir d1 +touch d1/f1 d1/f2 +git add d1/f1 d1/f2 +git commit -m initial + +mkdir d2 +git mv d1/f2 d2/f2 +git commit -m 'rename' + +# dulwich does not presently support local git repos, workaround +cd .. +git daemon --base-path="$(pwd)"\ + --listen=localhost\ + --export-all\ + --pid-file=gitdaemon.pid \ + --detach --reuseaddr + +hg gclone git://localhost/gitrepo hgrepo +cd hgrepo +hg log -r tip --template 'adds: {file_adds}\ndels: {file_dels}\n' + +cd .. +kill `cat gitdaemon.pid`
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-tree-decomposition.out Tue May 19 17:17:38 2009 +0900 @@ -0,0 +1,18 @@ +Initialized empty Git repository in gitrepo/.git/ + +[master (root-commit) 60fd61f] initial + 0 files changed, 0 insertions(+), 0 deletions(-) + create mode 100644 d1/f1 + create mode 100644 d1/f2 +[master a2e8665] rename + 1 files changed, 0 insertions(+), 0 deletions(-) + rename {d1 => d2}/f2 (100%) +fetching from : origin +exporting git objects +Counting objects: 8, done. +Compressing objects: 25% (1/4) Compressing objects: 50% (2/4) Compressing objects: 75% (3/4) Compressing objects: 100% (4/4) Compressing objects: 100% (4/4), done. +Total 8 (delta 0), reused 0 (delta 0) +importing Git objects into Hg +2 files updated, 0 files merged, 0 files removed, 0 files unresolved +adds: d2/f2 +dels: d1/f2