hgext/mq.py
changeset 3691 79151c94c3b4
parent 3685 193e9c6d1a6d
child 3692 49136e90517b
equal deleted inserted replaced
3688:d92dad355000 3691:79151c94c3b4
  1260         else:
  1260         else:
  1261             p = str(self.series.index(pname)) + " " + pname
  1261             p = str(self.series.index(pname)) + " " + pname
  1262         return p
  1262         return p
  1263 
  1263 
  1264     def qimport(self, repo, files, patchname=None, rev=None, existing=None,
  1264     def qimport(self, repo, files, patchname=None, rev=None, existing=None,
  1265                 force=None):
  1265                 force=None, git=False):
  1266         def checkseries(patchname):
  1266         def checkseries(patchname):
  1267             if patchname in self.series:
  1267             if patchname in self.series:
  1268                 raise util.Abort(_('patch %s is already in the series file')
  1268                 raise util.Abort(_('patch %s is already in the series file')
  1269                                  % patchname)
  1269                                  % patchname)
  1270         def checkfile(patchname):
  1270         def checkfile(patchname):
  1304             else:
  1304             else:
  1305                 if heads != [repo.changelog.node(rev[0])]:
  1305                 if heads != [repo.changelog.node(rev[0])]:
  1306                     raise util.Abort(_('revision %d has unmanaged children')
  1306                     raise util.Abort(_('revision %d has unmanaged children')
  1307                                      % rev[0])
  1307                                      % rev[0])
  1308                 lastparent = None
  1308                 lastparent = None
       
  1309 
       
  1310             if git:
       
  1311                 self.diffopts().git = True
  1309 
  1312 
  1310             for r in rev:
  1313             for r in rev:
  1311                 p1, p2 = repo.changelog.parentrevs(r)
  1314                 p1, p2 = repo.changelog.parentrevs(r)
  1312                 n = repo.changelog.node(r)
  1315                 n = repo.changelog.node(r)
  1313                 if p2 != revlog.nullrev:
  1316                 if p2 != revlog.nullrev:
  1422 
  1425 
  1423     With --force, an existing patch of the same name will be overwritten.
  1426     With --force, an existing patch of the same name will be overwritten.
  1424 
  1427 
  1425     An existing changeset may be placed under mq control with --rev
  1428     An existing changeset may be placed under mq control with --rev
  1426     (e.g. qimport --rev tip -n patch will place tip under mq control).
  1429     (e.g. qimport --rev tip -n patch will place tip under mq control).
       
  1430     With --git, patches imported with --rev will use the git diff
       
  1431     format.
  1427     """
  1432     """
  1428     q = repo.mq
  1433     q = repo.mq
  1429     q.qimport(repo, filename, patchname=opts['name'],
  1434     q.qimport(repo, filename, patchname=opts['name'],
  1430               existing=opts['existing'], force=opts['force'], rev=opts['rev'])
  1435               existing=opts['existing'], force=opts['force'], rev=opts['rev'],
       
  1436               git=opts['git'])
  1431     q.save_dirty()
  1437     q.save_dirty()
  1432     return 0
  1438     return 0
  1433 
  1439 
  1434 def init(ui, repo, **opts):
  1440 def init(ui, repo, **opts):
  1435     """init a new queue repository
  1441     """init a new queue repository
  2088     "^qimport":
  2094     "^qimport":
  2089         (qimport,
  2095         (qimport,
  2090          [('e', 'existing', None, 'import file in patch dir'),
  2096          [('e', 'existing', None, 'import file in patch dir'),
  2091           ('n', 'name', '', 'patch file name'),
  2097           ('n', 'name', '', 'patch file name'),
  2092           ('f', 'force', None, 'overwrite existing files'),
  2098           ('f', 'force', None, 'overwrite existing files'),
  2093           ('r', 'rev', [], 'place existing revisions under mq control')],
  2099           ('r', 'rev', [], 'place existing revisions under mq control'),
  2094          'hg qimport [-e] [-n NAME] [-f] [-r REV]... FILE...'),
  2100           ('g', 'git', None, _('use git extended diff format'))],
       
  2101          'hg qimport [-e] [-n NAME] [-f] [-g] [-r REV]... FILE...'),
  2095     "^qinit":
  2102     "^qinit":
  2096         (init,
  2103         (init,
  2097          [('c', 'create-repo', None, 'create queue repository')],
  2104          [('c', 'create-repo', None, 'create queue repository')],
  2098          'hg qinit [-c]'),
  2105          'hg qinit [-c]'),
  2099     "qnew":
  2106     "qnew":