Show More
@@ -41,13 +41,30 class SvnPathNotFound(Exception): | |||||
41 | pass |
|
41 | pass | |
42 |
|
42 | |||
43 | def revsplit(rev): |
|
43 | def revsplit(rev): | |
44 |
"""Parse a revision string and return (uuid, path, revnum). |
|
44 | """Parse a revision string and return (uuid, path, revnum). | |
45 | url, revnum = rev.rsplit('@', 1) |
|
45 | >>> revsplit('svn:a2147622-4a9f-4db4-a8d3-13562ff547b2' | |
46 | parts = url.split('/', 1) |
|
46 | ... '/proj%20B/mytrunk/mytrunk@1') | |
|
47 | ('a2147622-4a9f-4db4-a8d3-13562ff547b2', '/proj%20B/mytrunk/mytrunk', 1) | |||
|
48 | >>> revsplit('svn:8af66a51-67f5-4354-b62c-98d67cc7be1d@1') | |||
|
49 | ('', '', 1) | |||
|
50 | >>> revsplit('@7') | |||
|
51 | ('', '', 7) | |||
|
52 | >>> revsplit('7') | |||
|
53 | ('', '', 0) | |||
|
54 | >>> revsplit('bad') | |||
|
55 | ('', '', 0) | |||
|
56 | """ | |||
|
57 | parts = rev.rsplit('@', 1) | |||
|
58 | revnum = 0 | |||
|
59 | if len(parts) > 1: | |||
|
60 | revnum = int(parts[1]) | |||
|
61 | parts = parts[0].split('/', 1) | |||
|
62 | uuid = '' | |||
47 | mod = '' |
|
63 | mod = '' | |
48 | if len(parts) > 1: |
|
64 | if len(parts) > 1 and parts[0].startswith('svn:'): | |
|
65 | uuid = parts[0][4:] | |||
49 | mod = '/' + parts[1] |
|
66 | mod = '/' + parts[1] | |
50 |
return |
|
67 | return uuid, mod, revnum | |
51 |
|
68 | |||
52 | def quote(s): |
|
69 | def quote(s): | |
53 | # As of svn 1.7, many svn calls expect "canonical" paths. In |
|
70 | # As of svn 1.7, many svn calls expect "canonical" paths. In |
@@ -103,3 +103,14 hg back to svn should do nothing | |||||
103 | scanning source... |
|
103 | scanning source... | |
104 | sorting... |
|
104 | sorting... | |
105 | converting... |
|
105 | converting... | |
|
106 | ||||
|
107 | verify which shamap format we are storing and must be able to handle | |||
|
108 | ||||
|
109 | $ cat svn-repo-hg/.hg/shamap | |||
|
110 | svn:????????-????-????-????-????????????@1 ???????????????????????????????????????? (glob) | |||
|
111 | svn:????????-????-????-????-????????????@2 ???????????????????????????????????????? (glob) | |||
|
112 | svn:????????-????-????-????-????????????@2 ???????????????????????????????????????? (glob) | |||
|
113 | $ cat svn-repo-wc/.svn/hg-shamap | |||
|
114 | ???????????????????????????????????????? 1 (glob) | |||
|
115 | ???????????????????????????????????????? svn:????????-????-????-????-????????????@2 (glob) | |||
|
116 | ???????????????????????????????????????? svn:????????-????-????-????-????????????@2 (glob) |
@@ -27,3 +27,4 testmod('mercurial.util') | |||||
27 | testmod('mercurial.util', testtarget='platform') |
|
27 | testmod('mercurial.util', testtarget='platform') | |
28 | testmod('hgext.convert.cvsps') |
|
28 | testmod('hgext.convert.cvsps') | |
29 | testmod('hgext.convert.filemap') |
|
29 | testmod('hgext.convert.filemap') | |
|
30 | testmod('hgext.convert.subversion') |
General Comments 0
You need to be logged in to leave comments.
Login now