競合するファイルに対するTortoise SVNの次の2つのオプションの違いについて説明してください。
サイドノートに。なぜこの用語のバグとしての混乱した使用を誰も報告したことがないのですか?
「それら」を使用して競合を解決すると、競合する編集がある2つのファイルをチェックインしようとすると、SVNは変更を破棄し、代わりに他の人の変更を使用します。
「mine」を使用して競合を解決するとは、変更を破棄し、代わりにファイルのバージョンを使用することを意味します。
さらに参照するためにリスト全体を追加したかったのです。
(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
同意する。
それが言った場合、それはより明確になると私には思えます:
BuzzAnnは正しいです。 mine vs theirsは曖昧です。リポジトリにあるものも私のものかもしれないからです。明確な区別はリポジトリとローカルコピーです。
SVNコマンドラインマージは、特にブランチをトランクにマージするときに混乱します。 「私の変更」はブランチで行った変更ですが、それはSVNに従って間違っています。物事を本当に複雑にするために、SVNはパスをSOURCE、TARGET、およびコマンドラインヘルプのHEADと呼びます。
簡易回答、このマージステートメントを実行する場合ディレクトリC:\ Project1\Trunkから
svn merge -r 60:68 C:\Project1\branches\UpdatesToProject1
"Mine"はSVNが実行されているディレクトリ(C:\ Project1\Trunk)です。
「Theirs」は、マージするディレクトリであり、コマンドラインで指定したものです(C:\ Project1\branches\UpdatesToProject1)
SVNが、MINEとTHEIRSが参照するパスを提供してくれたら、本当に素晴らしいでしょう。
リポジトリ内にあるものがもはや(唯一)自分のものではないことを受け入れると、アクセスできるすべての人と共有され、より明確になる可能性があります。
このコンテキストでは:
「それら」とは、「リポジトリ内のチームの共有コード」を意味します。「私の」とは、(私の)「作業コピー」を意味します(おそらくローカルマシン上)
そのため、「それらを使用」は、作業コピーを共有コピーに置き換え、ローカルマシンに存在する変更を破棄します。作業コピーのコードがリポジトリに保持されるべきものであると決定し、現在リポジトリにあるものを破棄する「鉱山を使用する」。