在基于buildout的Plone站点中使用非最新的git checkout

时间:2015-12-15 17:29:09

标签: git plone buildout

我有一个基于buildout的Plone站点,具有高效的开发/测试实例。我注意到我目前在构建开发实例时遇到了问题,可能与问题有关的差异是在两个实例中“开发”的不同版本的产品。

不幸的是旧版本是有效的...所以我尝试将该软件包重置为旧版本并重建:

cd /path/to/my/instance
. bin/activate
cd src/plone.formwidget.recaptcha/
git checkout a0c334406c0d991f4facedce0334ab5566729b2f
cd -
bin/buildout buildout:newest=false

不幸的是,buildout试图拉动并失败:

mr.developer: git pull of 'plone.formwidget.recaptcha' failed.
mr.developer: You are not currently on a branch. Please specify which
mr.developer: branch you want to merge with. See git-pull(1) for details.
mr.developer:
mr.developer:     git pull <remote> <branch>
mr.developer:
mr.developer:

好吧,我不希望发生git pull;所以我查找了mr.developer选项以帮助并将mr.developer:auto-checkout=添加到命令行。

还有git pull。我怎么能抑制它?那么将软件包固定到所需版本的推荐方法是什么?

2 个答案:

答案 0 :(得分:6)

使用mr.developer,您可以将结帐修复为固定版本:

my.package = git git://some.url.git rev=abcdef

这个my.package始终是abcdef的pointint,可以是分支或修订版。

对于其他版本控制系统,请参阅mr.developer docs。

答案 1 :(得分:1)

我无法帮助你完成构建过程,但你可以做一个简单的黑客攻击来防止失败。

git checkout -b temp a0c334406c0d991f4facedce0334ab5566729b2f
git branch temp2 temp
git branch --set-upstream-to=temp2 temp

由于两个分支都指向同一个地方,因此您将遇到任何问题。

<强>买者 如果您需要再次执行此操作,则需要重做两个假分支。删除它们可能更容易(无论如何都应该这样做。)

git branch -D temp temp2