diff --git a/hgext/convert/bzr.py b/hgext/convert/bzr.py --- a/hgext/convert/bzr.py +++ b/hgext/convert/bzr.py @@ -110,8 +110,7 @@ class bzr_source(converter_source): self._parentids[version] = parents return commit(parents=parents, - # bzr uses 1 second timezone precision - date='%d %d' % (rev.timestamp, rev.timezone / 3600), + date='%d %d' % (rev.timestamp, -rev.timezone), author=self.recode(rev.committer), # bzr returns bytestrings or unicode, depending on the content desc=self.recode(rev.message), diff --git a/tests/test-convert-bzr b/tests/test-convert-bzr --- a/tests/test-convert-bzr +++ b/tests/test-convert-bzr @@ -33,6 +33,26 @@ exclude a EOF hg convert --filemap filemap source source-filemap-hg hg -R source-filemap-hg manifest -r tip + +# extract timestamps that look just like hg's {date|isodate}: +# yyyy-mm-dd HH:MM zzzz (no seconds!) +echo "% compare timestamps" +cd source +bzr log | \ + awk -F'[ :]' '$1 == "timestamp" { printf "%s %s:%s %s\n", $4, $5, $6, $8 }' \ + > ../bzr-timestamps +cd .. + +hg -R source-hg log --template "{date|isodate}\n" > hg-timestamps +if diff -q bzr-timestamps hg-timestamps ; then + echo "good: hg timestamps match bzr timestamps" +else + echo "fail: bzr timestamps are:" + cat bzr-timestamps + echo "but hg timestamps are:" + cat hg-timestamps +fi + cd .. echo % merge diff --git a/tests/test-convert-bzr.out b/tests/test-convert-bzr.out --- a/tests/test-convert-bzr.out +++ b/tests/test-convert-bzr.out @@ -35,6 +35,8 @@ 0 rename a into b, create a, rename c in b d f +% compare timestamps +good: hg timestamps match bzr timestamps % merge initializing destination source-hg repository scanning source...