使用cvs2git从CVS迁移到GIT后的空关键字字段

问题描述 投票:0回答:1

我正在将许多存储库从CVS迁移到GIT。我首先使用了cvs gitimport,但是它不能正常工作。 cvs2git可以(几乎)正常工作。不幸的是,有一个问题在cvs gitimport中起作用,而在cvs2git中不起作用(这对我很重要)使用cvs2git迁移后,包含关键字(在特定文件中)的字段为空:


$ Header $

$ Revision $

$ Author $

$ Date $

“文件名”修订:1.2


我尝试了以下不同的配置:ctx.revision_collector,ctx.revision_reader,_keyword_handling,但效果仍然相同。

我使用的主要命令:

cvs2git --blobfile = cvs2git-tmp / $ {module} -tmp / git-blob.dat --dumpfile = cvs2git-tmp / $ {module} -tmp / git-dump.dat --username = migrationuser- encoding = ascii --encoding = utf8 --encoding = cp1250 --encoding = iso8859_2 --fallback-encoding = ascii --retain-conflicting-attic-files $ {module}

git --bare初始化“项目名称”cd“项目名称”cat ../../cvs2git-tmp/git-blob.dat ../../cvs2git-tmp/git-dump.dat | git快速导入git branch -D TAG.FIXUPgit gc --prune =现在git repack -a -d -f

有人设法解决这样的问题吗?预先感谢您的回答

git svn migration cvs cvs2git
1个回答
0
投票

我使用cvsconvert中的cvs-fast-export程序

[它主要扩展关键字,因为CVS用户希望它们被扩展(我不确定它是否处理$CVSHeader$LocalKeyword中定义的自定义CVSROOT/config,但我会尽快对其进行测试)。

一旦转换为Git,IFF您要继续使用按文件扩展关键字,那么您可以考虑使用Git的$Format:$功能,该功能通过为需要扩展的所有文件设置export-subst属性并生成用git-archive(1)发布。请注意,只有在使用git archive创建发行版时,这些内容才会展开,但通常情况下它们还是最有用的。

例如,我用下面的内容替换了我以前出现的$Id$$CVSHeader$(适用于必要的注释或字符串常量语法,当然还有实际的项目名称和文件路径):

#ident  "@(#)PROJECT:FILEPATH:$Format:%D:%ci:%cN:%h$"
© www.soinside.com 2019 - 2024. All rights reserved.