【问题标题】:Maintain code changes to SVN repository separately, outside the repository在存储库之外单独维护对 SVN 存储库的代码更改
【发布时间】:2012-05-31 18:17:34
【问题描述】:

我有一个关于维护某些代码的最佳方式的问题。

有一个项目托管在在线 SVN 存储库上。该项目正在积极开发中,因此主干不断变化。我也没有此 repo 的写入权限。

我对该项目进行了一些更改,需要对整个项目的许多模块进行更改。我的更改非常“小众”,将它们签入后备箱没有任何意义。此外,我的更改将不断发展。

我已更改的文件在主干中没有得到太多修改,因此即使主干不断更改,如果将它们应用于主干,我的更改很可能会保持有效。

有什么方法可以在不镜像整个存储库的情况下单独维护我的更改?到目前为止,我一直在维护我不断合并的 repo 的镜像,这非常耗时。我没有时间,所以我的更改与最新的不同步。

基本上,如果想要使用我的更改的人必须执行以下操作,那就太好了:

  1. 从 SVN 存储库中检查主干(或特定标签)
  2. 从某个地方单独查看我的最新更改(或特定标签)
  3. 使用一些脚本(我可以开发)合并两者

所以现在他们拥有来自 repo 的最新主干,以及我最新的更改,自动合并并准备好使用。

我愿意使用任何系统来维护我所做的更改。不必是 SVN 或任何特定的。

【问题讨论】:

    标签: svn version-control maintenance mirroring


    【解决方案1】:

    您可以使用git-svn 克隆 subversion 存储库,然后继续使用您的 git-svn 克隆。如果你这样做了,想要你的代码版本/分支的人就不需要你描述的三步过程;而是他们只会“git clone”您的仓库(或您指定的标签等)。

    您还可以维护svn存储库主干的多个分支,或者单独跟踪多个svn分支等。

    【讨论】:

    • 谢谢!这个方法和@mark-phippard 的方法我都试过了,看起来都不错。
    【解决方案2】:

    如果您可以获得写入权限,那么最好的办法是请求分支。然后你可以将你的更改提交到一个分支并使用合并来保持它与主干的更新。如果不是,那么我会将其视为经典的“供应商分支”场景。

    https://www.google.com/search?q=svn+vendor+branch

    基本上,只需在本地创建您自己的 SVN 存储库并使用脚本在您的存储库中维护一份原始主干的副本。在您的存储库中创建一个分支并在那里提交您的更改。然后只需定期使用脚本将您的 repos 中的主干与 master 中的主干同步,然后将该主干中的更改合并到您的分支。

    我猜你也可以使用 git-svn 来维护一个中继的 git 镜像,然后只使用 git 分支来存储你的更改并保持它们同步。

    【讨论】:

    • 谢谢!这确实回答了我的问题。我选择了上面的 git 答案,因为我发现在我的工作流程中使用 git 更方便,但我希望我也可以将其标记为正确。
    【解决方案3】:

    听起来也许分支是最好的选择。它将可供所有用户使用,并允许您提交以帮助保持您的更改可管理和版本控制。人们可以在您的分支上与您一起工作,并且您始终可以将主干中的更改合并到您的分支,反之亦然。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-06
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多