好的,我一直在用Recommended DVCS mechanism for hosting many independent patches和Using Mercurial patch queue repository on BitBucket for many users and patches这样的问题抓住我的问题的各种解决方案,但希望这将是我需要询问的关于如何建立源代码控制的最后一个问题我在https://sourceforge.net/p/iotabuildit/wiki/Home/描述的项目。然后,我可以接受其他问题的答案并继续。
我正在努力实现的要求是:
到目前为止,我尝试过的路径因以下原因而失败:
所以现在我提出的解决方案如下,我想看看我是否遗漏了一些可以通过其他方式更好地处理的问题。我将在我的SourceForge项目上创建一些PHP脚本:
我不能使用现有的存储库来执行此操作似乎很奇怪,但我无法想到解决身份验证问题的方法。所以我需要创建自己的克隆,我知道PHP脚本应该能够在不推送的情况下访问和提交。遗憾的是,其他DVCS客户端可能无法从这些在线客户端中获取,但如果需要,可能还有一些方法可以导出补丁。当合并冲突出现时,我不知道我将要做什么。但到目前为止,这是我最接近可行的解决方案。
所以我最终得到的是一个在线DVCS客户端,以避免用户必须下载DVCS客户端,并避免为他们的游戏版本找到主机。我忽略了一个更简单的解决方案吗? (我是否违反了SourceForge的服务条款?如果(我可以)安装了Mercurial,我也可以在Dreamhost上托管它。)
答案 0 :(得分:1)
很少有评论/答案:
使用DVCS(“D”作为分布式),没有“服务器”或“客户端” 如果要在本地(在工作站上)访问代码,则需要DVCS(git或Mercurial),并且您将克隆upstream repo(即存储在GitHub或BitBucket中的远程仓库)。 / p>
根据我的理解,每个用户都会分叉主仓库,为每个用户创建一个仓库,仍然存储在上游服务器(GitHub或BitBucket)上,因为它是叉子背后的想法(远程端克隆)。
这将解决1.因为每个用户都是他/她自己的分支的所有者,并且只有那里的写访问权 2.是给定的(你可以分叉回购)
GitHub或BitBucket不会解决其余的问题,而是安装了DVCS的专用服务器,以及添加相关钩子以便自动化所需的内容。
该专用服务器可以监视在GitHub或BitBucket上推送的内容,对于给定用户的给定repo,执行所需的克隆或更新,并将repo同步到正确的目录(例如,在您的情况下可以访问PHP脚本)