真のソース管理なしでコードの変更をマージする
-
03-07-2019 - |
質問
同じVS2005ソリューションに取り組んでいる開発者が数人いますが、ソース管理は非常に悪いです。 (私たちの会社はHarvestを使用していますが、私たちは自信のない投票をしています)。
今、私たちは共有LANドライブ上のファイルを操作しています。明らかに、これはいくつかの問題を引き起こします。しかし、ローカルで作業し、スプレッドシートで触れたファイルを追跡し、すべてを手動でマージするよりも良いと思います。誰かが変更をマージする戦略を持っていますか?
問題のいくつかは、企業の美徳(ハーベストの義務化など)のために存在します。これらの同じポリシーにより、新しいツールを環境に導入することは禁止されています。したがって、新しいソフトウェアの購入/ダウンロードを回避する戦略が最適です。
解決
共有をソース管理システムであるかのように扱います。共有を読み取り専用にします。これにより、開発者は変更を加えるためにローカルコピーを取得する必要があります。これで、比較対象のやや安定したバージョンができました。これにより、「マージ」を実行できるようになります。 "チェック中"コードインは、ファイルの何らかのバックアップ戦略で構成され(おそらく、新しいファイル名の一部としてタイムスタンプとユーザー名を使用してファイルのコピーを作成し)、元のファイルを新しいバージョンで置き換える必要があります。
そうは言っても、信頼できる実際のソース管理システムなしでこのタイプのアクティビティを実行することは難しく、エラーが発生しやすくなります。
他のヒント
Harvestの使用方法を学びます。物事をスムーズに進めるには少し手間がかかりますが、全体として優れたソース管理システムです。
別の可能性としては、スクーターとの比較を超えてがあります。これには、ファイルとディレクトリに対する2つおよび3つの方法のマージと優れたdiff機能があります。それについてもう少し知りたい場合は、 the delphiを聞いてください。 ジムマッキースによるポッドキャスト。
しかし、他のほとんどの場合と同様に、Gitを使用するか、Harvestを学習することをお勧めします。ソース管理システムでdiffアプリケーションを変更できる場合、Beyond Compareは優れた代替品になります。
gitを入手して、すべての開発者のマシンにローカルにインストールします。次に、レプリケートを複製するように設定します。
バージョン管理とマージという2つの明確な問題があります。バージョン管理システムを使用しない理由はまったくありません。会社が(何らかの理由で)ソリューションを決定した場合は、それを使用します。気に入らない、または「自信を持っていない」それを使用しない正当な理由ではありません。共有ドライブを使用してソースコード管理システムを模倣するのは、とてつもないことです。
マージは2番目の問題です。 diff / mergeツールが必要です。一つを選ぶ。これなしでどうしてこんなに長くなったの?
Araxisはすばらしいものです。費用は数ドルです。 SourceGearの人々はしばらくの間、差分/マージツール(Vaultに付属しているツール)を自由に配布しています。また、堅実な競争相手でもあります。それらは私が使用した2つで、現在市場に出回っていることがわかっています。すでに言及しているものもあります。
すべてを手で結合することは、解決可能な解決策ではありません。 VCSを使用しないで それを組み合わせることは、災害のレシピです。
手動でダウンロードしたいのでなければ、おそらく何かをダウンロードする必要があるでしょう。 Winmerge を強くお勧めします。それは無料のオープンソースであり、おそらく混乱を起こさない小さなダウンロードの方が良いでしょう。
mergeと呼ばれる標準的なUNIXコマンドラインツールがあり、2つの変更セットをファイルにかなりインテリジェントにマージします。構文は次のとおりです。
merge mine older yours
「鉱山」の場所変更を含むファイル、「古い」は元のファイルであり、「yours」は「他の人の変更が含まれています。
これを行うためにUNIX(またはMac OS X)ボックスが横たわっているかどうかはわかりません。
共有ドライブを使用するのは良い考えではなく、「自信なし」という票を獲得します。
他の変更を簡単に上書きすることは簡単すぎるでしょう。変更の追跡も、ブランチやタグ/ラベルなどの方法もありません。