ブランチを作成するにはどうすればよいですか?
-
08-06-2019 - |
質問
SVN でブランチを作成するにはどうすればよいですか?
解決
Subversion での分岐は、非常に軽量で効率的なコピー機能によって容易になります。
分岐とタグ付けは事実上同じです。を使用して、リポジトリ内のフォルダー全体をリポジトリ内の別の場所にコピーするだけです。 svn copy
指示。
基本的に、これは、バックアップ、タグ、ブランチなど、フォルダーのコピーが意味するものは慣例に従っていることを意味します。物事をどのように考えたいかに応じて (通常は、過去に使用した SCM ツールに応じて)、自分のスタイルをサポートするためにリポジトリ内にフォルダー構造をセットアップする必要があります。
一般的なスタイルは、リポジトリの最上部に という名前のフォルダーを多数置くことです。 tags
, branches
, trunk
, 、など。- 全体をコピーできるようになります trunk
(またはサブセット)を tags
および/または branches
フォルダー。複数のプロジェクトがある場合は、各プロジェクトの下にこの種の構造を複製することをお勧めします。
この概念に慣れるまでに時間がかかるかもしれませんが、それでもうまくいきます。使用する慣例をあなた (およびあなたのチーム) が明確に理解していることを確認してください。また、適切な命名規則 (ブランチ/タグが作成された理由とそれが依然として適切かどうかを示すもの) を用意し、廃止されたブランチをアーカイブする方法を検討することもお勧めします。
他のヒント
を使用して新しいブランチを作成します。 svn copy
次のようにコマンドを実行します。
$ svn copy svn+ssh://host.example.com/repos/project/trunk \
svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH \
-m "Creating a branch of project"
リポジトリが https 経由で利用できる場合は、このコマンドを使用して分岐できます。
svn copy https://host.example.com/repos/project/trunk \
https://host.example.com/repos/project/branches/branch-name \
-m "Creating a branch of project"
svn cp /trunk/ /branch/NEW_Branch
トランクにローカルな変更がある場合は、次を使用します Rsync
変更を同期するには
rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
通常は、リポジトリ内に複数のブランチを保持できるように、これを svn+ssh://host.example.com/repos/project/branches/mybranch にコピーしますが、構文は有効です。
ここでいくつかのアドバイスがあります リポジトリのレイアウトを設定する方法.
トランク名(「テスト」として)からブランチを作成するとして、次を使用します。
svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
ブランチをマージする予定がある場合は、これを参照することを強くお勧めします。
Subversion 1.5 ではより多くのマージ トラッキングが組み込まれていると聞きましたが、私はその経験がありません。私のプロジェクトは 1.4.x 上にあり、svnmerge.py は命の恩人です。
新しい SVN ユーザーへの重要なヒント。これは、正しい URL を迅速に取得するのに少し役立つかもしれません。
走る svn info
現在チェックアウトされているブランチに関する有用な情報を表示します。
URL には (ルート フォルダーで svn を実行した場合)、コピー元の URL が表示されます。
新しく作成したブランチに切り替えるには、 svn switch
指示:
svn switch http://my.repo.url/myrepo/branches/newBranchName
- 現在のプロジェクトの外に新しいフォルダーを作成します。任意の名前を付けることができます。(例:「Customization」という名前のプロジェクトのチェックアウトがあります。そして、「Project1」、「Project2」などの多くのプロジェクトがあります。そして、「Project1」のブランチを作成したいとします。したがって、まず「カスタマイズ」を開き、右クリックして新しいフォルダーを作成し、「Project1Branch」という名前を付けます。
- 「Myproject1」を右クリックします。TortoiseSVN -> ブランチ/タグ。
- 作業コピーを選択します。
- ブラウザを開きます...「To URL」の平行のちょうど右にあります。
- カスタマイズを選択....右クリックしてフォルダーの追加を選択します。作成したフォルダーに移動します。ここでは「Project1Branch」です。[OK] ボタンをクリックして追加します。
- この新しいバンチをチェックアウトしてください。
- もう一度、作成するブランチを作成するプロジェクトに移動します。TortoiseSVN を右クリックし、[ブランチ/タグ] をクリックします。次に、作業コピーを選択します。URL をブランチ名として指定することもできます。{あなたの IP アドレス/svn/AAAA/Customization/Project1Branch} のように。URL に名前を設定すると、この名前のみでフォルダーが作成されます。{あなたの IP アドレス/svn/AAAA/Customization/Project1Branch/MyProject1Branch} のように。
- OKボタンを押します。これで、ログが ...作業コピーはブランチに保存されます。
- これでチェックアウトして、仕事を楽しむことができます。:)