comparison hgsubversion/maps.py @ 1213:295d2f0cc275

maps: change branchmap to initialize with an svnmeta object This refactoring will help us in a future patch have all map objects inherit from a common ancestor.
author Sean Farley <sean.michael.farley@gmail.com>
date Mon, 24 Mar 2014 11:20:48 -0500
parents 56d6e0273733
children 2c793092862b
comparison
equal deleted inserted replaced
1212:0ca7f80d0ab6 1213:295d2f0cc275
366 366
367 All changes on the oldname branch will now be on the newname branch; all 367 All changes on the oldname branch will now be on the newname branch; all
368 changes on other will now be on default (have no branch name set). 368 changes on other will now be on default (have no branch name set).
369 ''' 369 '''
370 370
371 def __init__(self, ui, path): 371 def __init__(self, meta):
372 self.ui = ui 372 self.meta = meta
373 self.path = path
374 self.super = super(BranchMap, self) 373 self.super = super(BranchMap, self)
375 self.super.__init__() 374 self.super.__init__()
376 self.load(path) 375 self.load(self.meta.branchmap_file)
377 376
378 # append branch mapping specified from the commandline 377 # append branch mapping specified from the commandline
379 clmap = util.configpath(self.ui, 'branchmap') 378 clmap = util.configpath(self.meta.ui, 'branchmap')
380 if clmap: 379 if clmap:
381 self.load(clmap) 380 self.load(clmap)
382 381
383 def load(self, path): 382 def load(self, path):
384 '''Load mappings from a file at the specified path.''' 383 '''Load mappings from a file at the specified path.'''
385 if not os.path.exists(path): 384 if not os.path.exists(path):
386 return 385 return
387 386
388 writing = False 387 writing = False
389 if path != self.path: 388 if path != self.meta.branchmap_file:
390 writing = open(self.path, 'a') 389 writing = open(self.meta.branchmap_file, 'a')
391 390
392 self.ui.debug('reading branchmap from %s\n' % path) 391 self.ui.debug('reading branchmap from %s\n' % path)
393 f = open(path, 'r') 392 f = open(path, 'r')
394 for number, line in enumerate(f): 393 for number, line in enumerate(f):
395 394
402 401
403 try: 402 try:
404 src, dst = line.split('=', 1) 403 src, dst = line.split('=', 1)
405 except (IndexError, ValueError): 404 except (IndexError, ValueError):
406 msg = 'ignoring line %i in branch map %s: %s\n' 405 msg = 'ignoring line %i in branch map %s: %s\n'
407 self.ui.status(msg % (number, path, line.rstrip())) 406 self.meta.ui.status(msg % (number, path, line.rstrip()))
408 continue 407 continue
409 408
410 src = src.strip() 409 src = src.strip()
411 dst = dst.strip() 410 dst = dst.strip()
412 self.ui.debug('adding branch %s to branch map\n' % src) 411 self.meta.ui.debug('adding branch %s to branch map\n' % src)
413 412
414 if not dst: 413 if not dst:
415 # prevent people from assuming such lines are valid 414 # prevent people from assuming such lines are valid
416 raise hgutil.Abort('removing branches is not supported, yet\n' 415 raise hgutil.Abort('removing branches is not supported, yet\n'
417 '(line %i in branch map %s)' 416 '(line %i in branch map %s)'
418 % (number, path)) 417 % (number, path))
419 elif src in self and dst != self[src]: 418 elif src in self and dst != self[src]:
420 msg = 'overriding branch: "%s" to "%s" (%s)\n' 419 msg = 'overriding branch: "%s" to "%s" (%s)\n'
421 self.ui.status(msg % (self[src], dst, src)) 420 self.meta.ui.status(msg % (self[src], dst, src))
422 self[src] = dst 421 self[src] = dst
423 422
424 f.close() 423 f.close()
425 if writing: 424 if writing:
426 writing.close() 425 writing.close()