satis または composer の設定に問題があります。私がこれまでにできたこと:
1: "common" という SVN リポジトリを作成しました。いくつかのタグ (1.0、1.1) があります。各タグには独自の composer.json ファイルがあります。
{
"name": "acme/common",
"version": "1.0"
}
SVN URL: http://svn.local.acme.com/svn/common
2: satis.json から composer リポジトリを作成しました:
{
"name": "Acme",
"homepage": "http://dev.local.acme.com/satis/web",
"repositories": [
{ "type": "vcs", "url": "http://svn.local.acme.com/svn/common" }
],
"require-all": true
}
すべてのタグを web/packages.json にプルしました。
{
"packages": {
"acme/common": {
"1.0": {
"name": "acme/common",
"version": "1.0",
"version_normalized": "1.0.0.0",
"source": {
"type": "svn",
"url": "http://svn.local.acme.com/svn/common",
"reference": "/tags/1.0/@2"
},
"type": "library"
},
"1.1": {
"name": "acme/common",
"version": "1.1",
"version_normalized": "1.1.0.0",
"source": {
"type": "svn",
"url": "http://svn.local.acme.com/svn/common",
"reference": "/tags/1.1/@5"
},
"type": "library"
}
}
}
}
サティス URL: http://dev.local.acme.com/satis/web
3: 私のプロジェクトでは、composer.json で "acme/common" を要求したい (1.0 としましょう):
{
"require": {
"acme/common": "1.0"
},
"repositories": [
{
"type": "composer",
"url": "http://dev.local.acme.com/satis/web"
}
]
}
1.0 タグは正常にプルされますが、require を「1.1」に変更して実行するcomposer.phar update
と、エラーが発生します。
[RuntimeException]
Package could not be downloaded, svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.
svn: E195012: 'http://svn.local.acme.com/svn/common/tags/1.3' shares no common ancestry with '/home/user/acid.dev.local.acme.com/composer/vendor/acme/common'
ここでの問題は、最初に (作曲家のインストール) インポート インポートではなくタグをチェックアウトすることだと思います。このエラーは、ベンダー ディレクトリが SVN バージョン (.svn フォルダーがある) であることを示しています。そうあるべきではないと思います。