私は数年間ソースコントロールを使用してきましたが(ソースセーフの年数を数えると)、決して専門家ではありません。現在、古いバージョンのSourcegearVaultを使用しています。私たちのチームは現在、チェックアウトとロックのモデルを使用しています。むしろアップデートとマージモデルに切り替えたいのですが、他の開発者を説得する必要があります。
開発者(私ではない)がチェックアウトとロックとして機能するように設定した理由は、ファイルの反逆によるものでした。当社はコンサルティング会社と協力して開発作業の多くを行っています。数年前、私がここにいるずっと前に、彼らは更新とマージのためにソース管理を設定していました。コンサルタントはチェックインに行きましたが、マージエラーが発生しました。その後、彼らは数ヶ月間切断モードで作業することを選択しました。ついにプロジェクトをテストする時が来たとき、たくさんのバグが現れ、コードベースが劇的に異なっていることが発見されました。何週間もの作業は、やり直さなければならなくなりました。そこで彼らは解決策としてチェックアウトしてロックしに行きました。
2人以上が同時に同じプロジェクトで作業するのは非常に難しいので、チェックアウトしてロックするのは好きではありません。任意のタイプの新しいファイルを追加したり、ファイルの名前を変更したりするたびに、ソース管理は.csprojファイルをチェックアウトします。これにより、他の開発者がファイルを追加/名前変更することができなくなります。
ファイルだけをマージ可能にすることを検討しました.csproj
が、csprojはIDEで自動生成され、2つの異なるVS生成ファイルが同じコードを生成することを保証できないため、Sourcegearサイトはこれは悪い考えだと言っています。
私の友人(他の開発者)は、解決策はプロジェクトをすぐにチェックインすることだと言っています。私にとって、これに関する問題は、ビルドされないローカルコピーがある可能性があり、ビルドを取得するのに時間がかかる可能性があることです。ビルドが機能するまでに数時間かかる可能性があります。つまり、その間、他の誰もファイルを作成して名前を変更することはできません。
正しい解決策は、マージ可能なモデルに切り替えることだと私は反論します。「レネゲードファイル」の問題に対する私の答えは、それは貧弱なプログラマーの規律の問題であり、貧弱な規律の修正として弱いプログラマーの選択を使用するべきではないということです。代わりに、プログラマーの規律の欠如を修正するための行動を取る必要があります。
それで、誰が正しいのですか?チェックインしていますか-反逆ファイルの問題に対する正当な回答を確認してください?それとも、この.csproj
問題は複数の開発者にとって非常に面倒な問題ですか?または、Sourcegearが間違っていて、csproj
ファイルを更新およびマージするように設定しても問題ありませんか?