そのブランチをトランクにマージできないのはなぜですか?
Subversion(および他のすべてのrc)内でブランチなどを維持するためのさまざまな方法があります。直感的に設定できるのは、従来の方法です。フォルダーを作成し、ブランチ/トランク/タグ間のフォルダーリビジョン間の違いをコピーします。階層内のノードをsvnするのはフォルダーに他ならないので、これは機能します。svnには特別な魔法はありません。
Subversionは、時間軸が追加されたファイルシステムに他なりません。
したがって、あなたがしなければならないのは、ブランチノードにコミットした変更(リビジョン)をトランクにマージすることだけです。
svn merge -r <start>:<current> https://<server>/<repo>/<path>/branches/dev <trunk-checkout>
(つまり、ブランチに最初にトランクのリビジョンが含まれていた場合。ただし、他に言わなかったので、含まれていると思います。トランクから完全に独立している場合、なぜブランチと呼ばれるのですか?さらに重要なのは、なぜですか?トランクにマージしますか?)
更新2013-01-26:
話し合いの結果、この状況には空のトランクが含まれ、データが入力されたり使用されたりすることはなかったため、ブランチからの変更をマージするものは何もないことが明らかになりました。代わりに、開発全体が「ブランチ」と呼ばれるもので始まり、実際にはこのプロジェクトの唯一の「トランク」として機能しました。
したがって、ソリューションは次のようになります。この場合、現在ブランチと呼ばれているものをプロジェクトトランクに移動し、その新しい(より適切な)名前で開発を続行します。開発は、新しいチェックアウト内で、または既存のチェックアウトをリベースすることによって行われます。今後、ブランチは以下のように使用する必要があります。したがって、不適合な名前を修正し、プロジェクトの一般的な表現と一致するように現在の状況を調整します。
- トランクは、開発の「メイン」ラインが行われるか統合される場所です
- トランクは、ブランチ内からの開発が再びマージされる場所です
- 特定の時点でトランクをフォークすることにより、いくつかのブランチが作成される場合があります
- これらのブランチ内では、複雑な開発を、干渉することなくトランクへの他の変更と一緒に実装できます。
- これらのより複雑な開発が行われ、新しい機能またはアーキテクチャが安定した(「準備ができている」)と、ブランチからの変更をトランクにマージして戻すことができます。