パラメータを使用-r
して、特定のリビジョンを参照できます。その際、@rev
リビジョンの固定を使用して、特定のリビジョンで Subversion リビジョンのレイアウトを参照していることを確認することもできます。以下は、リビジョン 577 のトランクからタグを作成し、このタグを呼び出しますREV-1.2
。
$ svn cp -r 577 https://subversion.assembla.com/svn/my_assembla_svn_directory/trunk
https://subversion.assembla.com/svn/my_assembla_svn_directory/tags/REV-1.2
trunk
、branches
、およびディレクトリがない場合はtags
、作成するために作業を移動する必要があります。
$ # Move the current directory to the "trunk"
$ svn cp https://subversion.assembla.com/svn/my_assembla_svn_directory \
https://subversion.assembla.com/svn/my_assembla_svn_directory/trunk
$ # Make a corresponding tags and branches directories too
$ svn mkdir https://subversion.assembla.com/svn/my_assembla_svn_directory/branches
$ svn mkdir https://subversion.assembla.com/svn/my_assembla_svn_directory/tags
$ # Now, we can delete the old location. Let your developers know this,
$ # so they're not surprised by this and will be able to do a "svn relocate"
$ svn delete https://subversion.assembla.com/svn/my_assembla_svn_directory/
$ # Whoops. I should have done the tagging when I had a chance.
$ #Oh well, we'll use the `@rev` pinning:
$ svn -r557 cp https://subversion.assembla.com/svn/my_assembla_svn_directory@557 \
https://subversion.assembla.com/svn/my_assembla_svn_directory/tags/REL-1.2
Subversion は、コピーを除いて、タグ付けと分岐を実装していません。これは珍しいことではありません。Perforce は同じ方法で分岐を実装します。実際、慣れると非常にうまく機能します。
- 有効なブランチとタグを簡単に確認できます (
svn ls
正しいディレクトリで a を実行するだけです)。
- タグとブランチの完全な履歴は簡単に確認できます。誰が、いつ、なぜ変更したかなどを確認できます。
- タグまたはブランチの完全な履歴が表示されます。誰かがタグやブランチを変更した場合、誰がそれを行ったかが非常に明確にわかります。
- 開発者がさまざまなブランチやトランクから何を分岐またはタグ付けするかを選択するときに、他の多くのバージョン管理システムで見られる複雑なタイプの分岐を思いとどまらせます。これにより、履歴の追跡が非常に困難になります。Subversion のスキームでは、ブランチとタグがプロジェクト内のすべてのファイルに影響を与えると考えることが推奨されます。