首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SubGit和.gitattributes

SubGit和.gitattributes
EN

Stack Overflow用户
提问于 2015-10-08 10:53:51
回答 1查看 1.4K关注 0票数 2

我正在将一个SVN存储库导入到Git中,并且我有很多带有svn:eol-style集的文件。SubGit读取这些属性并为每个文件生成一个.gitattributes行。

有没有一种方法告诉它对每种类型的文件(即*.java text*.java text eol=lf )使用一个单独的行,因为我们有一个样式指南规则,它要求这样做?

我试图在导入之前将info/attributes添加到存储库中,但是生成的.gitattributes中没有任何更改。

有办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-08 11:17:30

目前还没有办法为初始翻译定义*.java test eol=lf这样的默认规则,但如果稍后在Git分支中将.gitattributes更改为用一个*.java test eol=lf规则替换所有每个文件行,则使用svn:eol样式=LF的所有后续*.java test eol=lf文件都不会生成新行,但是带有其他svn:eol样式值的*.java test eol=lf文件将产生额外的行作为*.java test eol=lf规则的例外。

此外,还建议使用*.java test eol=lf规则,因为当您在Git中创建.gitattributes文件时,.gitattributes规则被隐式地应用于它,因此您新创建的Java文件将自动拥有"eol=lf“,当您将它推到Git时,SubGit会将其转换为svn:eol样式=LF。因此,这个规则的作用与SVN自动属性相同。

SubGit根本不考虑info/attributes文件,因为它不是版本化的,只存在于本地机器上,而SubGit则在服务器端级别上工作。但是,如果只需要在一台计算机上使用info/attributes,则可以在本地计算机上使用它来覆盖.gitattributes

我还要指出,在更改.gitattributes文件时,您应该小心。当您将这样的更改推送到SVN时,它将更新有效"eol“属性值已被更改的所有文件的svn:eol样式。

还有一个注意事项:当您为带有混合EOLs的文件设置"eol“属性时要小心:首先在Git blob级别将其EOLs更改为LF,或者(更容易的)将svn:eol-style属性设置在SVN一侧,因为当您设置该属性时,Subversion会自动修复文件内容,但Git不会这样做。

您已经提到了两种模式,*.java text*.java text eol=lf,但它们实际上是不同的。第一种是默认* text=auto !eol规则的特殊情况,除非该Java文件包含二进制字符(因为它不包含"eol“属性,主*-规则将其设置为!eol,对应于svn:eol-风格=本地的);因此添加时将忽略它。第二个将为添加到Git的每个Java文件设置svn:eol样式=LF。

最后,在未来的版本中,我们( SubGit团队)计划添加一种可能性,为初始翻译指定默认的*.java test eol=lf规则,或者根据每个扩展统计数据推断它,但是现在您应该手动将这一行添加到您使用的每个Git分支。

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

https://stackoverflow.com/questions/33013757

复制
相关文章

相似问题

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