Show More
@@ -120,12 +120,7 class convert_svn(converter_source): | |||||
120 | except IOError, e: |
|
120 | except IOError, e: | |
121 | pass |
|
121 | pass | |
122 |
|
122 | |||
123 | if not latest: |
|
123 | self.last_changed = self.latest(self.module, latest) | |
124 | latest = svn.ra.get_latest_revnum(self.ra) |
|
|||
125 | dirent = svn.ra.stat(self.ra, self.module, latest) |
|
|||
126 | if not dirent: |
|
|||
127 | raise util.Abort('module %s not found in revision %d' % (self.module, latest)) |
|
|||
128 | self.last_changed = dirent.created_rev |
|
|||
129 |
|
124 | |||
130 | self.head = self.rev(self.last_changed) |
|
125 | self.head = self.rev(self.last_changed) | |
131 |
|
126 | |||
@@ -135,6 +130,22 class convert_svn(converter_source): | |||||
135 | def revnum(self, rev): |
|
130 | def revnum(self, rev): | |
136 | return int(rev.split('@')[-1]) |
|
131 | return int(rev.split('@')[-1]) | |
137 |
|
132 | |||
|
133 | def latest(self, path, revnum, stop=0): | |||
|
134 | 'find the latest revision affecting path, up to stop' | |||
|
135 | if not stop: | |||
|
136 | stop = svn.ra.get_latest_revnum(self.ra) | |||
|
137 | try: | |||
|
138 | self.reparent('') | |||
|
139 | dirent = svn.ra.stat(self.ra, path.strip('/'), stop) | |||
|
140 | self.reparent(self.module) | |||
|
141 | except SubversionException: | |||
|
142 | dirent = None | |||
|
143 | if not dirent: | |||
|
144 | raise util.Abort('module %s not found up to revision %d' \ | |||
|
145 | % (self.module, stop)) | |||
|
146 | ||||
|
147 | return dirent.created_rev | |||
|
148 | ||||
138 | def get_blacklist(self): |
|
149 | def get_blacklist(self): | |
139 | """Avoid certain revision numbers. |
|
150 | """Avoid certain revision numbers. | |
140 | It is not uncommon for two nearby revisions to cancel each other |
|
151 | It is not uncommon for two nearby revisions to cancel each other |
General Comments 0
You need to be logged in to leave comments.
Login now