2009-03-25 77 views
36

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

私たちは、このパスが何を表すかについて大きな定義をもたらすの名前が必要だと思う、どのような努力が行われているが、その他

あなたはどう思う/使うのですか?

+0

私は(後でマージする大ブレイクの変更を)実験枝を区別するために使用することができますどのような命名規則依頼する質問を拡張したいと思います古いバージョンを維持するために作成されたブランチからのものです。おそらく、さらに多くの「種類」の枝があります。 – SandRock

答えて

2

私たちの開発タスクはすべて、バグ追跡システムに入ります。このバグ追跡システムには、各タスクに関連付けられたIDがあります。私たちが使用するすべてのタスクの支店名用ので

ticketId_TicketSubject

ブランチは我々だけでブランチ名にそれらを組み合わせて、複数のticketIdsが含まれていますticketId1_ticketId2_Description

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

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

各支店の場所については、そして、私たちの製品/プロジェクトのすべてが自分のサブフォルダの中にあるもののそれぞれの下に行く

/branches

/tags

/trunk

:私たちは、このようなトップレベルの階層構造を持っています。機能ブランチのために

/trunk/project1/

/branches/project1/TicketId_Description

4

、行われているものの後に名前を付けます。たとえば、ORMをLINQからSQLに移行してNHibernateに移し、 "NHibernate"というブランチを作成しました。ブランチを完了してトランクにマージしたら、ブランチを削除して将来のネーミング競合を保存することができます。できるブランチを本当に取得する必要がある場合は、ヒストリーを掘り下げて復元するだけです。

ブランチに関連するストーリー/見積り/ジョブ番号がある場合は、ブランチの名前などに追加します。 "NHibernate_429"はあなたの追跡システムに対して簡単に参照できます。しかし、私はいつも英語が最初に出てくるでしょう。なぜなら、人々が開発中のときにそれをより現実的に参照しようとしているからです。

タグのようなものについては、あなたがタグ付けしているものに応じて何をしたいかを言うのは難しいです。リリースにタグを付ける場合は、「Release X.X.X」を使用します。X "などの単純なものではありません。具体的なリリースを例に挙げて、日付やビルド番号がどのようなものかを気にする必要はありません。

1

私たちは、 :私たちはメイントランクを持っているトランクの下

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

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

。。。

支店では、私たちがリリースしたすべてのメジャーバージョン(私たちの場合、1回のXP反復の結果)ごとにブランチを作成しました。それらはメジャーバージョン( "v5.03"、 "v6.04")のように名前が付けられています。さらに、主要な変更や特別なバージョンのための内部支店があります。名前は自由形式であり、その名前はブランチが表すものを人に伝えるものとされています。 サンプルは "workaround_customerA"、 "module_x_reorg"などとなります。

0

私たちのブランチには、番号が付いた ".X"バージョンが与えられます。

例えば、ブランチはFooの-1.2.3.Xだろう、とタグはFooの-1.2.3.1、Fooの-1.2.3.2など

我々はまた、特別なタグを持って、Fooのだろう-1.2.3.0。これは、トランクからブランチが作成されるとすぐに、変更が行われる前に行われます。それで、ブランチとタグをいつでも最初の状態にすることができます(数日後にトランクが異なる可能性が高いため)。これにより、マージが少し簡単になりました。ブランチ内でどのコードがどのように変更されたかを簡単に把握することができます。

13

私はいつもタグの前にYYYYMMDD形式の日付を付け、その後にタグやブランチの目的を説明します。

例えば、20090326_Release_v6.5または20090326_Post_Production_Update

これは当然の標準トランク/タグ/枝の階層下にあります。

日付プレフィックスは、すべてのタグまたはブランチが作成順に表示されることを保証します。タグの大きなフォルダをスキャンする場合は、説明で並べ替えたほうがはるかに便利です。ミニログメッセージのように、いつ、なぜそれらが作成されたのかのタイムラインが表示されます。

+1

バグ追跡システムが意図している情報を追跡するためのメカニズムとしてタグを使用することは、直感的ではないようです。私が今までに見たことのある唯一のものは、タグにバージョン番号を使用していることです。そのバージョン番号は、バグ追跡システムのリリースに関連しています。 –

8

ブランチングはかなり開いています。いくつかの異なる種類のブランチがあるため、それらの名前は非常に異なる場合があります。

ソースコントロールがあなたに与えるものを覚えておく価値があります。タグ名は "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) 

唯一のタグ名というここにはバージョン番号が本当に便利です。あなたがすべての情報をタグ名に入れようとしているのであれば、それはちょっとばかげていると思います。

+0

しかし、私はまだ私のタグに "Project-4.8"という名前をつけています。 –

+1

この考えはタグではうまくいくと思っていますが、私は実験的な枝を開くことができ、数字はこの枝が何であるかについては何も教えてくれません。 –

+2

実際、私はこの回答からブランチの名前を完全に残しています。数字は良いブランチ名ではありません。 –

0

ベター:

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

のような:

XYZ_14_01_00

関連する問題