comparison mercurial/cmdutil.py @ 3656:e50891e461e4

Consolidate brinfo handling
author Matt Mackall <mpm@selenic.com>
date Wed, 15 Nov 2006 15:51:58 -0600
parents 2801a3efc7c3
children 731e739b8659
comparison
equal deleted inserted replaced
3655:2801a3efc7c3 3656:e50891e461e4
236 return 0 236 return 0
237 237
238 class changeset_printer(object): 238 class changeset_printer(object):
239 '''show changeset information when templating not requested.''' 239 '''show changeset information when templating not requested.'''
240 240
241 def __init__(self, ui, repo, patch, buffered): 241 def __init__(self, ui, repo, patch, brinfo, buffered):
242 self.ui = ui 242 self.ui = ui
243 self.repo = repo 243 self.repo = repo
244 self.buffered = buffered 244 self.buffered = buffered
245 self.patch = patch 245 self.patch = patch
246 self.brinfo = brinfo
246 if buffered: 247 if buffered:
247 self.ui = uibuffer(ui) 248 self.ui = uibuffer(ui)
248 249
249 def flush(self, rev): 250 def flush(self, rev):
250 return self.ui.flush(rev) 251 return self.ui.flush(rev)
251 252
252 def show(self, rev=0, changenode=None, brinfo=None, copies=None): 253 def show(self, rev=0, changenode=None, copies=None):
253 '''show a single changeset or file revision''' 254 '''show a single changeset or file revision'''
254 if self.buffered: 255 if self.buffered:
255 self.ui.mark(rev) 256 self.ui.mark(rev)
256 log = self.repo.changelog 257 log = self.repo.changelog
257 if changenode is None: 258 if changenode is None:
286 for tag in self.repo.nodetags(changenode): 287 for tag in self.repo.nodetags(changenode):
287 self.ui.write(_("tag: %s\n") % tag) 288 self.ui.write(_("tag: %s\n") % tag)
288 for parent in parents: 289 for parent in parents:
289 self.ui.write(_("parent: %d:%s\n") % parent) 290 self.ui.write(_("parent: %d:%s\n") % parent)
290 291
291 if brinfo and changenode in brinfo: 292 if self.brinfo:
292 br = brinfo[changenode] 293 br = self.repo.branchlookup([changenode])
293 self.ui.write(_("branch: %s\n") % " ".join(br)) 294 if br:
295 self.ui.write(_("branch: %s\n") % " ".join(br[changenode]))
294 296
295 if self.ui.debugflag: 297 if self.ui.debugflag:
296 self.ui.write(_("manifest: %d:%s\n") % 298 self.ui.write(_("manifest: %d:%s\n") %
297 (self.repo.manifest.rev(changes[0]), hex(changes[0]))) 299 (self.repo.manifest.rev(changes[0]), hex(changes[0])))
298 self.ui.write(_("user: %s\n") % changes[1]) 300 self.ui.write(_("user: %s\n") % changes[1])
337 self.ui.write("\n") 339 self.ui.write("\n")
338 340
339 class changeset_templater(changeset_printer): 341 class changeset_templater(changeset_printer):
340 '''format changeset information.''' 342 '''format changeset information.'''
341 343
342 def __init__(self, ui, repo, patch, mapfile, buffered): 344 def __init__(self, ui, repo, patch, brinfo, mapfile, buffered):
343 changeset_printer.__init__(self, ui, repo, patch, buffered) 345 changeset_printer.__init__(self, ui, repo, patch, brinfo, buffered)
344 self.t = templater.templater(mapfile, templater.common_filters, 346 self.t = templater.templater(mapfile, templater.common_filters,
345 cache={'parent': '{rev}:{node|short} ', 347 cache={'parent': '{rev}:{node|short} ',
346 'manifest': '{rev}:{node|short}', 348 'manifest': '{rev}:{node|short}',
347 'filecopy': '{name} ({source})'}) 349 'filecopy': '{name} ({source})'})
348 350
349 def use_template(self, t): 351 def use_template(self, t):
350 '''set template string to use''' 352 '''set template string to use'''
351 self.t.cache['changeset'] = t 353 self.t.cache['changeset'] = t
352 354
353 def show(self, rev=0, changenode=None, brinfo=None, copies=[], **props): 355 def show(self, rev=0, changenode=None, copies=[], **props):
354 '''show a single changeset or file revision''' 356 '''show a single changeset or file revision'''
355 if self.buffered: 357 if self.buffered:
356 self.ui.mark(rev) 358 self.ui.mark(rev)
357 log = self.repo.changelog 359 log = self.repo.changelog
358 if changenode is None: 360 if changenode is None:
426 def showbranches(**args): 428 def showbranches(**args):
427 branch = changes[5].get("branch") 429 branch = changes[5].get("branch")
428 if branch: 430 if branch:
429 return showlist('branch', [branch], plural='branches', **args) 431 return showlist('branch', [branch], plural='branches', **args)
430 # add old style branches if requested 432 # add old style branches if requested
431 if brinfo and changenode in brinfo: 433 if self.brinfo:
432 return showlist('branch', brinfo[changenode], 434 br = self.repo.branchlookup([changenode])
433 plural='branches', **args) 435 if changenode in br:
436 return showlist('branch', br[changenode],
437 plural='branches', **args)
434 438
435 def showparents(**args): 439 def showparents(**args):
436 parents = [[('rev', log.rev(p)), ('node', hex(p))] 440 parents = [[('rev', log.rev(p)), ('node', hex(p))]
437 for p in log.parents(changenode) 441 for p in log.parents(changenode)
438 if self.ui.debugflag or p != nullid] 442 if self.ui.debugflag or p != nullid]
553 If all of these values are either the unset or the empty string, 557 If all of these values are either the unset or the empty string,
554 regular display via changeset_printer() is done. 558 regular display via changeset_printer() is done.
555 """ 559 """
556 # options 560 # options
557 patch = opts.get('patch') 561 patch = opts.get('patch')
562 br = None
563 if opts.get('branches'):
564 ui.warn(_("the --branches option is deprecated, "
565 "please use 'hg branches' instead\n"))
566 br = True
558 tmpl = opts.get('template') 567 tmpl = opts.get('template')
559 mapfile = None 568 mapfile = None
560 if tmpl: 569 if tmpl:
561 tmpl = templater.parsestring(tmpl, quoted=False) 570 tmpl = templater.parsestring(tmpl, quoted=False)
562 else: 571 else:
574 if not os.path.split(mapfile)[0]: 583 if not os.path.split(mapfile)[0]:
575 mapname = (templater.templatepath('map-cmdline.' + mapfile) 584 mapname = (templater.templatepath('map-cmdline.' + mapfile)
576 or templater.templatepath(mapfile)) 585 or templater.templatepath(mapfile))
577 if mapname: mapfile = mapname 586 if mapname: mapfile = mapname
578 try: 587 try:
579 t = changeset_templater(ui, repo, patch, mapfile, buffered) 588 t = changeset_templater(ui, repo, patch, br, mapfile, buffered)
580 except SyntaxError, inst: 589 except SyntaxError, inst:
581 raise util.Abort(inst.args[0]) 590 raise util.Abort(inst.args[0])
582 if tmpl: t.use_template(tmpl) 591 if tmpl: t.use_template(tmpl)
583 return t 592 return t
584 return changeset_printer(ui, repo, patch, buffered) 593 return changeset_printer(ui, repo, patch, br, buffered)
585 594