【问题标题】:Doesn't TortoiseHg Auto Synch with ServerTortoiseHg 不与服务器自动同步
【发布时间】:2011-06-06 11:59:55
【问题描述】:

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

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

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

【问题讨论】:

    标签: mercurial synchronization tortoisehg bitbucket


    【解决方案1】:

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

    【讨论】:

    • @Gunner 必须是这样,否则就不是 DVCS - 这里的关键是 D == "distributed"。你读过hgbook.red-bean.com的Mercurial Book吗?
    • 不,但我知道了,很快就会这样做:)
    【解决方案2】:

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

    这有一些直接的后果:

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

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

    • 您可以改变主意:由于您没有与任何人共享新的变更集,您可以毫无问题地将其从本地计算机中删除

    它也有一些间接的后果:

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

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

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

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

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

    【讨论】:

    • 感谢您提供清晰的图片:)。只是想知道,如果我们两个人对同一个文件进行频繁的小改动,这会不会增加碰撞的机会。通过即时提交到服务器,用户将更早地意识到,并且只需要进行很小的更改。
    • 在不那么重要的事情上,它是否称为“Fork”,因为它看起来像您在图表中显示的类似 Fork 的结构 :) ??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2019-01-16
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多