Hg不会自动与服务器同步



我在https://bitbucket.org/并使用TortoiseHg将其克隆到本地机器中的文件夹中。我可以添加文件提交文件,但我发现它们永远不会在Bitbucket的服务器上更新。经过一番摆弄,我发现有这个同步选项。我不明白的是,为什么我必须按下Synch。如果我想承诺,那么它就应该承诺。

如果它没有立即与删除服务器同步,它将存储在哪里。

注意: 我正在试用TortoiseHg和Mercurial,同时在SubVersion上有丰富的经验

提交时,您将提交到本地存储库,即项目根目录中的.hg目录。。要与远程存储库同步,您需要明确地推送您的更改。DVCS就是这样工作的——它与SVN不是同一个模型。

分布式版本控制系统的一个关键功能是可以进行本地提交。这意味着当您按下"提交"时,新的提交不会离开您的机器,它只是存储在本地。

这有一些直接的后果:

  • 你可以在离线时工作,例如在火车上或飞机上

  • 提交非常快:在Mercurial中,创建一个涉及n文件的新提交(通常称为变更集)意味着向n+2个文件添加几个字节。

  • 你可以改变主意:由于你没有与任何人共享新的变更集,你可以从本地机器上删除它,而不会出现问题

它也有一些间接的后果:

  • 由于提交速度很快,人们往往会进行更多的提交。提交通常比您在集中式系统中看到的更细粒度,这使得查看更改更容易

  • 由于提交是本地的,所以人们经常进行并发工作。当你和我基于相同的初始版本进行一次或多次提交时,就会发生这种情况:

                    [a] --- [b] --- [c] <-- you
                   /
    ... [x] --- [y]
                   
                    [r] --- [s]         <-- me
    

    自从我们都开始基于变更集y的工作以来,历史实际上已经分叉了。为了实现这一点,我们必须能够合并两个分叉。因为这种情况经常发生,您会发现Mercurial对合并有非常强大的支持。

因此,通过将提交的创建与提交的发布解耦,您可以获得一些显著的优势。

最新更新