通过多个分支将DARC回购转换为git
是否有一种方法可以将darcs项目转换为多个项目 分支(即,两个以上的DARC存储库包含不同但 相关的补丁集)到单个git存储库,以便 darcs回购转让给git回购中的一个独立分支机构 考虑的解决办法: (1) darcs convert命令提供两个 将DARC导出到git的方法: a。一次性出口:通过多个分支将DARC回购转换为git,git,version-control,merge,version-control-migration,darcs,Git,Version Control,Merge,Version Control Migration,Darcs,是否有一种方法可以将darcs项目转换为多个项目 分支(即,两个以上的DARC存储库包含不同但 相关的补丁集)到单个git存储库,以便 darcs回购转让给git回购中的一个独立分支机构 考虑的解决办法: (1) darcs convert命令提供两个 将DARC导出到git的方法: a。一次性出口: $ cd repo $ git init ../mirror $ darcs convert export | (cd ../mirror && git fast-import)
$ cd repo
$ git init ../mirror
$ darcs convert export | (cd ../mirror && git fast-import)
这仅转换一个回购协议、一个分支
b。使用marksfiles进行增量导出(以维护
darcs存储库):
使用(b),如果我只有一个darcs回购协议作为分支,我可能希望
继续
$ cd ../mirror
$ git branch branch1
$ git checkout branch1
$ cd ../repo
$ darcs pull ../repo-branch1
然后重复darcs convert export
步骤
但对于另外两个分支,这似乎不太可能起作用,
因为拉../repo-branch2会将补丁合并在一起
branch1和branch2的
(2) Darcs桥[2]。
不完整,自2013年以来未维护,且“仍命名为DARC快速转换”,仅建议一次性使用
任意方向的转换(DARC->git或git->DARC)
DARC桥接页本身[2]
建议使用darcs 2.10中内置的“darcs convert”命令
但是,它可以处理分支(需要一些工作):
参见[2]中的用例2:
$ git init my_project_git
$ darcs-fastconvert export myproject myproject-branch1 |
(cd my_project_git && git fast-import && git checkout master)
这将创建具有两个分支的git回购:
(darcs)myproject->(git)硕士
(darcs)myproject-branch1->(git)myproject-branch1
具有公共前缀,但未检测到合并
[2]中的用例5描述了一种更改分支列表的方法
darcs桥正在管理
[2]中的“限制是什么?”和“什么需要工作?”似乎在说
(我很难理解)DARC合并未正确转换
除非使用特殊标记,否则必须在
合并,所以现在我不可能这样做
(3) Darcs fastconvert(Darcs桥接器的基础):
根据[2],未管理多个分支机构
(4) DARC到git:根据[2],不支持分支
(5) darcs2git:根据[2],不支持分支
(6) 裁缝:根据[2],不容易支持分支,
已停止使用DARC fastconvert
参考资料:
[1] DARC转换:)
[2] Darcs桥接:)通过修改目标分支的简单脚本,从
Darcs convert export
导入git fast导入格式输出。在大多数情况下,您可以这样做:
darcs转换导出| sed的| ^commit refs/heads/master$| commit refs/head/your branch | |(cd../mirror&&git快速导入)
如果您担心您的文件或其他回购数据可能包含精确的字节字符串
\n提交参考文件/heads/master\n
在某个地方,您的分支更改脚本将需要查找
数据
命令,并在未更改的情况下传递它们。这也不太难-有关数据
命令格式的详细信息,请参阅,但是您需要用您最喜欢的编程语言编写一个简单的程序。提供另一个选项:将DARC存储库导出到单独的Git存储库中,然后选择一个Git存储库,并将其他的作为远程存储库添加到其中。然后获取每个分支并使用远程主分支。除非共享所创建Git存储库的对象存储,否则此方法会浪费磁盘空间;如果这与您有关,请参阅以获取提示。您是否看过Repositor?
$ git init my_project_git
$ darcs-fastconvert export myproject myproject-branch1 |
(cd my_project_git && git fast-import && git checkout master)