我们正在将具有两个分支的cvs存储库(一个是MAIN,另一个是FEATURE,其余都可以忽略)转换为mercurial存储库。
我们使用内置工具转换为以下命令。
hg转换cvs_source_dir hg_new
其中cvs_source_dir =更新目录,只有来自CVS的Feauture分支更改。 hg_new = mercurial存储库的新名称。
转换后,hg_new repo包含CVS的所有历史数据。 当我们进行hg更新时,它指向MAIN分支代码。
如果我们将其更新为FEATURE以根据CVS从FEAUTURE分支获取代码,则使用
hg update FEAUTURE ,所有在FEAUTURE分支中没有修订的文件都会被删除。
如何解决这个问题?
答案 0 :(得分:0)
如果我理解正确,分支FEATURE没有分支MAIN中存在的某些文件,那么当你hg up
分支FEATURE时,这些文件就会丢失。
我认为这是一项功能hg up
在您提交时将您的工作目录置于状态(-c
将检查未提交的更改),因此分支FEATURE中不存在的文件将消失
此post显示了从另一个分支获取所需文件的方法。如果您有一个文件列表,请迭代列表并将每个文件放到当前的工作目录中。
[更新] 一个图表,显示如何使其正确:
(1)您当前的状态
A -- B -- C -- D (MAIN)
\
- E -- F -- G (FEATURE, missing files)
(2)第1步:
A -- B -- C -- D (MAIN)
\
- E -- F -- G (FEATURE, missing files)
\
-H (FEATURE, a head adding all missing files from A)
(3)第2步:
A -- B -- C -- D (MAIN)
\
- H - (rebase) - E' -- F' -- G' (FEATURE, missing files)