comparison mercurial/cmdutil.py @ 36203:01280638bdb1

cmdutil: make node parameter of makefileobj() mandatory (API) (repo, node) pair will be replaced with ctx, so makefilename() can be easily ported to templater.
author Yuya Nishihara <yuya@tcha.org>
date Thu, 02 Apr 2015 23:22:02 +0900
parents 39b3aab6231e
children 33ed8b511185
comparison
equal deleted inserted replaced
36202:707aba4d48b5 36203:01280638bdb1
891 else: 891 else:
892 return commiteditor 892 return commiteditor
893 893
894 def makefilename(repo, pat, node, desc=None, 894 def makefilename(repo, pat, node, desc=None,
895 total=None, seqno=None, revwidth=None, pathname=None): 895 total=None, seqno=None, revwidth=None, pathname=None):
896 node_expander = { 896 expander = {
897 'H': lambda: hex(node), 897 'H': lambda: hex(node),
898 'R': lambda: '%d' % repo.changelog.rev(node), 898 'R': lambda: '%d' % repo.changelog.rev(node),
899 'h': lambda: short(node), 899 'h': lambda: short(node),
900 'm': lambda: re.sub('[^\w]', '_', desc or '') 900 'm': lambda: re.sub('[^\w]', '_', desc or ''),
901 } 901 'r': lambda: ('%d' % repo.changelog.rev(node)).zfill(revwidth or 0),
902 expander = {
903 '%': lambda: '%', 902 '%': lambda: '%',
904 'b': lambda: os.path.basename(repo.root), 903 'b': lambda: os.path.basename(repo.root),
905 } 904 }
906 905
907 try: 906 try:
908 if node:
909 expander.update(node_expander)
910 if node:
911 expander['r'] = (lambda:
912 ('%d' % repo.changelog.rev(node)).zfill(revwidth or 0))
913 if total is not None: 907 if total is not None:
914 expander['N'] = lambda: '%d' % total 908 expander['N'] = lambda: '%d' % total
915 if seqno is not None: 909 if seqno is not None:
916 expander['n'] = lambda: '%d' % seqno 910 expander['n'] = lambda: '%d' % seqno
917 if total is not None and seqno is not None: 911 if total is not None and seqno is not None:
958 return self 952 return self
959 953
960 def __exit__(self, exc_type, exc_value, exc_tb): 954 def __exit__(self, exc_type, exc_value, exc_tb):
961 pass 955 pass
962 956
963 def makefileobj(repo, pat, node=None, desc=None, total=None, 957 def makefileobj(repo, pat, node, desc=None, total=None,
964 seqno=None, revwidth=None, mode='wb', modemap=None, 958 seqno=None, revwidth=None, mode='wb', modemap=None,
965 pathname=None): 959 pathname=None):
966 960
967 writable = mode not in ('r', 'rb') 961 writable = mode not in ('r', 'rb')
968 962