view mercurial-common/src/python/load-substates-command.py @ 706:c27e501ed0c3

use own command for hg subrepos
author eugene.petrenko@jetbrains.com
date Wed, 08 Jan 2014 18:32:42 +0100
parents
children 7d9e79de81e6
line wrap: on
line source
#!/usr/bin/env python
'''
load-substates-command

Copyright 2014 JetBrains <eugene.petrenko@jetbrains.com>
Mercurial extension commands for JetBrains' Mercurial integration
'''

import base64
from mercurial import util, node, scmutil, subrepo
from mercurial.i18n import _
from os import path, makedirs


def load_substates_command(ui, repo, outputFile, **opts):
    """Tons of docs"""

    ui.write("Searching for mappings...\n")

    with open(outputFile, "w", 5 * 1024 * 1024) as result:
      result.write("format: prefix commitID base64(.hgsub) base64(.hgsubstate) \n")
      result.flush()

      for r in repo.changelog:
          ctx = repo[r]

          if '.hgsubstate' in ctx and '.hgsub' in ctx:
               commitId = node.hex(ctx.node())
               result.write("$$@@@@ " + commitId + " " + base64.b64encode(ctx['.hgsub'].data()) + " " + base64.b64encode(ctx['.hgsubstate'].data()) + "\n")


    ui.write("\n##Completed##\n")


#so here goes command registration and options
cmdtable = {
    "load-substates-command": (load_substates_command, [ ], " [options] OUTPUT_FILE")
}

testedwith = '2.2.2'
buglink = "@jonnyzzz"