0

理解を深めるために:svnブランチは他のブランチ(トランク)のコピーですか? つまり、svn はそれらの間の関係を追跡していないということですか? したがって、コピー名をブランチ myproject-xyz として作成し、それをコミットすると、それがブランチになりますか? では、マージなどの操作を使用できますか? ありがとう。

4

2 に答える 2

3

はい、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 
$ 

私のお気に入りのhttp://svnbook.red-bean.com/を参照してください

于 2013-06-25T16:02:44.923 に答える
1

はい、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ではなく、コマンドを使用する必要があります。copycp

于 2013-06-25T16:01:55.830 に答える