私の最初の大きなディレクトリのマージに苦労し、なぜこれらのエラーが発生するのかについての手がかりを期待していました。
私は1週間前にtrunk/のコードを分岐し、branchs / myBranchのコードに多くの変更を加え、それらをtrunk/にマージするときが来たと判断しました。それ以来、トランク内のコードは変更されていません。新しいコードが分岐したときとまったく同じであるため、競合が発生する可能性はないと思いました。
私が知っているように、新しいコードをトランクにマージしようとすると、多くの競合が発生し、ファイルの欠落が報告されるという誤った仮定があります。誰かがこれが起こっている理由を明確にすることができますか?
これが基本的な事実です:
- コードはリビジョン19466で分岐しました。
- それ以来、トランクは手つかずのままです。変更なし(最終変更Rev:19453)。
- ブランチは(残念ながら?)ローカルで行われ、いくつかの変更が組み込まれました。
- 次のコマンドを使用して、ブランチイントロトランクからの変更をマージしてみました
svn merge -r19466:HEAD branches/myBranch trunk/
。(私がトランクに立って最後の議論をスキップしていたか、または単に上記を行っていたかは関係ありませんでした) Subversionは、ファイルfooDaoが見つからないことについて文句を言います。
! C trunk/fooDao.java
> local missing, incoming edit upon merge
このファイルは、ブランチが作成されたのと同じコミット(19466)で名前が変更されましたが、。を使用して発行されたため、subversionがこれを取得する必要があると思いました
svn move
。ログにはその祖先が表示されます。... /branches/myBranch/fooDao.java(/branches/myBranch/fooDato.java:19452から)
- コードを変更しなくてもリビジョン番号が増えるのはなぜか疑問に思われる場合は、他の多くの(アクティブなプロジェクト)を含む共有リポジトリであるためです。