我有一个项目刚刚在http://sourceforge.net/projects/iotabuildit/开始(更多细节在http://sourceforge.net/p/iotabuildit/wiki/Home/) 目前正在使用 Mercurial 进行修订控制。似乎 Mercurial 和 SourceForge 几乎拥有所有合适的功能或元素来组合我为这个项目考虑的协作机制,但我认为我还没有完全做到。我希望人们能够提交、讨论和投票来自大量个人(比项目通常拥有的更多开发人员)的个人更改。我希望用户能够尽可能轻松地参与其中。现在的想法是人们可以克隆“free4all”分支,它是基本“代码”存储库的克隆,或者他们可以在自己的 SourceForge 用户项目中创建自己的分支(SourceForge 现在为每个用户提供了一个工作区以主持杂项项目相关内容)。然后他们可以将其克隆到他们的本地存储库(在下载 TortoiseHg 或他们喜欢的 Mercurial 客户端之后)。然后他们可以进行修改,提交它们,将它们推送到分支,并请求合并到基本“代码”存储库中,此时我们可以讨论/审查合并请求。这一切仍然是太多的步骤,而且比我想要的更正式。
我看到 Mercurial 中有“搁置”之类的东西,但我看不到 SourceForge 存储库中如何/是否支持它。由于存在合并请求,因此可能无法讨论搁置的更改。
我正在寻找任何可以使这更容易的建议。理想情况下,我希望用户能够:
- 指定他们想玩的任何版本,并从托管的源代码控制中提取请求的版本,供用户在SourceForge 玩(因为由于安全限制,游戏无法在本地玩,Chrome 浏览器正确适用于 javascript 代码访问独立文件中的图像内容)
- 允许用户下载项目的请求版本进行本地编辑(从相同源构建的 C# 版本也可以在本地播放,或者 Internet Explorer 显然忽略了安全限制,允许在浏览器中本地播放)
- 以可以与任何其他兼容的“分支”或已提交/发布的游戏版本合并的形式接受提交的修改(理想情况下,这将非常简单——也许只是将整个文件集上传回服务器并在那里执行比较和补丁/差异提取)
- 其他玩家可以看到可用提交的补丁列表并选择任何要玩/测试的集合,然后讨论和投票更改。
显然,其中一些要求非常具体,如果我想达到理想的目标,我可能需要编写一些服务器端代码。但是,如果我需要的大部分功能已经几乎存在,我想走阻力最小的道路并使用可用的技术。或者我想看看我是否可以在不编写任何服务器代码的情况下比我之前概述的过程更接近。那么哪些部分可以帮助我做到这一点呢?Mercurial 和 SourceForge 是否支持以我想要的方式存储和共享搁置的代码?这个“补丁队列”(我看到了,但还不能理解或开始工作)有什么可能有帮助的吗?与存储库中的特定修订版(在服务器端)相比,有没有一种方法可以从给定的文件集中提取补丁文件,而无需用户下载任何 Mercurial 组件?