【发布时间】:2013-01-13 18:47:25
【问题描述】:
我正在尝试摆脱 git 子模块,以便在我的团队中进行开发。最重要的原因是当团队成员在子模块中提交更改,但忘记推送到源,但确实在“根”项目中推送了对这个新提交的引用时,源被破坏,其他开发人员得到reference is not a tree 错误。如果有问题的开发人员在回家之前推送,并且该引用不是树,则这可能会出现问题,并且该引用指向开发人员笔记本电脑上的提交,该笔记本电脑在他的包里,在某处的火车上。
我正在尝试用 composer 替换 git 子模块。我的理由是,如果 git 不知道我的依赖项,这些依赖项就不能破坏 repo。我知道如何从 packagist 添加包,并且我还设法将我们自己的 git 存储库添加到 composer,主要是在 this blog post 的帮助下。
问题,也是难题的最后一部分,是我们的依赖项是我们正在积极开发的 git 存储库。如果我将更新推送到我们的依赖项之一,我希望开发人员的本地副本在他们执行composer update 时更新到这个最新版本。我得到的最接近的方法是为依赖项的每次更改创建一个标签,然后用这个新标签的 id 更新我的 composer.json。
我想知道的是,是否有办法让作曲家始终检查某个分支的最新提交,或者,如果这不可能,则在我执行 @987654324 时始终获取最新标签@。我真的不介意标记,我只是不想在开发过程中不断更新 composer.json。
我用于测试的作曲家文件:
{
"config": {
"vendor-dir": "app/vendor"
},
"repositories":
[
{
"type": "package",
"package": {
"name": "wkjagt/seagull",
"version": "1.0",
"source": {
"url": "git@github.com:wkjagt/Seagull.git",
"type": "git",
"reference": "master"
}
}
}
],
"require": {
"wkjagt/seagull": "1.0.*"
}
}
我期待1.0.* 采用从 1.0 开始的最新标签,但是一旦 composer 已经有了 1.0.1,如果我创建它就不会得到 1.0.2。对此的任何帮助将不胜感激。
【问题讨论】:
标签: php git composer-php