0

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

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

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

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

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

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

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

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

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

4

3 回答 3

2

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

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

于 2012-05-31T22:23:38.287 回答
1

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

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

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

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

于 2012-05-31T18:23:56.733 回答
1

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

于 2012-05-31T18:24:53.620 回答