web-dev-qa-db-ja.com

SVNはブランチから個々のファイルリビジョンをトランクにマージします

私はトランクにマージしたいブランチで行った修正をいくつか持っています。ブランチ全体をトランクにマージするのではなく、実行したいくつかのブランチチェックインのみを実行します。これを行うための正しい構文は何ですか?

TY、フレッド

37
fred basset

タイトルが単一のファイルのマージについて語っているので、あなたが何を求めているのか正確にはわかりませんが、質問のテキストは単一のリビジョンについて語っています。単一のリビジョンをマージする場合、以下が必要です:(リビジョン100、105、115でコミットされた変更をマージするには)

cd trunk
svn merge -c 100 -c 105 -c 115 http://..../branches/mybranch .

File.cppに影響するリビジョン100の部分のみをマージする場合:

cd trunk/path/to/file.cpp
svn merge -c 100 http://../branches/mybranch/path/to/file.cpp file.cpp
37
the_mandrill

ブランチ全体をマージする必要があります。 svn 1.5以降、マージされたものに関する情報はリポジトリに保存されます-svn:mergeinfoプロパティ。個々のファイルをマージする場合svn:mergeinfoはツリーの奥深くに設定されます。誰かがプロジェクトの最上部からマージしようとすると、svn:mergeinfoは存在せず、彼らはそのチェンジセットを採用することを決定する必要があります。本当にマージしたくない場合は、プロジェクトの最上部からマージし、最上位ディレクトリ(svn:mergeinfoが唯一の変更となります)、必要なファイル。

mergeinfoについて知りたいと思っている人よりも多い

2
thekbb