comparison mercurial/subrepo.py @ 33365:6d88468d435b

subrepo: make the output references to subrepositories consistent Well, mostly. The annotation on subrepo functions tacks on a parenthetical to the abort message, which seems reasonable for a generic mechanism. But now all messages consistently spell out 'subrepository', and double quote the name of the repo. I noticed the inconsistency in the change for the last commit.
author Matt Harbison <matt_harbison@yahoo.com>
date Sun, 09 Jul 2017 16:13:30 -0400
parents bf2daeddd42b
children 0407a51b9d8c
comparison
equal deleted inserted replaced
33364:bf2daeddd42b 33365:6d88468d435b
71 except SubrepoAbort as ex: 71 except SubrepoAbort as ex:
72 # This exception has already been handled 72 # This exception has already been handled
73 raise ex 73 raise ex
74 except error.Abort as ex: 74 except error.Abort as ex:
75 subrepo = subrelpath(self) 75 subrepo = subrelpath(self)
76 errormsg = str(ex) + ' ' + _('(in subrepo %s)') % subrepo 76 errormsg = str(ex) + ' ' + _('(in subrepository "%s")') % subrepo
77 # avoid handling this exception by raising a SubrepoAbort exception 77 # avoid handling this exception by raising a SubrepoAbort exception
78 raise SubrepoAbort(errormsg, hint=ex.hint, subrepo=subrepo, 78 raise SubrepoAbort(errormsg, hint=ex.hint, subrepo=subrepo,
79 cause=sys.exc_info()) 79 cause=sys.exc_info())
80 return res 80 return res
81 return decoratedmethod 81 return decoratedmethod
145 state = {} 145 state = {}
146 for path, src in p[''].items(): 146 for path, src in p[''].items():
147 kind = 'hg' 147 kind = 'hg'
148 if src.startswith('['): 148 if src.startswith('['):
149 if ']' not in src: 149 if ']' not in src:
150 raise error.Abort(_('missing ] in subrepo source')) 150 raise error.Abort(_('missing ] in subrepository source'))
151 kind, src = src.split(']', 1) 151 kind, src = src.split(']', 1)
152 kind = kind[1:] 152 kind = kind[1:]
153 src = src.lstrip() # strip any extra whitespace after ']' 153 src = src.lstrip() # strip any extra whitespace after ']'
154 154
155 if not util.url(src).isabs(): 155 if not util.url(src).isabs():
475 of exception. 475 of exception.
476 476
477 This returns None, otherwise. 477 This returns None, otherwise.
478 """ 478 """
479 if self.dirty(ignoreupdate=ignoreupdate, missing=missing): 479 if self.dirty(ignoreupdate=ignoreupdate, missing=missing):
480 return _("uncommitted changes in subrepository '%s'" 480 return _('uncommitted changes in subrepository "%s"'
481 ) % subrelpath(self) 481 ) % subrelpath(self)
482 482
483 def bailifchanged(self, ignoreupdate=False, hint=None): 483 def bailifchanged(self, ignoreupdate=False, hint=None):
484 """raise Abort if subrepository is ``dirty()`` 484 """raise Abort if subrepository is ``dirty()``
485 """ 485 """
894 if inrepo: 894 if inrepo:
895 urepo = repo.unfiltered() 895 urepo = repo.unfiltered()
896 ctx = urepo[revision] 896 ctx = urepo[revision]
897 if ctx.hidden(): 897 if ctx.hidden():
898 urepo.ui.warn( 898 urepo.ui.warn(
899 _('revision %s in subrepo %s is hidden\n') \ 899 _('revision %s in subrepository "%s" is hidden\n') \
900 % (revision[0:12], self._path)) 900 % (revision[0:12], self._path))
901 repo = urepo 901 repo = urepo
902 hg.updaterepo(repo, revision, overwrite) 902 hg.updaterepo(repo, revision, overwrite)
903 903
904 @annotatesubrepoerror 904 @annotatesubrepoerror
908 dst = self._repo[state[1]] 908 dst = self._repo[state[1]]
909 anc = dst.ancestor(cur) 909 anc = dst.ancestor(cur)
910 910
911 def mergefunc(): 911 def mergefunc():
912 if anc == cur and dst.branch() == cur.branch(): 912 if anc == cur and dst.branch() == cur.branch():
913 self.ui.debug("updating subrepo %s\n" % subrelpath(self)) 913 self.ui.debug('updating subrepository "%s"\n'
914 % subrelpath(self))
914 hg.update(self._repo, state[1]) 915 hg.update(self._repo, state[1])
915 elif anc == dst: 916 elif anc == dst:
916 self.ui.debug("skipping subrepo %s\n" % subrelpath(self)) 917 self.ui.debug('skipping subrepository "%s"\n'
918 % subrelpath(self))
917 else: 919 else:
918 self.ui.debug("merging subrepo %s\n" % subrelpath(self)) 920 self.ui.debug('merging subrepository "%s"\n' % subrelpath(self))
919 hg.merge(self._repo, state[1], remind=False) 921 hg.merge(self._repo, state[1], remind=False)
920 922
921 wctx = self._repo[None] 923 wctx = self._repo[None]
922 if self.dirty(): 924 if self.dirty():
923 if anc != dst: 925 if anc != dst:
1553 self.ui.status(_('pulling subrepo %s from %s\n') % 1555 self.ui.status(_('pulling subrepo %s from %s\n') %
1554 (self._relpath, self._gitremote('origin'))) 1556 (self._relpath, self._gitremote('origin')))
1555 # try only origin: the originally cloned repo 1557 # try only origin: the originally cloned repo
1556 self._gitcommand(['fetch']) 1558 self._gitcommand(['fetch'])
1557 if not self._githavelocally(revision): 1559 if not self._githavelocally(revision):
1558 raise error.Abort(_("revision %s does not exist in subrepo %s\n") % 1560 raise error.Abort(_('revision %s does not exist in subrepository '
1559 (revision, self._relpath)) 1561 '"%s"\n') % (revision, self._relpath))
1560 1562
1561 @annotatesubrepoerror 1563 @annotatesubrepoerror
1562 def dirty(self, ignoreupdate=False, missing=False): 1564 def dirty(self, ignoreupdate=False, missing=False):
1563 if self._gitmissing(): 1565 if self._gitmissing():
1564 return self._state[1] != '' 1566 return self._state[1] != ''
1609 self._gitcommand(cmd + args) 1611 self._gitcommand(cmd + args)
1610 _sanitize(self.ui, self.wvfs, '.git') 1612 _sanitize(self.ui, self.wvfs, '.git')
1611 1613
1612 def rawcheckout(): 1614 def rawcheckout():
1613 # no branch to checkout, check it out with no branch 1615 # no branch to checkout, check it out with no branch
1614 self.ui.warn(_('checking out detached HEAD in subrepo %s\n') % 1616 self.ui.warn(_('checking out detached HEAD in '
1615 self._relpath) 1617 'subrepository "%s"\n') % self._relpath)
1616 self.ui.warn(_('check out a git branch if you intend ' 1618 self.ui.warn(_('check out a git branch if you intend '
1617 'to make changes\n')) 1619 'to make changes\n'))
1618 checkout(['-q', revision]) 1620 checkout(['-q', revision])
1619 1621
1620 if revision not in rev2branch: 1622 if revision not in rev2branch:
1729 current = self._gitcurrentbranch() 1731 current = self._gitcurrentbranch()
1730 if current: 1732 if current:
1731 # determine if the current branch is even useful 1733 # determine if the current branch is even useful
1732 if not self._gitisancestor(self._state[1], current): 1734 if not self._gitisancestor(self._state[1], current):
1733 self.ui.warn(_('unrelated git branch checked out ' 1735 self.ui.warn(_('unrelated git branch checked out '
1734 'in subrepo %s\n') % self._relpath) 1736 'in subrepository "%s"\n') % self._relpath)
1735 return False 1737 return False
1736 self.ui.status(_('pushing branch %s of subrepo %s\n') % 1738 self.ui.status(_('pushing branch %s of subrepository "%s"\n') %
1737 (current.split('/', 2)[2], self._relpath)) 1739 (current.split('/', 2)[2], self._relpath))
1738 ret = self._gitdir(cmd + ['origin', current]) 1740 ret = self._gitdir(cmd + ['origin', current])
1739 return ret[1] == 0 1741 return ret[1] == 0
1740 else: 1742 else:
1741 self.ui.warn(_('no branch checked out in subrepo %s\n' 1743 self.ui.warn(_('no branch checked out in subrepository "%s"\n'
1742 'cannot push revision %s\n') % 1744 'cannot push revision %s\n') %
1743 (self._relpath, self._state[1])) 1745 (self._relpath, self._state[1]))
1744 return False 1746 return False
1745 1747
1746 @annotatesubrepoerror 1748 @annotatesubrepoerror