mercurial/subrepo.py
changeset 13569 3ab3b892d223
parent 13560 a2734c8322ac
child 13646 31eac42d9123
equal deleted inserted replaced
13568:0b79cf616e65 13569:3ab3b892d223
   712         current, err = self._gitdir(['symbolic-ref', 'HEAD', '--quiet'])
   712         current, err = self._gitdir(['symbolic-ref', 'HEAD', '--quiet'])
   713         if err:
   713         if err:
   714             current = None
   714             current = None
   715         return current
   715         return current
   716 
   716 
       
   717     def _gitremote(self, remote):
       
   718         out = self._gitcommand(['remote', 'show', '-n', remote])
       
   719         line = out.split('\n')[1]
       
   720         i = line.index('URL: ') + len('URL: ')
       
   721         return line[i:]
       
   722 
   717     def _githavelocally(self, revision):
   723     def _githavelocally(self, revision):
   718         out, code = self._gitdir(['cat-file', '-e', revision])
   724         out, code = self._gitdir(['cat-file', '-e', revision])
   719         return code == 0
   725         return code == 0
   720 
   726 
   721     def _gitisancestor(self, r1, r2):
   727     def _gitisancestor(self, r1, r2):
   766             self._ui.status(_('cloning subrepo %s from %s\n') %
   772             self._ui.status(_('cloning subrepo %s from %s\n') %
   767                             (self._relpath, source))
   773                             (self._relpath, source))
   768             self._gitnodir(['clone', source, self._abspath])
   774             self._gitnodir(['clone', source, self._abspath])
   769         if self._githavelocally(revision):
   775         if self._githavelocally(revision):
   770             return
   776             return
   771         self._ui.status(_('pulling subrepo %s\n') % self._relpath)
   777         self._ui.status(_('pulling subrepo %s from %s\n') %
       
   778                         (self._relpath, self._gitremote('origin')))
   772         # try only origin: the originally cloned repo
   779         # try only origin: the originally cloned repo
   773         self._gitcommand(['fetch'])
   780         self._gitcommand(['fetch'])
   774         if not self._githavelocally(revision):
   781         if not self._githavelocally(revision):
   775             raise util.Abort(_("revision %s does not exist in subrepo %s\n") %
   782             raise util.Abort(_("revision %s does not exist in subrepo %s\n") %
   776                                (revision, self._relpath))
   783                                (revision, self._relpath))