質問

いくつかのプロジェクトでソース管理を使用してみましたが、まだよく理解できません。これらのプロジェクトでは TortoiseSVN を使用し、リビジョンは 1 行だけでした。(トランク、ブランチなどはありません。) ソース管理システムをセットアップするための推奨方法がある場合、それは何ですか?そのように設定する理由と利点は何ですか?集中型ソース管理システムと分散型ソース管理システムの仕組みの根本的な違いは何ですか?

役に立ちましたか?

解決

Eric Sink による以下の記事をチェックすることをお勧めします。

http://www.ericsink.com/scm/source_control.html

何らかのリビジョン管理システムを導入することは、プログラマーがコードの変更をレビューし、誰が誰に何をしたかを理解するためにおそらく最も重要なツールです。たとえ 1 人のプロジェクトであっても、変更によって何が問題になったのかを理解するために、現在のコードを以前の既知の動作バージョンと比較できることは非常に貴重です。

他のヒント

ソース管理は、ソース コードの巨大な「元に戻す」ボタンと考えてください。チェックインするたびに、ロールバックできるポイントが追加されます。分岐/結合を使用しない場合でも、この機能だけでも非常に価値があります。

さらに、ソース管理の「権限のある」バージョンが 1 つあることにより、バックアップがはるかに簡単になります。

集中型 vs.配布されています...実際の違いは、分散型では、ソース管理の「正式な」バージョンが必ずしも 1 つあるわけではないという点です。ただし、実際には依然としてマスター ツリーが存在するのが通常です。

分散ソース管理の大きな利点は 2 つあります。

  1. 分散ソース管理を使用すると、ソース ツリー全体がローカル マシン上に存在します。コミットし、ブランチを作成し、あたかも一人であるかのように作業でき、変更をプッシュアップする準備ができたら、変更をマシンからマスター コピーにプロモートできます。「オフライン」で作業することが多い場合、これは大きなメリットとなります。

  2. ソース管理の配布者になるために誰の許可も得る必要はありません。A 氏がプロジェクトを実行しているが、B 氏と C 氏が変更を加えて、その変更を相互に共有したい場合、分散ソース管理を使用すると、それがはるかに簡単になります。

基本を理解するのに非常に役立つ 2 つの記事を紹介します。Sink の会社は有益であるだけでなく、Vault と呼ばれる優れたソース管理製品を販売しています。これは単一ユーザーには無料です (私はその会社とは何の関係もありません)。

http://www.ericsink.com/scm/source_control.html

http://betterexplained.com/articles/a-visual-guide-to-version-control/

ボールト情報については www.vault.com をご覧ください。

ブランチを行わない場合でも、タグを使用してリリースをマークすると便利な場合があります。

昨日ソフトウェアの新しいバージョンを公開し、次のバージョンに向けて大きな変更を加え始めたと想像してください。昨日のリリースの重大なバグを報告するためにユーザーから電話がありました。変更によって全体が不安定になるため、単に修正して開発トランクから変更をコピーすることはできません。

リリースにタグを付けていた場合は、その作業用コピーをチェックアウトし、それを使用してバグを修正できます。

次に、タグでブランチを作成し、そこにバグ修正をチェックインすることを選択できます。こうすることで、トランクのアップグレードを続けながら、そのリリースでさらに多くのバグを修正できます。これらの修正をトランクにマージして、次のリリースに含めることもできます。

Subversion をセットアップするための一般的な標準は、リポジトリのルートに 3 つのフォルダーを置くことです。幹、枝、タグ。トランク フォルダーには、現在の開発の「メイン」ラインが保存されます。多くのお店や状況では、これだけしか使っていません...コードの単一の作業リポジトリだけです。

タグ フォルダーを使用すると、さらに一歩進んで、特定の時点でコードを「チェックポイント」できるようになります。たとえば、新しいビルドをリリースするときや、場合によっては単に 作る 新しいビルドの場合は、コピーをこのフォルダーに「タグ付け」します。これにより、その時点でコードがどのようになっていたかを正確に知ることができます。

ブランチ フォルダーには、特別な状況で必要になる可能性のあるさまざまな種類のブランチが保持されます。場合によっては、ブランチは実験的な機能や、安定するまでに長い時間がかかる可能性のある機能に取り組む場所になることがあります (したがって、それらの機能はまだメインラインに導入したくない場合があります)。また、ブランチは、将来のリリースを目的とした変更を含むコードのメイン行とは独立して編集およびデプロイできる、コードの「本番」コピーを表す場合もあります。

いずれにせよ、これはシステムの構築方法の 1 つの側面にすぎませんが、この構造について少し考えることが重要だと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top