发布"git svn"回购

mip*_*adi 5 git github git-svn

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

要更新"混帐SVN"回购,你使用git svn rebase,这,顾名思义,变基上的从Subversion回购的新变化,顶部的任何变化.当然,将你已经重新定位的任何分支推送到公共Git仓库并不是一个好主意,所以关于从SVN存储库克隆的repo,我有几个相关的问题:

  1. 将重新分支(使用git-svn rebase)发布到公共仓库是否安全?
  2. 我的理解是,假设您在Git中的主分支是您从SVN仓库重新定义变更的那个,那么您不应该在该仓库中进行任何真正的开发; 即,如果将更改合并到master中,则应将其推入SVN repo(使用git svn dcommit).如果您遵守此政策,是否可以将重新定位的主分支发布到公共回购?

cmc*_*nty 1

  1. 发布 SVN 分支是安全的,但前提是所有提交都使用git-svn dcommit. 如果分支中没有任何更改,那么git-svn rebase将进行快进。

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

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