Version control 外部项目上的版本控制

Version control 外部项目上的版本控制,version-control,Version Control,我正在做一个巨大的项目(“项目”),它是开源的,我正在改变这个项目,但没有提交的许可。我正在寻找维护我自己的项目分支的策略。我正在考虑的一些问题: 考虑到我正在修改项目的源代码、添加新文件等等,如何将自己的工作放在版本控制系统中 如何与项目保持同步,而不必一次又一次地手动合并我自己的更改 我从来没有遇到过这种情况——我总是在一些版本控制系统中维护我的完整项目。我现在的计划是这样的: 在我的SVN中创建目录树,类似于项目中的目录树 在我的svn中保留所有更改的文件(并且仅保留它们) 每次我决定与项

我正在做一个巨大的项目(“项目”),它是开源的,我正在改变这个项目,但没有提交的许可。我正在寻找维护我自己的项目分支的策略。我正在考虑的一些问题:

  • 考虑到我正在修改项目的源代码、添加新文件等等,如何将自己的工作放在版本控制系统中
  • 如何与项目保持同步,而不必一次又一次地手动合并我自己的更改
  • 我从来没有遇到过这种情况——我总是在一些版本控制系统中维护我的完整项目。我现在的计划是这样的:

  • 在我的SVN中创建目录树,类似于项目中的目录树
  • 在我的svn中保留所有更改的文件(并且仅保留它们)
  • 每次我决定与项目的新基线同步时,我都会进行签出,将我的svn树合并到新版本中,进行测试,然后将我的更改提交到我的svn,并将它们与最新的项目基线一起分发
  • 这里的问题是无穷无尽的。方法太多的手动步骤,越来越多的工作随着时间的推移,等等。当然,正确的方法是成为原始项目的一部分,但由于各种原因,这似乎与目前的情况毫不相关,是不可能的


    想法?

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


    如果您需要提交给SVN,请查看文档

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

    如果上游项目有自己的存储库,那么导入就更容易了。git和mercurial都支持直接导入其他版本控制系统。我最近这样做是为了适应SVN中的一个现有项目:

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

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


    使用mercurial创建类似的设置应该很简单。

    项目使用什么版本控制系统?您是否具有项目源代码管理的读取权限?如果他们使用svn、cvs、hg、git或其他东西,如何处理这个问题将非常不同。@Anders:他们既有git,也有svn。是的,我读过项目风投。听起来很棒。第三个问题明确地说明了我的问题。谢谢