204 svn.ra.get_log(t.ra, paths, start, end, limit, |
204 svn.ra.get_log(t.ra, paths, start, end, limit, |
205 discover_changed_paths, |
205 discover_changed_paths, |
206 strict_node_history, |
206 strict_node_history, |
207 receiver) |
207 receiver) |
208 except SubversionException, (_, num): |
208 except SubversionException, (_, num): |
|
209 self.ui.print_exc() |
209 pickle.dump(num, fp, protocol) |
210 pickle.dump(num, fp, protocol) |
210 else: |
211 else: |
211 pickle.dump(None, fp, protocol) |
212 pickle.dump(None, fp, protocol) |
212 fp.close() |
213 fp.close() |
213 |
214 |
236 child(os.fdopen(wfd, 'wb')) |
237 child(os.fdopen(wfd, 'wb')) |
237 os._exit(0) |
238 os._exit(0) |
238 |
239 |
239 def gettags(self): |
240 def gettags(self): |
240 tags = {} |
241 tags = {} |
241 for entry in self.get_log(['/tags'], 0, self.revnum(self.head)): |
242 start = self.revnum(self.head) |
242 orig_paths, revnum, author, date, message = entry |
243 try: |
243 for path in orig_paths: |
244 for entry in self.get_log(['/tags'], 0, start): |
244 if not path.startswith('/tags/'): |
245 orig_paths, revnum, author, date, message = entry |
245 continue |
246 for path in orig_paths: |
246 ent = orig_paths[path] |
247 if not path.startswith('/tags/'): |
247 source = ent.copyfrom_path |
248 continue |
248 rev = ent.copyfrom_rev |
249 ent = orig_paths[path] |
249 tag = path.split('/', 2)[2] |
250 source = ent.copyfrom_path |
250 tags[tag] = self.revid(rev, module=source) |
251 rev = ent.copyfrom_rev |
|
252 tag = path.split('/', 2)[2] |
|
253 tags[tag] = self.revid(rev, module=source) |
|
254 except SubversionException, (_, num): |
|
255 self.ui.note('no tags found at revision %d\n' % start) |
251 return tags |
256 return tags |
252 |
257 |
253 # -- helper functions -- |
258 # -- helper functions -- |
254 |
259 |
255 def revid(self, revnum, module=None): |
260 def revid(self, revnum, module=None): |