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

Git SVN Clone迁移时移除文件关键字扩展的问题咨询

SVN迁移Git后关键字被移除,如何保留?

我在将SVN仓库迁移到Git时,使用带历史记录的克隆命令把仓库拉到本地,结果所有文件的当前版本和历史版本里的关键字数据都被移除了。

SVN中的原始内容:

--  $Date: 2020-02-27 13:54:28 -0800 (Thu, 27 Feb 2020) $
--  $Rev: 65875 $

克隆到Git后内容变成:

--  $Date$
--  $Rev$

我使用的克隆命令是:

git svn clone "MY SVN URL" --prefix=svn/  --no-minimize-url --authors-file "authors-transform.txt"

请问这种关键字移除的情况是正常现象,还是我的操作存在问题?是否有办法在保留历史记录的同时保留这些关键字?


解答

这种情况是正常现象,因为Git本身不支持SVN的关键字替换功能,git svn默认在克隆时不会保留SVN已经展开的关键字值,只会留下占位符(比如$Date$)。

要在迁移时保留这些已展开的关键字,你需要调整git svn的配置:

  • 方法一:提前全局配置需要保留的关键字
    git config --global svn.keywords "Date Rev"
    
  • 方法二:在克隆命令中直接指定配置
    git svn clone "MY SVN URL" --prefix=svn/ --no-minimize-url --authors-file "authors-transform.txt" --config svn.keywords="Date Rev"
    

这个配置会让git svn在导入SVN版本时,将已展开的关键字值保留在文件内容里,而不是还原成占位符。

需要注意:Git没有SVN那样的自动关键字更新机制,迁移完成后,后续的Git提交不会自动更新这些关键字的值,它们会停留在SVN迁移时的最后展开状态。如果需要类似SVN的自动更新功能,得借助Git钩子或者第三方工具实现,但逻辑和SVN原生机制有差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:40:43