Raf*_*olo 12 mercurial mercurial-phases
这可能看起来很矛盾,我知道秘密更改集应该是私有的,但如果我想备份这些秘密更改集怎么办?
我平行地与一些分支机构合作,有时候我想推一个分支机构,而不是其他分支机构.为了达到这个目的,我在不同的克隆工作,但我讨厌这个.
所以现在mercurial有阶段,我可以建立秘密分支,并在同一个存储库中拥有所有内容.问题是在秘密分支的开始和它的发布之间,我想要备份那些秘密变更集(我在另一台机器上有一个克隆,只是为了保存我的备份以防万一我的本地仓库或我的机器发生了什么).
有没有办法做到这一点或我的工作流程是完全错误的?
无需标记任何秘密。如果只想推送一个分支,请使用:
hg push -r REV
Run Code Online (Sandbox Code Playgroud)
这只会推动REV及其祖先。
Secret对Mercurial修补程序队列修订很有用,因为无论如何都无法推送它们,并且它可以防止本地克隆复制它们。
草稿非常适合跟踪未进行的更改。如果仍要备份它们,则推动它们会将其翻转为“公开”,但是您可以使用以下方法将它们重置为草稿(与另一个存储库相比):
hg phase -fd 'outgoing(URL)'
Run Code Online (Sandbox Code Playgroud)
(对于默认的推送仓库,URL可以为空白)。
似乎阶段仍然相对较新,并且某些工作流程(例如此)似乎尚未包含在内。截至 2013 年 3 月 19 日,我相信您可以执行此操作的唯一方法是手动将阶段从秘密更改为公开。
您可以从命令行使用这些命令:
for /f "delims=" %a in ('hg log --template "{rev} " -r "secret()"') do @set secret=%a
hg phase -d %secret%
hg push -f
hg phase -sf %secret%
Run Code Online (Sandbox Code Playgroud)
这不会更改您要推送到的存储库上对秘密的提交,我尝试更改推送来执行此操作(但不成功):
hg push -f --remotecmd hg phase -sf %secret%
Run Code Online (Sandbox Code Playgroud)
提交必须完全匹配才能remote hg command工作,但无论如何我都无法在远程存储库上更改它。
=================================================== =========
如果您想使用像 TortoiseHG Workbench 这样的 GUI,那么您现在必须手动完成这一切(在您想要的任何存储库上更改 GUI 中的阶段)。抱歉,希望我们能尽快找到更好的解决方案!
| 归档时间: |
|
| 查看次数: |
2671 次 |
| 最近记录: |