@@ -54,10 +54,12 @@
2 2 test a
revision: 2
author: test
+ date: 1970-01-01T00:00:01.000000Z
msg: modify a file
M /a
revision: 1
author: test
+ date: 1970-01-01T00:00:00.000000Z
msg: add a file
A /a
A /d1
@@ -95,6 +97,7 @@
3 3 test b
revision: 3
author: test
+ date: 1970-01-01T00:00:02.000000Z
msg: rename a file
D /a
A /b (from /a@2)
@@ -131,6 +134,7 @@
4 4 test c
revision: 4
author: test
+ date: 1970-01-01T00:00:03.000000Z
msg: copy a file
A /c (from /b@3)
$ ls a a-hg-wc
@@ -167,6 +171,7 @@
5 5 test .
revision: 5
author: test
+ date: 1970-01-01T00:00:04.000000Z
msg: remove a file
D /b
$ ls a a-hg-wc
@@ -209,6 +214,7 @@
6 6 test c
revision: 6
author: test
+ date: 1970-01-01T00:00:05.000000Z
msg: make a file executable
M /c
#if execbit
@@ -247,6 +253,7 @@
8 8 test newlink
revision: 8
author: test
+ date: 1970-01-01T00:00:00.000000Z
msg: move symlink
D /link
A /newlink (from /link@7)
@@ -278,6 +285,7 @@
7 7 test f
revision: 7
author: test
+ date: 1970-01-01T00:00:00.000000Z
msg: f
D /c
A /d
@@ -315,6 +323,7 @@
1 1 test d1/a
revision: 1
author: test
+ date: 1970-01-01T00:00:00.000000Z
msg: add executable file in new directory
A /d1
A /d1/a
@@ -343,6 +352,7 @@
2 2 test d2/a
revision: 2
author: test
+ date: 1970-01-01T00:00:01.000000Z
msg: copy file to new directory
A /d2
A /d2/a (from /d1/a@1)
@@ -416,21 +426,25 @@
4 4 test right-2
revision: 4
author: test
+ date: 1970-01-01T00:00:05.000000Z
msg: merge
A /right-1
A /right-2
revision: 3
author: test
+ date: 1970-01-01T00:00:02.000000Z
msg: left-2
M /b
A /left-2
revision: 2
author: test
+ date: 1970-01-01T00:00:01.000000Z
msg: left-1
M /b
A /left-1
revision: 1
author: test
+ date: 1970-01-01T00:00:00.000000Z
msg: base
A /b
@@ -459,10 +473,12 @@
2 2 test .hgtags
revision: 2
author: test
+ date: 1970-01-01T00:00:01.000000Z
msg: Tagged as v1.0
A /.hgtags
revision: 1
author: test
+ date: 1970-01-01T00:00:00.000000Z
msg: Add file a
A /a
$ rm -rf a a-hg a-hg-wc
@@ -494,10 +510,12 @@
2 2 test exec
revision: 2
author: test
+ date: 1970-01-01T00:00:02.000000Z
msg: remove executable bit
M /exec
revision: 1
author: test
+ date: 1970-01-01T00:00:01.000000Z
msg: create executable
A /exec
$ test ! -x a-hg-wc/exec
@@ -540,10 +558,12 @@
2 2 test b
revision: 2
author: test
+ date: 1970-01-01T00:00:00.000000Z
msg: Another change
A /b
revision: 1
author: test
+ date: 1970-01-01T00:00:00.000000Z
msg: Some change
A /a
@@ -24,6 +24,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
>
@@ -15,6 +15,7 @@
e['revision'] = entry.getAttribute('revision')
e['author'] = xmltext(entry.getElementsByTagName('author')[0])
e['msg'] = xmltext(entry.getElementsByTagName('msg')[0])
+ e['date'] = xmltext(entry.getElementsByTagName('date')[0])
e['paths'] = []
paths = entry.getElementsByTagName('paths')
if paths:
@@ -42,7 +43,7 @@
except AttributeError:
fp = sys.stdout
for e in entries:
- for k in ('revision', 'author', 'msg'):
+ for k in ('revision', 'author', 'date', 'msg'):
fp.write(('%s: %s\n' % (k, e[k])).encode('utf-8'))
for path, action, fpath, frev in sorted(e['paths']):
frominfo = b''
@@ -1389,6 +1389,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
@@ -1636,6 +1637,9 @@
fp = os.fdopen(fd, 'wb')
fp.write(util.tonativeeol(commit.desc))
fp.close()
+ # Subverson always uses UTC to represent date and time
+ date = dateutil.parsedate(commit.date)
+ svndate = dateutil.datestr((date[0], 0), b'%Y-%m-%dT%H:%M:%S.000000Z')
try:
output = self.run0(
b'commit',
@@ -1667,6 +1671,14 @@
revprop=True,
revision=rev,
)
+ # The only way to set date and time for svn commit is to use propset after commit is done
+ self.run(
+ b'propset',
+ b'svn:date',
+ svndate,
+ revprop=True,
+ revision=rev,
+ )
for parent in parents:
self.addchild(parent, rev)
return self.revid(rev)