我现在有一个处于奇怪状态的Mercurial存储库.这就是TortoiseHG的样子:

我不认为这是可能的.修订版54的父级为"-1(000000000000)"(即没有).显然我对Mercurial还有一些不了解的事情,任何人都可以让我知道这意味着什么 - 以及进入这种状态必然会发生什么.据我所知,它只是推送和拉出它的东西 - 并没有人使用任何古怪的扩展.
修订版54和55只是添加标签,但如果我'更新-C'到版本54,我最终只能使用.hgtags文件.
我从修订版53中克隆了一下来解决这个问题.但我宁愿理解这里发生的事情,所以我可以避免它再次发生.
每个变更集都有零个,一个或两个父变更集:
- 如果提交是合并,它有两个父更改集.
- 如果变更集是存储库中的根,则它没有父级.
存储库中可能有多个根(通常只有一个),每个根代表一个分支的开头."更新"回到已经有子项的变更集,更改文件然后提交会创建一个新的子变更集,从而启动一个新的分支.分支可以命名.
也许这就是你做的:
要么:
--close-branch选项,Ry4an(一位真正的Mercurial专家;))编写并评论:
--close-branch除了从列表中隐藏分支之外什么都不做,并且在下次提交该分支时撤消它.它不会创建多个根.VonC在他的诊断中是正确的,多头.
但是,'update'和'commit'的组合不会让你进入那种状态.
为了得到多个根,人们通常会hg pull从回购中做一个' '并用来--force覆盖"unrelated repositories"警告.
("无父",表示父ID设置为00000,请参阅"幕后":
alt text http://hgbook.red-bean.com/read/figs/revlog.png)
另一种查看方式是hg update null在提交rev之后是否这样做。53.例如,考虑以下顺序:
hg init foo
# create some files
hg addremove
hg commit -m "Revision 0"
# edit, edit, edit
hg commit -m "Revision 1"
hg update null
hg tag -m "Create tag v1.0.0.0" "v1.0.0.0"
Run Code Online (Sandbox Code Playgroud)
此时,hg log版本2的父级将显示为-1:0000000000。由于hg update null清除了工作目录,因此其中只有一个文件.hgtags(就像您看到的一样)。
发行前是否还有其他标签。53?如果我的猜想是正确的,那么它们将不会出现在您的版本中。54 .hgtags。
| 归档时间: |
|
| 查看次数: |
2490 次 |
| 最近记录: |