Hg Mercurial在谷歌硬盘问题上的立场

Hg Mercurial在谷歌硬盘问题上的立场,mercurial,Mercurial,我在Google Drive文件夹中有一个存储库。我用它作为基本回购协议,在少数几台计算机上使用。在所有这些中使用 它过去工作得很好,但上周我遇到了一个我不明白的问题:在正常运行(本地通信、hg推送、其他本地回购的hg拉送…)时,我与Google Drive用户发生了一个错误。我解决了这个问题,从那以后,地方回购协议出现了分歧。我尝试过很多HG技巧(恢复、退出、创建新的本地回购…),但是。。。事实是: 在计算机1中:我创建了一个新的克隆,最后一个版本是314 在计算机2中:我创建了一个新的克隆

我在Google Drive文件夹中有一个存储库。我用它作为基本回购协议,在少数几台计算机上使用。在所有这些中使用

它过去工作得很好,但上周我遇到了一个我不明白的问题:在正常运行(本地通信、hg推送、其他本地回购的hg拉送…)时,我与Google Drive用户发生了一个错误。我解决了这个问题,从那以后,地方回购协议出现了分歧。我尝试过很多HG技巧(恢复、退出、创建新的本地回购…),但是。。。事实是:

  • 在计算机1中:我创建了一个新的克隆,最后一个版本是314

  • 在计算机2中:我创建了一个新的克隆,最后一次版本是311。最后3 缺少修订!!!这怎么可能

显然Google驱动器文件夹同步正确(我测试了它在计算机1中创建一个新的虚拟文件,并将其同步到计算机2)


这怎么可能?有什么提示吗?建议?

自答问题。以防它对其他人有用:

@Lasse Vågsæther Karlsen的评论绝对正确:

在任何情况下都不要使用任何类型的文件级别 同步工具,如Dropbox、Google Drive、OneDrive、, Jottacloud或任何其他此类工具,以同步分布式版本 控制计算机之间的存储库。[……]


您应该将存储库移出GoogleDrive,修复它,然后在某个可以推/拉操作的地方设置一个适当的分布式版本控制存储库

完成了!从一个分散的Google驱动器文件夹驱动器克隆到一个全新的repo(配置为HG Mercurial repo)。这是非常直截了当的

然后从Bitbucket重新克隆回使用回购协议的所有计算机。谷歌硬盘文件夹被废弃


现在所有的回购克隆都恢复正常了。。。我想知道为什么我以前没有用这个旧回购协议来做这件事。实际上,我意识到这是必须的。

您是否使用Google Drive位置作为本地存储库?或者您只是将其用作其他位置可以同步的集中式回购?请检查变更集ID,而不是修订号。变更集ID看起来像5760fdcf0793,并且保证是唯一且不变的。版本号可能因克隆而异,这是正常的。@DaveInCaz我将其用作集中式repo。然后我在本地文件夹上克隆本地repo。修订号可能会有所不同,对吗。但是提交评论应该保持不变。这就是为什么我知道我错过了最后三次修订。我还不明白为什么……在任何情况下都不要使用任何类型的文件级同步工具,如Dropbox、Google Drive、OneDrive、Jottacloud或任何其他此类工具来同步计算机之间的分布式版本控制存储库。这些工具只检测文件级别的冲突,而不将存储库(文件和文件夹的集合)视为需要具有完整性的单元。基本上,在Google Drive更新存储库之前,您已经在另一台计算机上提交或更改了存储库中的某些内容。您应该将存储库移出Google Drive,进行修复,并对其进行完整性检查,然后在某个地方建立一个合适的分布式版本控制存储库,你可以推/拉。据我所知,你从Google Drive切换到Bitbucket,开始在Bitbucket上分发你的代码,对吗@MarcMCorrect@alper。