外部项目的版本控制

时间:2011-05-24 17:26:12

标签: version-control

我正在开发一个开源的庞大项目(“项目”),我正在更改项目,但没有权限提交。我正在寻找维护我自己的项目分支的策略。我正在考虑的一些问题:

  1. 如果我将自己的工作放在版本控制系统中,因为我正在改变项目的源代码,添加新文件等等。
  2. 如何与项目保持同步,而无需反复手动合并我自己的更改。
  3. 我从来没有遇到过这种情况 - 我总是在一些版本控制系统中维护我的完整项目。我现在的计划是这样的:

    1. 在我的SVN中创建一个目录树,类似于项目中的目录树。
    2. 在我的svn。
    3. 中保留所有已更改的文件(并且只保留它们)
    4. 每当我决定与项目的新基线同步时,我会进行结账,将我的svn树合并到新版本中,测试,然后将我的更改提交到我的svn并将它们与最新项目一起分发基线。
    5. 这里的问题是无限的。方式太多的手动步骤,越来越多的工作随着时间的推移,等等。当然,正确的方法是成为原始项目的一部分,但由于各种原因,这似乎是无关紧要的,而且是不可能的。

      想法?

2 个答案:

答案 0 :(得分:4)

我会使用git或mercurial;只需将项目导入git或mercurial,并将上游更改合并到项目中的分支中,以便轻松合并到主干中。

如果上游项目有自己的存储库,则导入更容易。 git和mercurial都支持直接导入其他版本控制系统。我最近这样做是为了调整生活在SVN中的现有项目:https://github.com/mjpieters/rod.recipe.rabbitmq

请注意,该项目有一个“上游”分支。在审核了github.com中的更改后,particular project现已接受我提议的更改。

关于这个问题,关于SO有几个问题:

使用mercurial创建类似的设置应该是微不足道的。

答案 1 :(得分:1)

您可以使用git在本地系统上维护源代码管理。事实上,Git可用于维护版本控制下的任何目录。没有必要同步到任何东西,git在本地维护所有更改。

如果您需要提交SVN,请查看文档http://git-scm.com/docs/git-svn