You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在git-svn仓库配置autocrlf,避免向SVN提交时意外修改换行符?

Git-SVN 换行符安全配置方案

核心配置调整

  • 保留autocrlf=false,同时配置git-svn对接SVN的换行规则:
    • 执行git config --global svn.eol-style native,让git-svn遵循SVN的native属性逻辑:拉取时转成本地系统换行符,提交时统一转为仓库存储的LF格式
    • 针对无svn:eol-style属性的文件,开启自动属性设置:
      先执行git config --global svn.autoprops true,再在git配置文件中添加:
      [svn-remote "svn"]
        autoprops = *.lua=svn:eol-style=native
      
      这样新文件或无属性的存量文件会自动应用native规则,统一换行符处理逻辑

编辑器与EditorConfig适配

  • 修改EditorConfig的end_of_line配置为end_of_line = unset,让编辑器遵循git-svn和SVN的属性设置,而非强制修改为CRLF,避免本地编辑时打乱换行符
  • 若需统一显示CRLF,可单独在编辑器中设置显示规则,但不要强制修改文件内容本身

存量混杂换行符修复

  • 确保上述配置生效后,执行git add --renormalize .让git重新识别所有文件的换行符
  • 提交到本地git仓库后,再执行git svn dcommit,此时git-svn会按照SVN属性正确转换换行符后提交

关键逻辑说明

  • SVN的svn:eol-style=native规则是:服务器端存储LF,客户端拉取时转为系统原生换行符(Windows为CRLF,Unix为LF)
  • Git的autocrlf=false仅控制git自身的换行转换,git-svn有独立的svn.eol-style配置,必须开启该配置才能对接SVN的换行处理逻辑,否则git-svn会直接按文件原始换行提交,导致SVN端出现混杂换行

内容的提问来源于stack exchange,提问作者idbrii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 19:02:47