1. ホーム
  2. svn

[解決済み] SVNから更新する際、ローカルの変更を常に(強制的に)上書きすることは可能でしょうか?コンフリクトを無視しますか?

2022-02-19 03:46:28

質問

自分のブランチで作業すべきなのは分かっているのですが、あるプロジェクトの同じブランチに何人かで作業しています。開発者の一人がコミットし、私は自分のローカルコピーをSVNからの最新版で更新したかっただけなのです。svn update'を実行すると、次のような出力が得られます。

Restored 'index.html'
U    somescript.php
Conflict discovered in file.xml'.
Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options: 

ローカルの変更を上書きして、subversion から最新のファイルを取得し、すべての競合を無視するオプション/方法はありますか?

Stackの他の投稿をいくつか見てみましたが、どれも質問の答えになっていません。プロジェクトを削除して、もう一度チェックアウトするようにと言われています。それが最善の方法ならそうなのでしょうが...。しかし、なぜ強制的にアップデートできないのか、もっと詳細が知りたいのです。 ありがとうございます。

EDIT

そこで、「すべてのオプションを表示する」を選択しました。

(s) すべてのオプションを表示する: s

  (e)  edit             - change merged file in an editor
  (df) diff-full        - show all changes made to merged file
  (r)  resolved         - accept merged version of file

  (dc) display-conflict - show all conflicts (ignoring merged version)
  (mc) mine-conflict    - accept my version for all conflicts (same)
  (tc) theirs-conflict  - accept their version for all conflicts (same)

  (mf) mine-full        - accept my version of entire file (even non-conflicts)
  (tf) theirs-full      - accept their version of entire file (same)

  (p)  postpone         - mark the conflict to be resolved later
  (l)  launch           - launch external tool to resolve conflict
  (s)  show all         - show this list

オプションの「tc」にした方がいいのかな?

どのように解決するのですか?

もし本当に HEAD (レポの最新リビジョン) のコピーが欲しいのなら

svn revert -R <path> // discard all your changes inside path (recursive)
svn update           // get latest revision of all files (recursive)

以上です。

最後の「コミット」以降のすべての変更が失われることに注意してください。

EDITです。 を追加しました。 -R <path> から Isu_guyの回答 完全性を保ち、読者が1つの完全な答えを見つけられるようにするため。