首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有将.cvsignore文件转换为.gitignore文件的规定?

是否有将.cvsignore文件转换为.gitignore文件的规定?
EN

Stack Overflow用户
提问于 2014-06-03 15:58:24
回答 5查看 2.3K关注 0票数 10

我使用cvs2svn-2.4.0进行CVS到Git的迁移。这不包括从.cvsignore到.gitignore的转换。如何将.cvsignore文件转换为.gitignore文件?

EN

回答 5

Stack Overflow用户

发布于 2014-06-03 21:31:49

下面是一个Bash脚本,它将查看目录树中的.cvsignore文件,并将它们的模式添加到顶级.gitignore文件中。它期望.cvsignore文件每行只包含一个模式(显然,.cvsignore文件允许在一行中包含多个模式):

代码语言:javascript
运行
复制
for f in `find . -name .cvsignore | sort `; do
    dir=`dirname $f | sed -r 's:^\.::'`
    cat $f | awk '{print "'$dir'/"$1}' >> .gitignore
done

此外,您还必须添加来自http://ximbiot.com/cvs/manual/cvs-1.11.23/cvs_18.html#SEC191的默认CVS忽略模式。

票数 8
EN

Stack Overflow用户

发布于 2014-06-03 19:07:10

您不能简单地将.cvsignore复制到.gitignore -这两种格式是不相同的(除非它是顶级目录中的一个简单的文件列表。

例如,看看Eclipse's guide for migrating to Git

.cvsignore和.gitignore在语义上有细微的差别,所以你不应该在迁移到

时只重命名这些文件。至少在.gitignore中的每一行前面加上一个"/“,以确保一个模式不会在所有子文件夹中都匹配。

好的做法是直接在Git仓库的顶级文件夹中创建一个.gitignore,然后添加//bin/或//*/bin/ (取决于repo布局)。然后,您可以从项目级忽略文件中删除bin条目(如果忽略文件是唯一的条目,还可以删除该文件)。

票数 3
EN

Stack Overflow用户

发布于 2017-09-09 15:43:24

find命令应该直接重命名,尽管格式有些相同,但有一些细微的差异,您稍后会想要更改这些差异

总体而言,这是从CVS迁移到GIT的一个良好开端,至少在开始时是这样。我有成百上千个这样的.cvsignore文件,我在cvs2git转换之后执行了这个操作

代码语言:javascript
运行
复制
find . -name '*.cvsignore' -print -exec rename ".cvsignore" ".gitignore" {}  \;

不要忘记,CVS在CVSROOT模块中有一个全局忽略文件,所以通过转换本地.cvsignore,您可能会错过一些在CVS中拥有的文件

您可以通过执行以下操作来获得这些全局类型

cvs签出CVSROOT,您将在"cvsignore“文件中找到它们

代码语言:javascript
运行
复制
checkoutlist  config  cvsignore    editinfo  modules  rcsinfo  verifymsg
commitinfo    CVS     cvswrappers  loginfo   notify   taginfo

然后我建议将这些全局文件放到根文件夹.gitignore中

注意:重命名有不同的版本(内核、perl)如果rename是基于perl的正则表达式版本,命令将失败,请确保使用正确的重命名

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24009919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档