3

Tortoise でファイルを移動してコミットに成功した経験がある人はいますか?後で別の変更をコミットすると、次のようなツリーの競合が発生します。

  1. 元の場所にあるファイルは削除されましたが、カメでは行方不明としてマークされています
  2. 新しい場所にあるファイルはそこにありますが、既に追加されているとマークされています。

(私は tortoise SVN を使用しており、クライアントとサーバーは 1.60 を超えています)

ディレクトリまたはファイルを変更した人は誰もいません (svn ログによると)。

  1. なぜこうなった?
  2. それを回避する方法はありますか?
  3. 発生した場合、フォルダー全体を削除して再度更新するよりも、問題を解決するより洗練された方法はありますか?
4

3 に答える 3

3
  1. Tortoise の「移動」コマンドではなく、Windows エクスプローラーの「移動」コマンドを使用してファイルを移動したようです。前者は、Subversion ツリーを更新せずにファイルシステム内のファイルを移動するだけです (古いファイルをバージョン管理から削除し、古いファイルの履歴を新しいファイルにリンクします)。

  2. 常に TortoiseSVN の「移動」コマンドを使用するか、履歴なしでファイルを移動する場合は、Windows エクスプローラーを使用してファイルをコピーし、Tortoise で新しいバージョンを追加してから、Tortoise で古いバージョンを削除します。

  3. 古いファイルの親フォルダーを右クリックし、[変更の確認] を選択して、バージョン管理から不足しているとマークされたファイルを削除できます。

于 2010-06-01T15:38:28.773 に答える
1

ファイルをコミットしたように聞こえますが、移動先/移動元のディレクトリではありません。ディレクトリもコミットする必要があります。

于 2010-06-01T15:52:50.737 に答える
0

フォルダーを右クリックし、「名前の変更」を選択し、パラメーターとして「newpath\to\folder」を使用すると、ツリーの競合が発生しました。失敗したクリーンアップコマンドやその他のことを何度も繰り返した後、最終的に次の方法で正気を取り戻しました。

  1. 新しいクリーン チェックアウトを別のフォルダーに開く
  2. 壊れた 'newpath\to\folder' をクリーン チェックアウトから削除してコミットする svn
  3. 「oldpath\folder」を選択し、右クリックしてドラッグし、svnを新しい場所に移動します
  4. 途中で他の操作を行わずに、変更をただちにコミットする
  5. 壊れたチェックイン 'oldpath\folder' に移動し、ドロップまたは取り残されたファイルを 'newpath\to\folder' に手動でコピーします
  6. 手動でコピーしたファイルを新しいものとして追加します。

手動で更新されたファイルのシームレスな履歴チェーンは壊れていますが、少なくとも今は作業を続けることができます。

于 2010-11-25T20:35:14.170 に答える