TortoiseSVN を使用して C# アプリケーションのバージョン管理を行っています。突然、svn サーバーがダウンしました。コードの 2 つの異なるバージョンがあります。それらをどのようにマージできますか?
2 に答える
サーバーが復旧するまでお待ちください。
本当にこれを行う必要がある場合: 1
svn diff working_copy_1 > diff.diff
cd working_copy_2
patch -p0 < diff.diff
ただし、これには問題があります。
- 最終的にこれを SVN にコミットすると、1 つのコミットとして認識されます (2 つの変更セットを分離する方法はありません)。
- 2 つの作業コピーのベース リビジョンが異なる場合、上記のマージは厄介な競合を引き起こすか、特定の変更を見逃してしまいます。
1. これは、あなたが Linux または類似の環境で作業していることを前提としています (TortoiseSVN を使用しているため、そうではないと思います!) Windows に相当するものが何であるかはわかりません
patch
。 .
私はあなたがすでにあなたの答えを得ていると思います.
多くの人々が毎日SVNサーバーを使用してコミットし、チームで使用される変更を更新している大規模なチームで作業している場合、ある晴れた日に突然、SVNサーバーがダウンしていることに気付きます。
あらゆる変更をマージする必要があり、混沌とした状況であるため、非常に苦労しています。
立ち往生している理由:- SVN は集中型のバージョン管理システムであるため
すべてのマシンが中央サーバーに接続されています。中央サーバーがダウンすると、すべてが停止します。
同じためのソリューション:-
GIT、Mercurial、Bazaar などの分散バージョン管理システムの使用。
役立つ理由:-
すべてのマシンが中央サーバーにのみ接続されている集中型システムとは異なり、分散バージョン管理システムでは、各マシンも相互に接続できます。基本的には一種のローカル リポジトリ自体が個人のマシン上に形成されます。
ここで得られる利点:-
中央サーバーがダウンした場合、Client1 によって行われた変更は、Client1 に接続することによって Client2 によって更新されます。
そのため、中央サーバーが利用可能になるのを待つ必要はありません。通常の作業を続行できます。サーバーが利用可能になったら、コードをコミットできます。