发布“git svn”仓库

5

我正在修改一个存储在SVN仓库中的开源项目。由于我的更改可能需要一段时间才能完成,我使用git-svn桥将项目作为Git仓库进行了检出。由于我没有访问该项目的Subversion repo,因此无法将更改推回去,但我希望发布我的Git repo(在GitHub上),以便其他人可以跟踪我的修改的开发。

要更新“git svn” repo,您可以使用git svn rebase,它会像名称所示地将任何更改重新基于Subversion repo的新更改。当然,将已重新基于的分支推送到公共Git repo并不是一个好主意,因此关于从SVN repository克隆的repo,我有几个相关的问题:

  1. 发布经过rebase的分支(使用git-svn rebase)到公共repo是否安全?
  2. 我理解,假设您在Git中的master分支是您将从SVN repo中重新基础更改的分支, 您不应在该repo中进行任何真正的开发;即,如果您将更改合并到主分支,则应将其推送到SVN repo(使用git svn dcommit)。如果您遵循此策略,发布经过rebase的主分支到公共repo是否可行?
1个回答

1
  1. 发布一个 SVN 分支是安全的,但前提是所有提交都必须使用 git-svn dcommit 推送到 SVN 仓库中。如果分支中没有更改,那么 git-svn rebase 将只进行快进。

    如果有人从您已发布的分支分支出来,他们必须知道这是从 SVN 仓库中分支出来的。因为如果您试图接受他们的更改,则将它们推送到 SVN 仓库中的唯一方法是基本上对其进行 rebase。在您重新发布提交的更改后,他们将不得不处理冲突的提交,因为哈希值不匹配。

  2. master 中工作是安全的,但可能不太实际。如上所述,您无法发布您的提交,直到运行了 git-svn dcommit。因此,如果您有任何不想提交的工作,您需要将其移动到一个单独的分支中,然后尝试发布最新的 SVN 提交(即 git-svn rebase; git push


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接