ここにSubversionを実装するようになったときも、同じ質問をしました。4〜6のプロジェクトにまたがる約20人の開発者がいます。「答え」の良い情報源は見つかりませんでした。ここでは、過去3年間に私たちの回答がどのように発展したかをいくつか示します。
-必要なだけコミットしてください。私たちの経験則は、変更が失われた場合に再実行する必要があるという問題になるほど十分な作業を行った場合は必ずコミットすることです。15分ごとにコミットすることもあれば、数日かかることもあります(そうです、1行のコードを書くのに1日かかることがあります)
-以前の回答の1つとして提案されているように、さまざまな開発パスにブランチを使用します。現在、私たちのプログラムの1つには、3つのアクティブなブランチがあります。1つはメイン開発用、1つはプログラムを並列化する未完成の作業用、もう1つはXML入力および出力ファイルを使用するように改訂する作業用です。
-本番へのリリースを識別するためにタグを使用する必要があるとは思いますが、タグはほとんど使用しません。
単一の道に沿って進んでいる開発を考えてください。ある時点または開発の状態で、マーケティングが製品の最初のバージョンをリリースすることを決定したため、「1」(または「1.0」またはあなたが持っているもの)というラベルの付いたパスにフラグを設定します。別のときに、明るいきらめきがプログラムを並列化することを決定しますが、それには数週間かかり、その間人々は主な道を進み続けたいと決定します。したがって、パスにフォークを作成し、さまざまな人々がさまざまなフォークを歩き回ります。
道路の旗は「タグ」と呼ばれ、道路の分岐点は「分岐」が分かれています。時折、枝が一緒に戻ってくることもあります。
-実行可能ファイル(またはシステム)を構築するために必要なすべての資料をリポジトリに入れます。つまり、少なくともソースコードとメイクファイル(またはVisual Studioのプロジェクトファイル)です。しかし、アイコンや設定ファイル、その他すべてのものがある場合、それはリポジトリに入ります。いくつかのドキュメントはリポジトリへの道を見つけます。プログラムに不可欠なヘルプファイルなどのドキュメントは確かにあり、開発者向けドキュメントを置くのに便利です。
ソフトウェアを探している人々に単一の場所を提供するために、製品リリースのWindows実行可能ファイルをそこに置くことさえします-私たちのLinuxリリースはサーバーに行くので、保存する必要はありません。
-リポジトリが常にビルドして実行する最新バージョンを提供できる必要はありません。そのように機能するプロジェクトもあれば、機能しないプロジェクトもあります。決定はプロジェクトマネージャー次第であり、多くの要因に依存しますが、プログラムに大きな変更を加えると失敗するでしょう。