hgext/mq.py
changeset 2682 4e2dc5c16e61
parent 2677 ec05ce9cbf47
child 2694 0fb28dbf0dc7
equal deleted inserted replaced
2681:259acfb963d1 2682:4e2dc5c16e61
  1278     ui.write("mq version %s\n" % versionstr)
  1278     ui.write("mq version %s\n" % versionstr)
  1279     return 0
  1279     return 0
  1280 
  1280 
  1281 def reposetup(ui, repo):
  1281 def reposetup(ui, repo):
  1282     repomap[repo] = queue(ui, repo.join(""))
  1282     repomap[repo] = queue(ui, repo.join(""))
  1283     oldlookup = repo.lookup
  1283     oldtags = repo.tags
  1284 
  1284 
  1285     def qlookup(key):
  1285     def qtags():
  1286         try:
  1286         if repo.tagscache:
  1287             return oldlookup(key)
  1287             return repo.tagscache
  1288         except hg.RepoError:
  1288 
  1289             q = repomap[repo]
  1289         tagscache = oldtags()
  1290 
  1290 
  1291             qpatchnames = { 'qtip': -1, 'qbase': 0 }
  1291         q = repomap[repo]
  1292             if key in qpatchnames:
  1292         if len(q.applied) == 0:
  1293                 if len(q.applied) == 0:
  1293             return tagscache
  1294                     self.ui.warn('No patches applied\n')
  1294 
  1295                     raise
  1295         mqtags = [patch.split(':') for patch in q.applied]
  1296                 patch = q.applied[qpatchnames[key]].split(':')[0]
  1296         mqtags.append((mqtags[-1][0], 'qtip'))
  1297                 return revlog.bin(patch)
  1297         mqtags.append((mqtags[0][0], 'qbase'))
  1298 
  1298         for patch in mqtags:
  1299             patch = q.isapplied(key)
  1299             if patch[1] in tagscache:
  1300             if not patch:
  1300                 repo.ui.warn('Tag %s overrides mq patch of the same name\n' % patch[1])
  1301                 raise
  1301             else:
  1302             return revlog.bin(patch[1])
  1302                 tagscache[patch[1]] = revlog.bin(patch[0])
  1303 
  1303 
  1304     repo.lookup = qlookup
  1304         return tagscache
       
  1305 
       
  1306     repo.tags = qtags
  1305 
  1307 
  1306 cmdtable = {
  1308 cmdtable = {
  1307     "qapplied": (applied, [], 'hg qapplied [PATCH]'),
  1309     "qapplied": (applied, [], 'hg qapplied [PATCH]'),
  1308     "qcommit|qci":
  1310     "qcommit|qci":
  1309         (commit,
  1311         (commit,