理解を深めるために:svnブランチは他のブランチ(トランク)のコピーですか? つまり、svn はそれらの間の関係を追跡していないということですか? したがって、コピー名をブランチ myproject-xyz として作成し、それをコミットすると、それがブランチになりますか? では、マージなどの操作を使用できますか? ありがとう。
2 に答える
はい、svn copy コマンドを使用してリポジトリにプロジェクト ツリーのコピーを作成する必要があります。ソースコードのコピーが作成されます。ブランチには任意の名前を付けることができます。
コピーができたら、コードをチェックアウトできます。
$ svn checkout http://svn.example.com/repos/calc/branches/my-calc-branch
A my-calc-branch/Makefile
A my-calc-branch/integer.c
A my-calc-branch/button.c
Checked out revision 341.
$
Subversion はブランチの履歴を認識しており、いつトランクから分岐したかを認識しています。同期マージを実行するには、まず、ブランチの作業コピーが「クリーン」であること、つまり svn status によって報告されたローカルの変更がないことを確認します。次に、単に実行します。
$ pwd
/home/user/my-calc-branch
$ svn merge ^/calc/trunk
--- Merging r345 through r356 into '.':
U button.c
U integer.c
--- Recording mergeinfo for merge of r345 through r356 into '.':
U .
$
svn status を使用して、メイン コピーからのコードの変更を確認します。
$ svn status
M .
M button.c
M integer.c
$
はい、svn copy source_url/trunk source_url/myproject-x.y.z -m "Insert comment here"
ブランチを作成した場合myproject-x.y.z
。両者の間に明示的に追跡された接続はありません。でさらにコミットを行った後、それmyproject-x.y.z
を にマージtrunk
できますが、仮想の にマージすることも選択できますbranch_b
。
dosや Unix/Linux/OSXsvn copy
ではなく、コマンドを使用する必要があります。copy
cp