2

我正在尝试将 git-svn 存储库推送到 github,但我不希望 url 出现在我的提交消息中。

它们出现是因为我正在使用 svn 开发并且只使用 git-svn 推送到 github。所以我所有的消息看起来像:

Some changes

git-svn-id: ........
4

2 回答 2

6

您可以通过设置以下配置选项(全局或基于远程)将其关闭,但强烈建议要这样做,因为git svn没有此元数据将无法获取。

svn.noMetadata = true
svn-remote.origin.noMetadata = true

您也可以使用--no-metadatawith 选项git svn clone来获得相同的结果。

从手册页git-svn

--无元数据

在 [svn-remote] 配置中设置 noMetadata 选项。不推荐使用此选项,请在使用此选项之前阅读此手册页的 svn.noMetadata 部分。

以及相关的配置文件选项:

svn.no元数据

svn-remote..no元数据

这消除了每次提交末尾的 git-svn-id: 行。

此选项只能用于一次性导入,因为 git svn 将无法在没有元数据的情况下再次获取。此外,如果您丢失了 .git/svn/*/.rev_map。文件,git svn 将无法重建它们。

git svn log 命令也不适用于使用它的存储库。出于(希望)显而易见的原因,使用此与 useSvmProps 选项冲突。

不推荐使用此选项,因为它很难在现有文档、错误报告和存档中追踪对 SVN 修订号的旧引用。如果您计划最终从 SVN 迁移到 git,并且确定要删除 SVN 历史记录,请考虑使用 git-filter-branch(1)。filter-branch 还允许重新格式化元数据以便于阅读和重写非“svn.authorsFile”用户的作者信息。

于 2013-04-18T22:39:47.027 回答
6

以防万一您已经使用 获取了数据,git svn fetch您可以将git filter-branch其用作替代方案。

git filter-branch -f --msg-filter 'sed -e "/git-svn-id:/d" -e "/Former-commit-id:/d"'

您可以相应地更改“git-svn-id:”或“Former-commit-id:”。

于 2016-07-01T03:47:20.553 回答