From 4d157000520039d3796cb7b115fdceffc3b7f121 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 28 Nov 2011 16:53:08 +0100 Subject: [PATCH] detect mercurial subrepositories --- .../src/main/resources/sonia/scm/hgbrowse.py | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/scm-plugins/scm-hg-plugin/src/main/resources/sonia/scm/hgbrowse.py b/scm-plugins/scm-hg-plugin/src/main/resources/sonia/scm/hgbrowse.py index e33cfa3f5f..214552e24f 100644 --- a/scm-plugins/scm-hg-plugin/src/main/resources/sonia/scm/hgbrowse.py +++ b/scm-plugins/scm-hg-plugin/src/main/resources/sonia/scm/hgbrowse.py @@ -57,7 +57,14 @@ name = getName(path) length = 0 paths = [] repo = hg.repository(ui.ui(), path = repositoryPath) -mf = repo[revision].manifest() +subrepos = {} +revCtx = repo[revision] +mf = revCtx.manifest() +hgsub = revCtx.filectx('.hgsub').data().split('\n') +for line in hgsub: + parts = line.split('=') + if len(parts) > 1: + subrepos[parts[0].strip()] = parts[1].strip() if path is "": length = 1 @@ -72,6 +79,10 @@ else: files = [] directories = [] +for k, v in subrepos.iteritems(): + if k.startswith(path): + directories.append(k) + for p in paths: parts = p.split('/') depth = len(parts) @@ -91,23 +102,26 @@ print ' ' + revision + '' # todo print tag, and branch print ' ' for dir in directories: - print ' ' - print ' ' + getName(dir) + '' - print ' ' + dir + '' - print ' true' - print ' ' + print ' ' + print ' ' + getName(dir) + '' + print ' ' + dir + '' + print ' true' + subrepo = subrepos[dir] + if subrepo != None: + print ' ' + subrepo + '' + print ' ' for file in files: linkrev = repo[file.linkrev()] time = int(linkrev.date()[0]) * 1000 desc = linkrev.description() - print ' ' - print ' ' + getName(file.path()) + '' - print ' ' + file.path() + '' - print ' false' - print ' ' + str(file.size()) + '' - print ' ' + str(time).split('.')[0] + '' - print ' ' + desc + '' - print ' ' + print ' ' + print ' ' + getName(file.path()) + '' + print ' ' + file.path() + '' + print ' false' + print ' ' + str(file.size()) + '' + print ' ' + str(time).split('.')[0] + '' + print ' ' + desc + '' + print ' ' print ' ' print ''