私は Subversion (そしておそらく一般的なリポジトリ) の議論でこれらの言葉をよく目にしてきました。私はここ数年間プロジェクトにSVN
を使ってきましたが、これらのディレクトリの完全な概念を理解したことはありませんでした。
それらはどういう意味ですか?
ベストアンサー1
うーん、タグがブランチに似ているというニックの意見には同意できない。タグは単なるマーカーだ
トランクプロジェクトの開始から現在に至るまでの開発の主体となります。
支店トランク内の特定のポイントから派生したコードのコピーであり、トランク内のコードの整合性を維持しながらコードに大きな変更を適用するために使用されます。大きな変更が計画どおりに機能した場合、通常はトランクにマージされます。
鬼ごっこトランクまたはブランチ上で保存したい時点になります。保存する主な理由は、これがソフトウェアのメジャー リリース (アルファ、ベータ、RC、RTM のいずれか) であるか、トランク上でメジャー リビジョンが適用される前のソフトウェアの最も安定した時点であるかのいずれかです。
オープンソース プロジェクトでは、プロジェクトの利害関係者によってトランクに受け入れられなかった主要なブランチが、フォークのベースになることがあります。たとえば、他のソース コードと共通の起源を共有する完全に独立したプロジェクトなどです。
ブランチ サブツリーとタグ サブツリーは、次の方法でトランクと区別されます。
Subversion では、システム管理者がフック スクリプトを作成できます。フック スクリプトは、リポジトリへの変更のコミットなど、特定のイベントが発生したときに実行されます。一般的な Subversion リポジトリ実装では、"/tag/" を含むパスは作成後に書き込み禁止にするのが一般的です。その結果、タグは一度作成されると変更できなくなります (少なくとも "一般" ユーザーにとっては)。これはフック スクリプトによって行われ、タグが変更されたオブジェクトの親ノードである場合はそれ以上の変更を禁止することで不変性を強化します。
また、Subversion にはバージョン 1.5 以降、「ブランチ マージ トラッキング」に関連する機能が追加され、ブランチにコミットされた変更を増分的な「スマート」マージのサポートによりトランクにマージできるようになりました。