Mercurial 什么';复制.hg文件夹和使用克隆有什么区别?

Mercurial 什么';复制.hg文件夹和使用克隆有什么区别?,mercurial,Mercurial,假设我需要创建x存储库,它可以从一个中央存储库进行推拉。克隆所有这些存储库与将.hg文件夹从中央存储库复制x次到空文件夹有实际区别吗?我能想到的一个区别是,复制不是原子操作: 你不能确定你复制的回购协议没有被修改 编辑:文章实际上提到: 在某些情况下,您可以使用完整的硬链接克隆存储库和工作目录 这是克隆的最快方法,但并不总是安全的 操作不是原子的(请确保在操作过程中不修改REPO,由您决定) 您必须确保编辑器断开硬链接(Emacs和大多数Linux内核工具都这样做) 此外,这与将元数据放在.

假设我需要创建x存储库,它可以从一个中央存储库进行推拉。克隆所有这些存储库与将.hg文件夹从中央存储库复制x次到空文件夹有实际区别吗?

我能想到的一个区别是,复制不是原子操作:
你不能确定你复制的回购协议没有被修改


编辑:文章实际上提到:

在某些情况下,您可以使用完整的硬链接克隆存储库和工作目录

这是克隆的最快方法,但并不总是安全的

  • 操作不是原子的(请确保在操作过程中不修改
    REPO
    ,由您决定)
  • 您必须确保编辑器断开硬链接(Emacs和大多数Linux内核工具都这样做)
  • 此外,这与将元数据放在
    .hg
    目录下的某些扩展不兼容,例如
    mq

是的,有一个区别。如果两个存储库位于同一文件系统上,克隆将尝试创建硬链接。(不幸的是,这在windows上不起作用)

另一个细微的区别-如果执行复制,原始存储库和新存储库将具有相同的父存储库。使用克隆时,新存储库的父存储库将是原始存储库

i、 e.在.hg/hgrc文件的[path]部分

原始存储库(/repo/hg/Original)

复制的存储库

[paths]
default = /repo/hg/parent
[paths]
default = /repo/hg/original
克隆存储库

[paths]
default = /repo/hg/parent
[paths]
default = /repo/hg/original

事实上,它确实可以在最近的NTFS文件系统上工作——我认为NTFS 5是我最需要的。肯定能与Win7一起使用,相当肯定它也能与Vista一起使用,但不需要测试。