Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在一个有很多回购协议的项目中使用git_Git_Github_Plone - Fatal编程技术网

在一个有很多回购协议的项目中使用git

在一个有很多回购协议的项目中使用git,git,github,plone,Git,Github,Plone,Plone项目由192个不同的回购协议组成: 在开发过程中,有时需要触摸2个、4个或10个不同的回购协议来修复错误或实现功能。如果所有这些都可以分支在一起并合并在一起(例如,包含对repo1、repo2和repo3的提交的pull请求关闭issueX),那就太好了 发行要求将整套回购协议分支并标记在一起 在git之前,发布是由一个文件定义的,该文件列出了构成发布的所有模块的svn修订号。git是否为我们提供了一种更加精简的工作方式 乍一看,“超级项目”似乎是适用的: 您可以更具体地定义 超级项目

Plone项目由192个不同的回购协议组成:

在开发过程中,有时需要触摸2个、4个或10个不同的回购协议来修复错误或实现功能。如果所有这些都可以分支在一起并合并在一起(例如,包含对repo1、repo2和repo3的提交的pull请求关闭issueX),那就太好了

发行要求将整套回购协议分支并标记在一起

在git之前,发布是由一个文件定义的,该文件列出了构成发布的所有模块的svn修订号。git是否为我们提供了一种更加精简的工作方式

乍一看,“超级项目”似乎是适用的:

您可以更具体地定义 超级项目中具有标记和分支的项目

“Git/子模块和超级项目”似乎证实了这一点,但仍然含糊不清(没有提到标签或分支)

另一个听起来很相关的工具是Joey Hess的
mr

mr(1)命令可以对集合执行签出、更新或其他操作 将存储库视为一个组合存储库

(我担心这会导致192家不同的分支机构恰好同名,而不是一家将所有回购协议联系在一起的分支机构。)

这个问题看起来很相关:一个答案是:

我们的项目(bitweaver,一个内容管理系统)是高度模块化的 该系统拥有近160个存储库——http://github.com/bitweaver/”


这听起来像我们的例子。它引用了子模块的“严重限制”,并推荐了水银。听起来像<代码>先生<代码>可以帮助处理那些(“执行超级命令中的所有目录的Git命令”)。

< P>为什么不看Android使用的?

< P>我将在所有的回购中使用GIT子模块。git slave“如果你发现工作跨越多个回购协议。这可以节省很多精力。

即使这是一个非常有趣的讨论,而且最近已经出现在plone邮件列表上(在上搜索“git”),不幸的是,你的问题不是一个真正的问题。因此,请参与适当的ml讨论。我正在那里参加讨论。你为什么认为这个问题是不真实的?你认为许多回购项目都没有使用git的通用方法吗?别误会,我的观点与问题无关。我的观点是”你应该只根据你所面临的实际问题提出实际的、可回答的问题。喋喋不休的开放式问题削弱了我们网站的实用性,并将其他问题推到了头版“()。我认为这是一个完全正确的问题:Jean正在寻求Plone社区以外的人的建议,以获得使用Git和大型分段代码库的最佳实践。数字表明我错了。忘记我的反对意见,请继续。这看起来很有趣。安卓使用
repo
,bitweaver使用
supergit
,一个d
mr
听起来也很相似。Wichert Akkerman在邮件列表上回应道:“(a)[子模块]在我的经验中很难使用,而且文档记录也非常少。我不认为自己是一个十足的傻瓜,但我从来没有能够更新现有的子模块,指向一个较新的提交后,研究所有现有的文档。这将是我们许多承诺者的交易破坏者。(b) 通过设计,子模块指向一个提交而不是一个分支,这意味着它们对于引入不断更新的代码不是很有用。这可能在未来的git版本中得到修复,但这对我们现在没有帮助。“没有那么糟糕。我每天都使用它们,没有任何问题。需要帮助的时候随时打电话给我。无论您使用何种工具,对作为库使用的内容进行版本控制总是很重要的。@JeanJordaan如果不进行编辑,就无法将文件更新到新版本。要将子模块更新到新版本,您只需将“cd”放入其目录,然后只需
git checkout…
此外,子模块最好指向commit而不是branch,因为分支可以更改-“今天我检查了这个项目,结果它崩溃了,但3个月以来我什么都没做。可能这个子模块指的是分支,但我不知道在停止开发之前我们最后测试了哪个版本。”