web-dev-qa-db-ja.com

SVNブランチとタグにどの命名規則を使用していますか?

私たちの会社はSVNブランチとタグの命名規則を作成しており、ブランチ/タグ名に日付またはビルド番号のみを使用するという考えには慣れていません。

このパスが何を表しているのか、どのような努力が行われているのかなどをより明確に定義できる名前が必要だと思います。

あなたはどう思いますか/使用しますか?

38

私は常にタグ(および通常は分岐)の前にYYYYMMDD形式の日付を付け、その後にタグまたは分岐の目的の説明を続けます。

例:20090326_Release_v6.5または20090326_Post_Production_Update

もちろん、これは標準のトランク/タグ/ブランチ階層の下にあります。

日付のプレフィックスにより、すべてのタグまたはブランチが作成順に表示されるようになります。これは、タグの大きなフォルダーをスキャンする場合、説明でソートするよりもはるかに便利です。作成された日時と理由のタイムラインが表示されます(ミニログメッセージなど)。

13
Evan

まあ、いくつかの異なる種類のブランチがあるので、ブランチの名前は非常に異なる場合があります。

どのソース管理があなたに与えるか覚えておく価値があります。タグ名は単に「v1.4」ではなく、「/ CashCowProject/tags/v1.4」です。タグに「/CashCowProject/tags/CashCowProject-v1.4」という名前を付けることは少し冗長ですが、他に何が必要でしょうか?

リビジョン管理では、タグが作成された日付と時刻に完全にアクセスできます。リビジョン管理では、特に最初の行で使用するコミットメッセージも提供されます。

このすべての情報を踏まえると、次のような一貫した適切なソースから必要なすべての情報を提供する単純なビューをまとめることは難しくありません。

CashCowProject
    v1.4 - 26 March 2009     :  With Added whizzbang (more)
    v1.3 - 13 February 2009  :  Best graphics!       (more)
    v1.2 - 01 January 2009   :  Upgraded security    (more)

ここでタグ名が本当に役立つのは、バージョン番号だけです。すべての情報をタグ名に含めようとしている場合、それは少し冗長で、見栄えがよくないでしょう。

9
Jim T

機能ブランチの場合、何が行われているかにちなんで名前を付けます。たとえば、ORMをLINQからSQLにNHibernateに移動し、「NHibernate」というブランチを作成しました。ブランチを完成してトランクにマージしたら、ブランチを削除して将来の名前の競合を保存できます。できる限りブランチを取得する必要がある場合は、履歴を調べて復元するだけです。

ブランチに関連するストーリー/引用/ジョブ番号がある場合、それをブランチの名前に追加します。 "NHibernate_429"を使用すると、追跡システムで簡単に参照できます。ただし、英語を最初に使用するのは、英語が開発中の場合にそれを実際に参照するためです。

タグのようなものについては、タグ付けする対象に依存するため、何をしたいかを言うのは難しいです。リリースにタグを付ける場合は、「リリースX.X.X.X」またはそのような単純なものを使用します。例として特定のリリースを振り返る場合、日付やビルド番号が何であるかを気にする必要はありません。

4
Garry Shutler

開発者のタスクはすべてバグ追跡システムに入ります。このバグ追跡システムには、各タスクに関連付けられたIDがあります。

したがって、任意のタスクのブランチ名には、以下を使用します。

ticketId_TicketSubject

ブランチに複数のticketIdが含まれている場合は、それらをブランチ名に結合するだけです。

ticketId1_ticketId2_Description

そうすれば、チケットを作成していて、どのブランチをビルドするかを知りたい場合、簡単に調べることができます。同様に、ブランチビルドでチケットを検索したい場合も、簡単に見つけることができます。

タグの場合は、バージョン番号自体でタグ付けします。

各支店の場所も。次のようなトップレベルの階層があります。

/branches

/tags

/trunk

次に、すべての製品/プロジェクトが、それぞれのサブフォルダー内のそれぞれの下に配置されます。

/trunk/project1/

/branches/project1/TicketId_Description

3
Brian R. Bondy

私たちが使用するもの(主に受け入れられた慣習に従う):

projectName
 |
 --trunk
 |
 --tags
 |
 --branches

トランクの下にはメイントランクがあります。

タグの下で、すべてのリリース(内部リリース、テストリリース、顧客リリースの両方)にタグを付けます。そこでは、タグ名としてバージョン番号を使用します。

ブランチの下には、リリースしたメジャーバージョンごとに1つのブランチがあります(この場合、1つのXP反復の結果)。これらは、メジャーバージョン( "v5.03"、 "v6。 04 ")。さらに、大きな変更または特別なバージョンのための内部ブランチがあります。名前は自由形式であり、名前はブランチが何を表しているかを人々に伝えるためのものです。たとえば、「workaround_customerA」、「module_x_reorg」などです。

1
sleske

ブランチに「.X」バージョンを付けます。タグには番号が付いています。

たとえば、ブランチはFoo-1.2.3.X、タグはFoo-1.2.3.1、Foo-1.2.3.2などになります。

また、トランクからブランチが作成されるとすぐに、変更前に作成される特別なタグFoo-1.2.3.0もあります。これは、ブランチとタグをいつでも初期状態にdiffできるようにするためです(数日後にはトランクが異なる可能性があるため)。この方法により、マージが少し簡単になり、ブランチで変更されたコードを簡単に特定できるようになりました。

1
Andrew Barnett

より良い:

<projectname>_<Year>_<minor>_00

お気に入り:

XYZ_14_01_00

0
SteveScm