いいえ、簡単なことではありません。当然のことながら、これは恐ろしい戦略です。
SVN は、ファイルのツリーの一連のスナップショットとして使用することを意図しています。そのため、ツリーからブランチにチェリー ピッキングを行ってから、それらをマージして戻そうとするのは面倒ですが、不可能ではないと思います。さらに、各タスクで何が起こるかをテストする必要があります...とにかく、アプリケーション全体に対してテストする必要があります。だから、あなたが求めていることをするのはちょっと無意味です。
さて、設計上モジュール化されている場合は、各モジュールを個別のツリーまたは個別のリポジトリに格納し、完全なアプリケーションを一連の として維持できますが、svn:externals
実際にはより複雑になります。標準的な方法で物事を行う方がおそらく良いと思います。
そして、それが不可能だと思わないなら、少なくとも私をある方向に向かわせてみてください。
CLIツールからブランチを作成する必要があります.特定のファイルのセットをコピーしてブランチを作成することだけをサポートするクライアントを私は知りません(そのファイルのセットがリポジトリ内の特定のディレクトリの内容でない限り) )。したがって、あなたまたは開発者は次のようなことをしなければなりません:
svn cp --parents SVNURL/trunk/file1.sql SVNURL/trunk/file2.sql SVNURL/branches/taskname
問題は、これが中間ディレクトリ構造ではなく、トランクからファイルをコピーするだけであることです。したがって、トランクにフラットなファイル レイアウト以外のものがあれば、すべてをマージして戻すときにおそらく混乱するでしょう。
これを回避する唯一の方法は、次のように各ファイルを個別にコピーすることです。
svn cp --parents SVNURL/trunk/file1.sql SVNURL/branches/taskname
svn cp --parents SVNURL/trunk/file2.sql SVNURL/branches/taskname
svn cp --parents SVNURL/trunk/migrations/file3.sql SVNURL/branches/taskname/migrations
要するに、マージするときは、一度に 1 つのファイルをチェリーピック マージする必要があるということだと思います。これは、あまりメリットがないのに、私にはかなりのオーバーヘッドのように思えます。
ここで扱っていることとワークフローについて説明した後でも、これは悪い考えだと思います。TRUNK を BRANCH にコピーして、必要なファイルだけを操作すれば、作業がずっと楽になります。ログを見るだけで、これらのファイルが何であるかを簡単に確認できます。
また、開発者がタスクの範囲外のものを誤って変更することを心配している場合は、タスクの影響を受ける既存のファイルへのコミット アクセスと新しいファイルを追加するための書き込みアクセス許可のみを開発者に与える許可を設定するだけでよいと確信しています。必要であれば。