mercurial/namespaces.py
branchstable
changeset 23967 448bb32b8ee6
parent 23875 e573dd08aeaf
child 24151 38824c53c2f1
equal deleted inserted replaced
23966:2d2c0a8eeeb8 23967:448bb32b8ee6
    25         # we need current mercurial named objects (bookmarks, tags, and
    25         # we need current mercurial named objects (bookmarks, tags, and
    26         # branches) to be initialized somewhere, so that place is here
    26         # branches) to be initialized somewhere, so that place is here
    27         bmknames = lambda repo: repo._bookmarks.keys()
    27         bmknames = lambda repo: repo._bookmarks.keys()
    28         bmknamemap = lambda repo, name: tolist(repo._bookmarks.get(name))
    28         bmknamemap = lambda repo, name: tolist(repo._bookmarks.get(name))
    29         bmknodemap = lambda repo, name: repo.nodebookmarks(name)
    29         bmknodemap = lambda repo, name: repo.nodebookmarks(name)
    30         n = namespace("bookmarks", templatename="bookmark", listnames=bmknames,
    30         n = namespace("bookmarks", templatename="bookmark",
       
    31                       # i18n: column positioning for "hg log"
       
    32                       logfmt=_("bookmark:    %s\n"),
       
    33                       listnames=bmknames,
    31                       namemap=bmknamemap, nodemap=bmknodemap)
    34                       namemap=bmknamemap, nodemap=bmknodemap)
    32         self.addnamespace(n)
    35         self.addnamespace(n)
    33 
    36 
    34         tagnames = lambda repo: [t for t, n in repo.tagslist()]
    37         tagnames = lambda repo: [t for t, n in repo.tagslist()]
    35         tagnamemap = lambda repo, name: tolist(repo._tagscache.tags.get(name))
    38         tagnamemap = lambda repo, name: tolist(repo._tagscache.tags.get(name))
    36         tagnodemap = lambda repo, name: repo.nodetags(name)
    39         tagnodemap = lambda repo, name: repo.nodetags(name)
    37         n = namespace("tags", templatename="tag", listnames=tagnames,
    40         n = namespace("tags", templatename="tag",
       
    41                       # i18n: column positioning for "hg log"
       
    42                       logfmt=_("tag:         %s\n"),
       
    43                       listnames=tagnames,
    38                       namemap=tagnamemap, nodemap=tagnodemap)
    44                       namemap=tagnamemap, nodemap=tagnodemap)
    39         self.addnamespace(n)
    45         self.addnamespace(n)
    40 
    46 
    41         bnames = lambda repo: repo.branchmap().keys()
    47         bnames = lambda repo: repo.branchmap().keys()
    42         bnamemap = lambda repo, name: tolist(repo.branchtip(name, True))
    48         bnamemap = lambda repo, name: tolist(repo.branchtip(name, True))
    43         bnodemap = lambda repo, node: [repo[node].branch()]
    49         bnodemap = lambda repo, node: [repo[node].branch()]
    44         n = namespace("branches", templatename="branch", listnames=bnames,
    50         n = namespace("branches", templatename="branch",
       
    51                       # i18n: column positioning for "hg log"
       
    52                       logfmt=_("branch:      %s\n"),
       
    53                       listnames=bnames,
    45                       namemap=bnamemap, nodemap=bnodemap)
    54                       namemap=bnamemap, nodemap=bnodemap)
    46         self.addnamespace(n)
    55         self.addnamespace(n)
    47 
    56 
    48     def __getitem__(self, namespace):
    57     def __getitem__(self, namespace):
    49         """returns the namespace object"""
    58         """returns the namespace object"""
   119       'nodemap': function that takes a node and returns a list of names
   128       'nodemap': function that takes a node and returns a list of names
   120 
   129 
   121     """
   130     """
   122 
   131 
   123     def __init__(self, name, templatename=None, logname=None, colorname=None,
   132     def __init__(self, name, templatename=None, logname=None, colorname=None,
   124                  listnames=None, namemap=None, nodemap=None):
   133                  logfmt=None, listnames=None, namemap=None, nodemap=None):
   125         """create a namespace
   134         """create a namespace
   126 
   135 
   127         name: the namespace to be registered (in plural form)
   136         name: the namespace to be registered (in plural form)
   128         templatename: the name to use for templating
   137         templatename: the name to use for templating
   129         logname: the name to use for log output; if not specified templatename
   138         logname: the name to use for log output; if not specified templatename
   130                  is used
   139                  is used
   131         colorname: the name to use for colored log output; if not specified
   140         colorname: the name to use for colored log output; if not specified
   132                    logname is used
   141                    logname is used
       
   142         logfmt: the format to use for (l10n-ed) log output; if not specified
       
   143                 it is composed from logname
   133         listnames: function to list all names
   144         listnames: function to list all names
   134         namemap: function that inputs a node, output name(s)
   145         namemap: function that inputs a node, output name(s)
   135         nodemap: function that inputs a name, output node(s)
   146         nodemap: function that inputs a name, output node(s)
   136 
   147 
   137         """
   148         """
   138         self.name = name
   149         self.name = name
   139         self.templatename = templatename
   150         self.templatename = templatename
   140         self.logname = logname
   151         self.logname = logname
   141         self.colorname = colorname
   152         self.colorname = colorname
       
   153         self.logfmt = logfmt
   142         self.listnames = listnames
   154         self.listnames = listnames
   143         self.namemap = namemap
   155         self.namemap = namemap
   144         self.nodemap = nodemap
   156         self.nodemap = nodemap
   145 
   157 
   146         # if logname is not specified, use the template name as backup
   158         # if logname is not specified, use the template name as backup
   149 
   161 
   150         # if colorname is not specified, just use the logname as a backup
   162         # if colorname is not specified, just use the logname as a backup
   151         if self.colorname is None:
   163         if self.colorname is None:
   152             self.colorname = self.logname
   164             self.colorname = self.logname
   153 
   165 
       
   166         # if logfmt is not specified, compose it from logname as backup
       
   167         if self.logfmt is None:
       
   168             # i18n: column positioning for "hg log"
       
   169             self.logfmt = ("%s:" % self.logname).ljust(13) + "%s\n"
       
   170 
   154     def names(self, repo, node):
   171     def names(self, repo, node):
   155         """method that returns a (sorted) list of names in a namespace that
   172         """method that returns a (sorted) list of names in a namespace that
   156         match a given node"""
   173         match a given node"""
   157         return sorted(self.nodemap(repo, node))
   174         return sorted(self.nodemap(repo, node))
   158 
   175