我有一个基于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
。我怎么能抑制它?那么将软件包固定到所需版本的推荐方法是什么?
答案 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