如何由Jenkins生成SCM命令

时间:2011-08-04 14:39:09

标签: mercurial jenkins

我有mercurial存储库,通过提供Jenkins的URL,我在stdout中得到以下内容:

Started by an SCM change
[workspace] $ hg incoming --quiet --bundle hg.bundle --template "{desc|xmlescape}{file_adds|stringify|xmlescape}{file_dels|stringify|xmlescape}{files|stringify|xmlescape}{parents}\n" --rev default
[workspace] $ hg unbundle hg.bundle
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)
[workspace] $ hg update --clean --rev default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
[workspace] $ hg log --rev . --template {node}
No emails were triggered.

问题是如何生成这些命令并且可以修改它们吗?

1 个答案:

答案 0 :(得分:2)

这些命令是Mercurial Jenkins plugin的一部分,source code available at GitHub

您可以在hudson.plugins.mercurial.MercurialSCM.java中找到update() method课程中使用的传入命令。

os.write("<changesets>\n".getBytes());
ArgumentListBuilder args = findHgExe(build, listener, false);
args.add(forest ? "fincoming" : "incoming", "--quiet");
if (!forest) {
    args.add("--bundle", "hg.bundle");
}

args.add("--template", MercurialChangeSet.CHANGELOG_TEMPLATE);

args.add("--rev", getBranch(env));