Git和SVN在处理二进制文件方面的区别

6
当使用git-svn并提交二进制文件(图像和JAR文件)时,有一个区别: 如果最初通过SVN提交,则图像在SVN中也被视为二进制文件。 然后通过git添加的JAR文件和新图像在SVN中没有任何Svn属性,如svn:mime-type。
这会导致像Fisheye这样的存储库查看器将处理这些文件作为文本文件,并为它们创建无意义的变更集差异。 我预计合并时还会出现其他问题。
有没有一种简单但用户友好的方法来自动设置正确的mime-type以正确处理二进制文件?
我知道,我知道,会有用户说:为什么要在SVN中跟踪JAR文件?使用Nexus和Maven....是的,你是对的,但JAR文件只是其中一个例子。主要问题涉及图像!
2个回答

5

看起来你可以在Subversion配置文件中设置[auto-props],然后Git会将其捕捉到。前往http://trac.webkit.org/wiki/UsingGitWithWebKit,查看标题为Misc. Tips and Tricks的章节。

看起来你可以添加以下内容:

[miscellany]
enable-auto-props = yes

# Add an additonal line for each type of binary file you wish to commit.
[auto-props]
*.jpg = svn:mime-type=image/jpeg

to your ~/.subversion/config


1
作者正在使用 git svn,而不是 svn。这并没有帮助。 - jcwenger
2
创建一个./~subversion/config文件?看起来git会查看它。 - Andy
请注意,在Windows上,您可能会在%APPDATA%\Subversion\config%USERPROFILE%\.subversion\config中有两个配置文件 - 您应该确保它们都相同。 - Tim Bellis
顺便说一句:在~/.subversion/config应用上述更改后,它对我真的很有效。 - boerre

2

不幸的是,git-svn无法设置所需的属性svn:mime-type

我们忽略除svn:executable之外的所有SVN属性。任何未处理的属性都将记录在$GIT_DIR / svn // unhandled.log中

您可以创建一个后提交(甚至是预提交)挂钩来纠正此问题,但这可能有点过度了?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接