TortoiseHg不与服务器自动同步

时间:2011-06-06 11:59:55

标签: mercurial synchronization tortoisehg bitbucket

我在https://bitbucket.org/上创建了一个存储库,并使用TortoiseHg将其克隆到我本地计算机的文件夹中。我能够添加文件提交文件,但我发现它们永远不会在Bitbucket上的服务器上更新。通过一些摆弄,我发现有这种同步选项。我没有得到的是,为什么我必须按下同步。如果我打算提交,那么它应该提交。

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

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

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:4)

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

这有一些直接后果:

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

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

  • 您可以改变主意:既然您没有与任何人共享新的变更集,您可以毫无问题地从本地计算机上删除它

它还有一些间接后果:

  • 因为提交很快,人们往往会提交更多提交。提交通常比您在集中式系统中看到的更精细,这使得更容易查看更改

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

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

    因为我们都基于变更集y开始工作,所以历史记录已经有效地分叉了。为此,我们必须能够合并两个叉子。因为这种情况一直发生,你会发现Mercurial非常强大地支持合并。

因此,通过将提交的创建与提交的发布分离,您将获得一些显着的优势。