我在本地(23-28)提交了一系列变更集,然后我意识到我想回到第25版,所以我跑了"hg up -r 25"回去.然后我从那里开始工作并提交了一些变更集.现在我已准备好将我的更改推送到服务器,但是当我尝试这样做时,它会抱怨"abort:push在分支上创建新的远程头部'默认'!".我以为其他人可能已经提交到存储库,所以我做了一个hg pull,但没有得到任何改变.
这是我正在使用的修订树
23
|
24
|
25
/ \
26 29
| |
27 30
| |
28 31
|
32
|
33
|
34
|
35
Run Code Online (Sandbox Code Playgroud)
是否可以删除修订版26,27和28?我怎样才能解决问题,以便我可以毫无错误地运行"hg push"?我是否应该使用其他命令返回修订版25?
让我在拉斯的回答中发出不同意见.Mercurial是一个关于构建不可变历史的系统.想想一位科学家在他或她的实验室工作书中用笔在数字页面上工作.一切都很重要,即使是你希望你没有写的东西,也不想在这一秒.默认情况下,strip命令未启用,原因是它违反了不可变性,这是一个多变的目标.
解决这个问题的更多"Mercurial"方法是将26合并为35,完全选择35中的选项,这样你就可以回到一个头.然后你的推动仍然只有一个头,但所有的历史都保留了下来.
或者,您可以选择'hg push -r 35',它不会给您任何警告或错误,也不需要-f,因为您将只用一个头离开repo repo.
strip没有任何问题,但它不是Mercurial中传统工具集或思维模式的一部分.
| 归档时间: |
|
| 查看次数: |
610 次 |
| 最近记录: |