源代码管理 - 开源项目

时间:2011-04-22 13:14:49

标签: visual-studio svn version-control open-source

我遇到了一个共同的困境。

很多时候,我们公司依赖于使用开源库来完成工作,但偶尔我们必须修改它们以使其在不同平台上运行,修复错误等。

我们使用颠覆的组合:TortoiseSVN和AnkhSVN。

以下方案是否可以使用SVN:

  • Devs将源代码从开源项目添加到我们的subversion中(通常通过导出,取决于他们使用的源控件)
  • Devs对开源代码进行了一些更改
  • 开源项目创建者对自己的
  • 进行了一些改进和错误修复
  • 我们如何将开源项目的变更合并到我们的颠覆?

如果SVN无法做到这一点,我们有更好的源控制选项吗?如果可能的话,我们更喜欢使用Visual Studio集成。

2 个答案:

答案 0 :(得分:5)

Subversion当然可以做到这一点。这种东西在分布式VCS存在之前就已经发生了。请参阅Subversion书籍中Vendor BranchesChapter 4. Branching and Merging部分。

引用:

  

管理供应商分支通常是这样的:首先,您创建一个顶级目录(例如/ vendor)来保存供应商分支。然后,将第三方代码导入该顶级目录的子目录中。然后,将该子目录复制到适当位置的主开发分支(例如/ trunk)。您始终在主开发分支中进行本地更改。对于您要跟踪的每个新版本的代码,您可以将其引入供应商分支并将更改合并到/ trunk中,从而解决本地更改与上游更改之间发生的任何冲突。

答案 1 :(得分:3)

Subversion不是正确的工具。你在寻找什么需要一个分布式版本控制系统,这基本上意味着你可以拉动和推送存储库,而且没有中央存储库。

查看Git和Mercurial以获取更多信息。如果上游项目使用Subversion,您可以使用git-svn作为桥梁 - 您可以创建自己的存储库,更改内容,并且仍然可以将svn合并到其中以及推送到您自己的“上游/中央”git存储库。

另请注意:您是否有理由不直接向项目提供更改? (特别是如果项目是在GPL或LPGL之类的许可下,迫使您根据合适的许可证向公众发布修改后的源代码,许多项目都是如此)。这似乎是回馈那些免费提供代码的人的好方法......

以下问题涉及Git + Visual Studio:Using Git with Visual Studio