如何删除TortoiseHg中的意外分支?

Mic*_*ens 21 mercurial tortoisehg

(我是TortoiseHg的相对新人,所以忍受我:-)我在两台机器上使用TortoiseHg与我的远程源库进行通信.我在一台机器上进行了更改,提交了它们,并尝试将它们推送到远程存储库但是我忘了先拉一下来获取最新的代码.推送给了我几行输出,表明我可能忘记先拉(真的!)并提到类似"中止:推动创建新的远程分支......"之类的东西.

所以我做了一个pull,它在存储库资源管理器中添加了几个节点到我的图形的头部.问题是我尝试做的推送现在显示为存储库资源管理器中的一个分支.从服务器端(codeplex)看,它没有显示我尝试推送的迹象,表明这个意外分支仍在我的机器上是本地的.

我怎么能删除这个意外的分支?我尝试在图表中选择该节点,然后进行"恢复",但它似乎没有做任何事情.我想知道在本地机器上丢弃我的目录树是否最简单,并从服务器上做一个全新的,干净的拉动......?

sth*_*sth 17

首先确保您已提交所有本地更改.然后通过调用hg merge并提交结果来合并分支.

这应该会让你回到一个分支,重新统一两个脑袋.

  • @msorens:我同意这些人的意见,就这样离开吧.:)但是,我确信很多人都会提出其他答案,建议你使用'hg strip'或'hg clone -r'或者histedit或mercurial队列.任何这些都可以做到,但是当你看到它们有什么麻烦时,你总会说,"我无法相信没有更简单的方法可以做到这一点",每个人都会说"这是因为它不是应该很容易." 这是通常的模式,我们都经历过.哲学上多变的是一种不可磨灭的工作记录,有点像科学家总是用笔写作. (8认同)
  • 这听起来像分支仍然存在,是吗?我希望完全删除分支,因为我还没有在服务器上永久删除它. (7认同)
  • @msorens:我同意某事.使用Mercurial一段时间之后,您意识到尝试保持修订历史记录的干净利润并不值得.在您的服务器和本地存储库之间更改集是不按顺序的,或者您有一个短命的匿名分支(如果您有多个人在项目上工作,这两者都是预期的)并不重要). (3认同)

Pau*_*rtz 7

我有一个我不想要的分支,但发现我无法合并分支(或者我很难弄清楚如何合并),因为它包含基于文件名大小写更改的冲突.

最终,我决定hg commit --close-branch.由于分支机构只存在于我的本地仓库中,而不是我克隆过的仓库,后来hg push甚至懒得将封闭的分支推到主仓库!很方便.在那一点上,我所要做的就是完全消除它是删除我的本地仓库并从"主"重新克隆.


mhe*_*384 5

执行"合并"并选中"放弃合并目标(其他)修订版中的所有更改".当然,在单击"合并"按钮之前,应确保显示为合并目标的目标确实是要丢弃的目标.