我有一个托管在Linux上的subversion存储库,但只能通过Windows客户端访问,因为它是大型Windows应用程序的源代码。
如果我可以使用git-svn(由msysgit提供)在这个存储库上工作,那将是非常棒的。
我有一段时间试图让存储库不会因为窗口样式行结尾而陷入困境。
在svn clone
结帐git存储库之后:
core.autocrlf = true
显示对存储库中实际使用LF
的任何文件的修改。core.autocrlf = input
显示对存储库中实际使用LF
的任何文件的修改。core.autocrlf = false
显示对所有内容的修改。这里最好的选择是什么?我应该使用core.autocrlf = true
并对受影响的文件进行LF
到CRLF
更改吗?
我非常接近于把我的Subversion工作副本放到git存储库中。这将是一个糟糕的解决方案,但至少会允许本地分支和存储。将文件添加到subversion时,继续添加文件显然会变得非常痛苦。
编辑:对于有兴趣的人。如果你在Windows上,git-svn
是一种皇室般的痛苦。 hasen j的答案可能是正确的,但是如果不引起团队中其他开发人员的愤怒,我就无法听从他的建议。
我基本上放弃了这个问题,因为它不会导致合理的结果。希望下一个Google Summer of Code能够吸引那些希望获得“Windows上适当的git-svn支持”项目的人。见http://git.or.cz/gitwiki/SoC2009Ideas#Propergit-svnsupportonWindows
答案 0 :(得分:6)
帮自己一个忙,不要乱用行尾,保持原样。将autocrlf
设为false
。
Windows中任何一个不错的文本编辑器都应该能够处理unix样式的行结尾。
core.autocrlf = false显示对所有内容的修改。
我认为,如果你只是在之后那么,它对你没有任何好处。
您必须删除此存储库,将autocrlf设置为false,然后然后执行克隆。
答案 1 :(得分:1)
我有类似的问题。 为了解决这个问题,在git-svn克隆之后,我将unix2dos应用于所有文件,因为在我的情况下,SVN repo中的所有文件都使用了CRLF。所以,我想你应该在git-svn之后手动尝试CRLF-LF转换。
答案 2 :(得分:1)
我通常使用git-filter-branch
清除我的git-svn克隆recode dos..ascii -f
。 (这也有助于latin1..utf8
转换。)
答案 3 :(得分:1)
由于我的其他答案不适合你,这是处理这种情况的另一种方法:
同时使用svn和git;在同一个工作目录中。
你将主要使用git,从上游存储库中取出,进行本地更改,本地分支等;当你在本地git项目上工作时通常所做的一切。
然后,当你想提交中央svn repo时,使用svn客户端。
我有一些这方面的经验,只是我不会做svn commit
,而是用svn diff
创建一个补丁并提交它(因为我无论如何都没有提交访问权限)。
答案 4 :(得分:0)
通常,您需要设置core.autocrlf选项,如下所示:
git config core.autocrlf true
但根据this article,看起来它与git-svn并不是很好。可能值得在SVN存储库的安全第二个副本中查看它是否有效。
答案 5 :(得分:0)
关于core.autocrlf
的另一个好conversations here。