2011-12-01 16 views
0

私は現在私のプロジェクトにSVNを使用していますが(私は間もなくgitを試していますが)、私はまだ感じていますが、ほとんどの基本(コミット、更新、分岐、マージなど)それを適切に使う方法を知らない。ちなみに、私のプロジェクトは現在自分自身を含んでいます。バージョン管理規則とベストプラクティス

私たちには、SVNサーバー、ライブWebサーバー、dev/test Webサーバー、ワークステーションがあります。私は、複数の新しいファイルを含む新しい機能を作成し、メッセージを「新しい機能Xを作成しました」というメッセージをコミットします。これはdevサーバーでチェックアウトされた後、エラーを確認し、エラーを修正し、コミットし、チェックアウトし、すべてのエラーはなくなっています。これらのエラー修正の中には、単純なタイプミスであったものがあります。

私はちょっと混乱しています。主な機能コミットは小さなタイポの修正コミット( "意味がある"場合)と "同等"であるように見えます。変更やマイナーな修正はありません。また、「意味のあるコミットメッセージ」は、実際のエラー修正を入力するのに10倍かかることがありますので、それを空白にしたり、「er」と入力しないでください。これは全く正しいとは思わない。それで私は何が欠けているのですか?それとも、私は怠け者ですか?

答えて

2

すべてのバージョン管理システムでは、コミット/リビジョンは同等であり、変更の大きさに基づいて重要度が割り当てられません。これは分岐とタグ付けが現れる場所です。ブランチ上の前のタグ/からコミットの "機能的に完全な"セットにタグを付け、それをtest/webサーバーで処理します。 (また、自動テストと継続的な統合を提案することもできます)。

意味のあるコミットメッセージは、バージョン管理の一部であり、パーセルです。あなたの変化がどれほど小さいかにかかわらず、メッセージを意味のあるものにしてみてください。私は多くの開発チームがコミットメッセージを固定形式で固定し、バグトラッカー番号などの必要な情報をいくつか持っています。ただ1人の小さなプロジェクトであっても、今のところ適切なメッセージを提供するのは常に良いことです。 Gitでは、必要に応じて後でコミットメッセージを簡単に編集し、中央リポジトリにプッシュすることができます。こうすることで、コミットしている間に小さなメッセージ(小さなメッセージは意味をなす必要はないとは言いません)にして、あなたの履歴を「微調整」するのに時間を費やすことができます。

2

ベストプラクティスに関する驚くほど良い本はPractical Perforceです。これは、Perforceという独自のバージョン管理システムに関する本ですが、ほとんどすべてのバージョン管理システムを使用する最善の方法であるPerforceを使用する最良の方法について説明しています。

私は他のバージョン管理システムにも適用してきたこの本の多くのベストプラクティスを学びました。他の人にも、Perforceの使用を計画していないとしても、いくつかの優れたベストプラクティスのアイデアがあります。

  • 環境ベースの分岐を使用しないでください(つまり、開発中のものは最終的にUATで終わるので、特別なUATブランチ)。
  • 必要に応じて分岐します。これは主に、リリースがのコード完了であり、リリースに含まれていない新しいものがコードに入れられると、リリースのために分岐することを意味します。
  • トランクではなく、ブランチからの解放。これにより、次のリリースで作業しながら、修正プログラムを実行することができます。
  • 修正プログラムを選択して選択しないでください。期待通りに動作しません。リリースしたくない別のコード変更に依存する別のコード変更に依存するコード変更が常に存在します。
  • 各変更時に自動テストとビルドを実行できる継続的な統合システムを使用する。

もう1つのバージョン管理システムについての本を読むのは奇妙に思えますが、ほとんどのバージョンのコントロールブックは、そのソフトウェアを使用する上でのベストプラクティスではなく、 。これは、両方をカバーする数少ない書籍の1つであり、その多くは他のバージョン管理システムにも適用できます。

+0

gitには「必要なときに分岐してからではなく」が適用されますか?一般的な知恵は、gitが分岐やマージをうまく処理し、その分岐が早く、しばしば良い方法であるようです。 –

+0

@KeithThompson - 合併がうまくいくかどうかは問題ではありません。ソフトウェアがどれほど素晴らしいかにかかわらず、ブランチングとマージは苦労です。大きな問題は、ブランチ、問題、およびマージと競合の解決を追跡することです。連続ビルドシステムを使用する場合は、各ブランチにビルドが必要です。したがって、分岐が少ないほど、プロジェクト管理が容易になります。それはブランチを意味するものではありません。つまり、管理者がパワーポイントスライドを作成することを愛する精巧な分岐階層を作成しないことを意味します。 –

+0

CVSのマニュアルには、バージョン管理に関する最も一般的なヒントの1つが含まれています。imho: "[バージョン管理システム]は通信の代替手段ではありません" – araqnid

関連する問題