5

我正在修改一个存储在 SVN 存储库中的开源项目。由于我的更改可能需要一段时间才能完成,因此我已使用 git-svn 桥将项目作为 Git 存储库签出。我无权访问项目的 Subversion 存储库,因此无法将更改推送回它,但我想发布我的 Git 存储库(在 GitHub 上),以便其他人可以跟踪我的修改的开发。

要更新“git svn”存储库,请使用git svn rebase,顾名思义,它会将任何更改重新设置在来自 Subversion 存储库的新更改之上。当然,将您重新设置的任何分支推送到公共 Git 存储库中并不是一个好主意,所以关于从 SVN 存储库克隆的存储库,我有几个相关的问题:

  1. 将重新设置的分支(使用git-svn rebase)发布到公共仓库是否安全?
  2. 我的理解是,假设您在 Git 中的主分支是您从 SVN 存储库重新调整更改的分支,您不应该在该存储库中进行任何真正的开发;即,如果您将更改合并到主服务器中,您应该将它们推送到 SVN 存储库中(使用git svn dcommit)。如果您遵守此政策,是否可以将重新定位的 master 分支发布到公共 repo?
4

1 回答 1

1
  1. 发布 SVN 分支是安全的,但前提是所有提交都使用git-svn dcommit. 如果您在分支中没有更改,则git-svn rebase只需快进即可。

    如果有人从您发布的分支分支,重要的是他们知道它来自 SVN 存储库。那是因为如果你曾经尝试接受他们的更改,将它们推送到 SVN 存储库的唯一方法就是从本质上重新调整它们的更改。在您再次发布提交的更改后,他们将不得不处理冲突的提交,因为哈希将不匹配。

  2. 在 中工作是安全的master,但可能不实用。从上面看,在你运行之前你不能发布你的提交git-svn dcommit。因此,如果您有任何不想提交的工作,则需要在尝试发布最新的 SVN 提交之前将其移动到单独的分支(即git-svn rebase; git push

于 2009-09-29T21:11:50.170 回答