From patchwork Fri Jul 12 15:52:54 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: hgconvert: preserve revision timestamps from hg to svn From: Florent Angebault X-Patchwork-Id: 1845 Message-Id: <5834870243cb49bb1c31.1373644374@tanuki.etai.fr> To: Date: Fri, 12 Jul 2013 17:52:54 +0200 # HG changeset patch # User Florent Angebault # Date 1373641599 -7200 # Fri Jul 12 17:06:39 2013 +0200 # Node ID 5834870243cb49bb1c31554bced1fd5b09b4850c # Parent 41c4bdd1d585a9196bd6c668fd9fce5e67a1028a hgconvert: preserve revision timestamps from hg to svn diff --git a/hgext/convert/subversion.py b/hgext/convert/subversion.py --- a/hgext/convert/subversion.py +++ b/hgext/convert/subversion.py @@ -2,7 +2,7 @@ # # Copyright(C) 2007 Daniel Holth et al -import os, re, sys, tempfile, urllib, urllib2, xml.dom.minidom +import os, re, sys, tempfile, urllib, urllib2, xml.dom.minidom, dateutil.parser import cPickle as pickle from mercurial import strutil, scmutil, util, encoding @@ -992,6 +992,7 @@ ACTION="$5" if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi +if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:date" ]; then exit 0; fi if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-branch" ]; then exit 0; fi if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-rev" ]; then exit 0; fi @@ -1242,6 +1243,11 @@ if commit.branch and commit.branch != 'default': self.run('propset', 'hg:convert-branch', commit.branch, revprop=True, revision=rev) + if commit.date: + date = dateutil.parser.parse(commit.date) + self.run('propset', 'svn:date', + date.strftime('%Y-%m-%dT%H:%M:%S.%fZ'), + revprop=True, revision=rev) for parent in parents: self.addchild(parent, rev) return self.revid(rev)