3
  1. 数日前、ソース コードのローカル コピーを「更新」しました (つまり、SVN リポジトリからコードを取得しました)。
  2. その後、コードは他の人によって変更され、リポジトリにコミットされました。
  3. ここで、コードにいくつかの変更を加えて、リポジトリにコミットしたいと思います。

どうすればいいですか?

頭に浮かぶ最初の答えは、変更を加えて「svn commit」することです。ただし、この場合、他のユーザーによって追加された変更を削除しようとしているように見えます。さらに、最近、意図しない変更を誤ってコードに加えてしまった可能性もあります。

頭に浮かぶ2番目の答えは次のとおりです。最初に、ローカルコードを「svn update」し、変更を加えてから「svn commit」します。ただし、この場合、「更新」はsvnサーバーからの新しいコードを、上記の偶発的な望ましくない変更を含む可能性のある私のコードとマージしようとします。

頭に浮かぶ3番目の答えは、最初に「svn revert」、変更を加えてから「svn commit」です。ただし、「svn revert」によって偶発的な変更を削除するため(これは良いことです)、それも機能しませんが、古いバージョンのコードを取得し、それをsvnサーバーに「svn commit」しようとすると、他の人が行った変更を削除しようとしているように見えます。

それで、解決策は何ですか。要約すると、SVN リポジトリからコードの最新バージョンを取得したいのですが、このコードをローカルの変更とマージしたくありません (ローカルの変更を上書きしたい) .

4

1 に答える 1

1

できることは 2 つあります。

  1. 新しいクリーンな作業ディレクトリをチェックアウトします。できない理由はありません。利点、それはあなたのものに触れません。
  2. 更新を行った後、変更を元に戻します。これにより、クリーンなチェックアウトが得られますが、すべての変更が失われます。

通常、自分が行った変更を保持し、他の人が行った変更にそれらをマージします。クリーンなチェックアウトが必要な場合は、新しい作業ディレクトリをチェックアウトします。これが最も簡単で、変更を保持します。変更が不要な場合は、それらを元に戻し、実行svn statusして作業コピー (またはバージョン管理されていないファイル) に変更がないことを確認してから、更新を行います。新しいクリーンチェックアウトよりも少し速くなります。

于 2013-04-08T14:44:08.157 に答える