##// END OF EJS Templates
convert: svn: add function to get the latest revision touching a path...
Brendan Cully -
r4789:c5dd8e18 default
parent child Browse files
Show More
@@ -120,12 +120,7 class convert_svn(converter_source):
120 120 except IOError, e:
121 121 pass
122 122
123 if not 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
123 self.last_changed = self.latest(self.module, latest)
129 124
130 125 self.head = self.rev(self.last_changed)
131 126
@@ -135,6 +130,22 class convert_svn(converter_source):
135 130 def revnum(self, rev):
136 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 149 def get_blacklist(self):
139 150 """Avoid certain revision numbers.
140 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