如果我克隆存储库并重命名,会有任何副作用吗?

时间:2019-07-19 07:48:42

标签: mercurial

我有中央Merurial存储库服务器。我在本地系统上克隆了repoA 在中央服务器上启动了新的repoB。将repob复制到本地。将所有内容从repoA复制到repoB,提交并推送到repoB(中央服务器)

现在我在这个新的repoB上拥有来自repoA的所有变更集历史记录 有必要这样做,因为在同一repoA上有两个应用程序代码,要分开它,我做了上述实验。它正在工作。

我的问题是这样做是否有副作用,或者有更好的方法(推荐的方法),请提出建议,谢谢!

1 个答案:

答案 0 :(得分:0)

将存储库克隆到本地PC时,该存储库位于文件夹中。该文件夹的名称通常是人们引用“克隆名称”或“存储库名称”的方式。

除此之外,文件夹名称本身没有什么意义,甚至都不是Mercurial存储库的一部分。

听起来您已经执行了其他几个步骤,但是基本上,如果将存储库A重命名为B不会有太大的区别(但请参见下面的注释)。


您不需要使用hg clone来克隆存储库。您可以按字面意思复制整个存储库文件夹,然后复制就可以了。当您使用clone与操作系统文件副本时,我知道的一个区别是,克隆将指向您克隆自的存储库(用于推/拉操作)。该副本将指向原始源。 (请参阅以下有关一些相关影响的注释。)


通过重命名存储库文件夹可能导致一些问题的一种情况是,如果您已从FROM克隆。例如:您有本地存储库A。您将A克隆到B。现在B中配置数据的内部是对包含A的文件夹路径的引用。如果将A重命名为A1,则该路径显然是断开的。

在这种情况下,您可以轻松地编辑B/.hg/hgrc文件并修改以default=开头的行以更正路径。


根据您的问题,听起来好像您将一堆东西从一个仓库复制到了另一个仓库。大概还包括.hg文件夹。一般来说,我建议避免使用该文件夹的内容,并始终谨慎使用该文件夹。

尽管从技术上讲其中一些是人类可读的,但将其视为黑匣子会更简单,更安全,否则您可能会损坏存储库。偶尔会有一些例外情况(例如hgrc),但它们之间相差无几。

当然,如果您只是想学习它的工作原理,那么一定要尝试一下,看看会发生什么! Mercurial的一项重要功能是能够复制回购,将其弄乱并在完成后将其丢弃。