推荐用于托管许多独立补丁的DVCS机制

时间:2012-04-13 11:12:14

标签: version-control mercurial dvcs sourceforge

我有一个项目刚刚开始http://sourceforge.net/projects/iotabuildit/http://sourceforge.net/p/iotabuildit/wiki/Home/的更多详细信息),目前正在使用Mercurial进行版本控制。似乎Mercurial和SourceForge几乎拥有所有正确的功能或元素来组合我为此项目考虑的协作机制,但我认为我还没有完全实现。我希望人们能够提交,讨论和投票来自大量个人的更改(比项目通常拥有的开发人员多)。我希望用户能够尽可能轻松地参与其中。现在的想法是人们可以克隆“free4all”fork,它是基本“代码”存储库的克隆,或者他们可以在自己的SourceForge用户项目中创建自己的fork(SourceForge现在为每个用户提供一个工作空间主持杂项项目相关内容)。然后他们可以将其克隆到他们的本地存储库(在下载TortoiseHg或他们首选的Mercurial客户端之后)。然后他们可以进行修改,提交它们,将它们推送到fork,并请求合并到基础“代码”存储库中,此时我们可以讨论/查看合并请求。这一切仍然是太多的步骤,比我想要的更正式。

我发现在Mercurial中存在“搁置”这样的事情,但我不知道SourceForge存储库中是否支持这种情况。由于存在合并请求,因此可能无法讨论搁置的变更。

我正在寻找任何可以让这更容易的建议。理想情况下,我希望用户能够:

  1. 指定他们想要播放的任何版本,并从源控件中提取所请求的版本,以便用户在 SourceForge上播放(因为安全性导致游戏无法在本地播放限制Chrome浏览器正确应用于访问独立文件中的图像内容的javascript代码)
  2. 允许用户下载所请求的项目版本以进行本地编辑(从同一来源构建的C#版本也可在本地播放,或者Internet Explorer显然忽略了安全限制,允许在浏览器中进行本地播放)
  3. 接受提交的修改,其形式可与任何其他兼容的“分支”或已提交/发布的游戏版本合并(理想情况下,这将非常简单 - 也许只需上传整套文件到服务器并在那里执行比较和补丁/差异提取)
  4. 其他玩家可以看到可用提交的补丁列表,并选择任何一组进行播放/测试,然后讨论并对变更进行投票。
  5. 显然,其中一些要求非常具体,如果我想达到理想的目标,我可能需要编写一些服务器端代码。但是,如果我需要的大部分功能已经存在,我想采取阻力最小的路径并使用可用的技术。或者我想看看我是否可以比我前面概述的过程更接近而不编写任何服务器代码。那么哪些作品可以帮助我做到这一点? Mercurial& SourceForge支持以我想要的方式存储和共享被搁置的代码?这个“补丁队列”(我看到了,但无法理解或开始工作)有什么可能有帮助吗?有没有办法从一组给定文件中提取补丁文件与存储库中的特定修订版本(在服务器端),而无需用户下载任何Mercurial组件?

1 个答案:

答案 0 :(得分:4)

这听起来像是你可以用mercurial queue(mq)补丁队列做的事情。补丁队列可以是独立的版本化存储库,人们可以使用“防护”来仅应用他们想要尝试的补丁。

但实际上使用bitbucket或github听起来更容易,两者都内置了很好的补丁提交,审核和验收工作流程。