リポジトリをどのように編成するかについては、2つの主要なSVN規則があります(これらは単なる規則であり、そのように行う必要はないことに注意してください)。
repo_root -
trunk - Project1
- Project2
...
branches -
- branch1
- Project1
- Project2
...
- branch2
- Project1
- Project2
...
...
tags -
- tag1
- Project1
- Project2
...
- tag2
- Project1
- Project2
...
...
また:
repo_root -
- Project1
- trunk -
- branches -
- branch1 -
...
- tags -
...
- Project2
...
リポジトリがすでに2番目の方法で編成されていて、プラグインが別のプロジェクトである場合は、それを分岐するだけです(必要svn copy repo_root/Project/trunk repo_root/Project/new_branch
に応じて、http、svnなどを挿入します)。
リポジトリが最初の方法、または2番目の方法で編成されているが、プラグインが独自のトランク/ブランチ/タグを持つ別個のプロジェクトではない場合は、プラグインのみを含むブランチを作成できますsvn copy --parents repo_root/trunk/[path_prefix]/plugin repo_root/branches/new_branch/[path_prefix]/plugin
。
次に、トランク(または他のブランチ)からこのブランチに、プラグインに加えられた変更のみをマージするように注意する必要があります(たとえばsvn merge repo_root/trunk ...
、ではなくsvn merge repo_root/trunk/[path_prefix]/plugin ...
)。
通常の(たとえば、完全なトランクまたはブランチ)SVNのブランチとマージよりも多くの問題が発生することはありません。
重要な注意事項:プラグインがプロジェクトの他の部分に依存している場合(おそらくそうです)、ブランチで開発するときに、混合作業コピーを維持する必要があります:トランクをチェックアウトし、プラグインディレクトリにcdして、実行しますsvn switch ^/branches/new_branch/[path_prefix]/plugin
。