2

私は Subversion のブランチ/マージ機能を評価しており、簡単なテストを行うことにしました。既存のプロジェクトをブランチし、1 つのファイルのコメントを変更してから、Tortoise を介してマージを再統合しました。

失敗しました:

コマンド: マージhttps://oscar/svn/Baxtech/ViM/Branches/Test3を C:\Inntec\VS2008\Baxtech\ViM
に再統合 エラー: ' https://oscar/svn/Baxtech/ViM/Branches/から再統合できませんTest3 ' まだ:
エラー: 一部のリビジョンがその下にマージされていますが、まだマージされていません
エラー: 再統合ターゲットに。最初にそれらをマージしてから、再試行してください。

これについてグーグルで調べたところ、古いバージョンのTortoiseでの名前変更とディレクトリの変更によって作成されたmergeinfoに関係しているという投稿がいくつか見つかりました。

最近、以前のバージョンの Tortoise から 1.5.5 にアップグレードしましたが、この問題は 1.5.* より前のバージョンのようです...そして、1 つのファイルのいくつかのコメントのみを変更しました。名前の変更やディレクトリ構造の変更は行っていません。

繰り返しになりますが、しばらくの間 (分岐なしで) トランクを使用してきたので、そこに問題があるのではないでしょうか?

したがって、これに対する修正があれば、助けていただければ幸いです。また、これは典型的なものですか?これは非常に単純なテストでしたが、残念ながら今のところ、分岐に Subversion を使用するのは少し怖いです。

Subversion: 1.5.4 (VisualSVN サーバー経由)
Tortoise: 1.5.5

Visual Studio 2008 も使用しています。

ありがとう!

ブライアン

4

6 に答える 6

6

これも少し前に私に起こりました。

この問題を引き起こすために何をしたのか正確には覚えていませんが、私も 1.5​​ より前のリリースを使用していて、その後 1.5.0 に切り替えたと言えます。

Subversion は、ディレクトリごとの svn:mergeinfo プロパティを使用してマージを追跡します。このプロパティは、作業コピーのルート パスにのみ存在する必要があります (間違っている場合は訂正してください)。このエラーが表示されたとき、1.5 より前のバージョンでは作業コピー内のファイルに明示的なマージ情報が作成されていたため、安定版リリースが適切に機能していないことに気付きました。最後の返信で言ったように、これらの余分な mergeinfo エントリを削除すると、私の問題も解決しました。

私の提案は、ベータ版からのコミットがない新しいリポジトリで試して、これが再び起こるかどうかを確認することです.

于 2008-11-25T22:13:27.630 に答える
5

問題は (ほとんどの場合) マージ ソースにサブツリー マージ情報が含まれている場合に、svn 1.5 が特定のエラー メッセージを表示することです。あなたが正しく指摘したように、これに対する救済策は、サブツリーのmergeinfoを削除することです。詳細な信頼できる回答は、http: //blogs.collab.net/subversion/2008/07/subversion-merg/にあります。

于 2008-12-11T08:24:14.117 に答える
2

この問題は MergeInfo と関係があります。何が問題だったのかよくわかりませんが、MergeInfo をクリアしたので、すべて問題ありません。

私の MergeInfo に問題があった理由と実際に何をするのかについて、もう少し学ぶ必要があります。非常にイライラします!

編集:アップグレードしてから少し時間が経ちましたが、この問題は再発していません。

于 2008-11-25T21:04:59.237 に答える
1

コマンドラインからマージする方がはるかに簡単であることがわかりました。

svn merge -r N:M SOURCE [PATH]

N はブランチを作成したリビジョン、M は変更を含めるリビジョン (または現在の場合は HEAD) です。ソースは分岐パスです。ターゲットの作業ディレクトリ内でこれを実行する場合、最後のパラメーターは必要ありません。

例:

//sitting in main trunk
svn merge -r 55:HEAD svn://my.repo.url/branches/my_branch

これにより、ブランチの 55 以降のすべての変更がトランクにマージされます。

于 2008-11-25T17:19:12.203 に答える
0

このエラーを見たことがなく、分岐/マージを頻繁に使用する理由は考えられません。私がチェックするいくつかのこと:

  • トランクの作業コピーからマージを開始しますか (右クリック -> SVN -> マージ)?
  • テストマージと言ったらどうなりますか?
  • 祖先の無視をチェックするのはどうですか?
  • マージ深度が「作業コピー」であることを確認してください

ところで、リポジトリはどのバージョンの SVN ですか?

于 2008-11-25T18:57:08.027 に答える
0

私は長い間 svn を使用してきましたが、これを見たことがありません。確かに私は Tortoise をあまり使っていません。考慮すべきいくつかの点:

  1. ログには、 にマージしようとしていることが示さ../ViM/branches/..れています../ViM/。あなたはログを持っていませんか、../ViM/trunk/それともログが面白いものを印刷しているだけですか? ブランチをコードベース以外のものにマージしようとすると、めちゃくちゃになると思います。

  2. ブランチを作成した後、再統合する前にトランクに変更をコミットしましたか? その場合は、それらの変更をブランチにマージしてから、トランクにマージし直してください。

  3. ブランチとトランクで実行svn cleanupして、そこにある未完成のビジネスが確実にクリーンアップされるようにします。

  4. 問題が発生するかどうかはわかりませんが、変更を再統合する前に、トランクの作業コピーを更新する必要がある場合があります。

于 2008-11-25T20:34:47.893 に答える