我有中央Merurial存储库服务器。我在本地系统上克隆了repoA 在中央服务器上启动了新的repoB。将repob复制到本地。将所有内容从repoA复制到repoB,提交并推送到repoB(中央服务器)
现在我在这个新的repoB上拥有来自repoA的所有变更集历史记录 有必要这样做,因为在同一repoA上有两个应用程序代码,要分开它,我做了上述实验。它正在工作。
我的问题是这样做是否有副作用,或者有更好的方法(推荐的方法),请提出建议,谢谢!
答案 0 :(得分:0)
将存储库克隆到本地PC时,该存储库位于文件夹中。该文件夹的名称通常是人们引用“克隆名称”或“存储库名称”的方式。
除此之外,文件夹名称本身没有什么意义,甚至都不是Mercurial存储库的一部分。
听起来您已经执行了其他几个步骤,但是基本上,如果将存储库A
重命名为B
不会有太大的区别(但请参见下面的注释)。
您不需要使用hg clone
来克隆存储库。您可以按字面意思复制整个存储库文件夹,然后复制就可以了。当您使用clone
与操作系统文件副本时,我知道的一个区别是,克隆将指向您克隆自的存储库(用于推/拉操作)。该副本将指向原始源。 (请参阅以下有关一些相关影响的注释。)
通过重命名存储库文件夹可能导致一些问题的一种情况是,如果您已从FROM克隆。例如:您有本地存储库A
。您将A
克隆到B
。现在B
中配置数据的内部是对包含A
的文件夹路径的引用。如果将A
重命名为A1
,则该路径显然是断开的。
在这种情况下,您可以轻松地编辑B/.hg/hgrc
文件并修改以default=
开头的行以更正路径。
根据您的问题,听起来好像您将一堆东西从一个仓库复制到了另一个仓库。大概还包括.hg
文件夹。一般来说,我建议避免使用该文件夹的内容,并始终谨慎使用该文件夹。
尽管从技术上讲其中一些是人类可读的,但将其视为黑匣子会更简单,更安全,否则您可能会损坏存储库。偶尔会有一些例外情况(例如hgrc
),但它们之间相差无几。
当然,如果您只是想学习它的工作原理,那么一定要尝试一下,看看会发生什么! Mercurial的一项重要功能是能够复制回购,将其弄乱并在完成后将其丢弃。