1. ホーム

[解決済み】「ローカル編集、更新時に着信削除」メッセージの解決方法

2022-04-17 02:04:53

質問

を実行すると svn status . , これを得ることができます。

!     C auto-complete-config.elc
      >   local edit, incoming delete upon update
!  +  C auto-complete.elc
      >   local edit, incoming delete upon update
!  +  C popup.elc
      >   local edit, incoming delete upon update
!  +  C fuzzy.elc
      >   local edit, incoming delete upon update

基本的に、これらのファイルはリポジトリにあるべきものではありません。開発者が削除したのです。それから、私は svn rm ... を間違えて削除してしまった(本来なら svn update . となります。)

で、今、私が svn status . このようなツリーの衝突のメッセージが表示されます。

私はドキュメントを見つけた ここで しかし、ドキュメントによると、どのように「マージ」すればよいのかわかりません。

どうすればいいのでしょうか?

私の作業コピーは、リポジトリと同期していると思います。なぜこのようなメッセージが表示されるのかわかりません。これらのファイルは削除されるべきで、私が知る限りではどこでも削除されています。私は試してみました svn update .svn revert . を実行しても、このメッセージが表示されます。 svn status . .

解決方法は?

ショートバージョン

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update
$ touch foo bar
$ svn revert foo bar
$ rm foo bar

ファイルではなくディレクトリについて競合が発生した場合は、以下のように置き換えます。 touchmkdirrmrm -r .


注)以下のような場合にも、同様の手順で対応できます。

$ svn st
!     C foo
      >   local delete, incoming delete upon update
!     C bar
      >   local delete, incoming delete upon update


ロングバージョンです。

これは、他の人がファイルを削除して先にコミットしている間に、あなたがファイルを編集したときに起こります。svn の善良な市民として、あなたはコミットの前に更新を行います。今、あなたは衝突しています。ファイルを削除することが正しいことだとわかったあなたは、自分の作業コピーからそのファイルを削除します。svn は満足するどころか、ローカルのファイルがないこと、そして競合するアップデートがあり、最終的にファイルが削除されることを望んでいることを訴えます。よくやった、svn。

すべき svn resolve が何らかの理由で動作しない場合は、次のようにします。

初期の状況です。ローカルファイルがない、アップデートが競合している。

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update

競合するファイルを再作成します。

$ touch foo bar

ディレクトリに関するコンフリクトの場合は、次のように置き換えます。 touchmkdir .

新しい状況です。ローカルファイルをリポジトリに追加する(そうだ、svn、何を言ってもいい)、アップデートはまだコンフリクトしている。

$ svn st
A  +  C foo
      >   local edit, incoming delete upon update
A  +  C bar
      >   local edit, incoming delete upon update

ファイルをsvnが好む状態に戻す(つまり、削除する)。

$ svn revert foo bar

新しい状況です。ローカルファイルがsvnに知られていないため、更新が競合しなくなりました。

$ svn st
?       foo
?       bar

これで、ファイルを削除することができます。

$ rm foo bar

ディレクトリに関するコンフリクトの場合は、次のように置き換えます。 rmrm -r .

svn はもう文句を言いません。

$ svn st

完了です。