システムAとシステムBが以前に同期されたディレクトリを共有し、rsync
Aがファイルを変更し、Bが同じファイルを変更し、ユーザーがAからBに変更した場合はrsync
どうなりますか?
と同様のマージ競合が発生する可能性がありますかgit
?
紛争は容易に解決できるか。
答え1
Rsync は競合解決を試みません。それはそうではありません。 Rsyncには共通の祖先に関する情報がないため、両方のパーティがファイルを変更したことを検出する方法さえありません。
デフォルトオプションを使用すると、ソースファイルが無条件にターゲットにコピーされ、ターゲットファイルが上書きされます。-u
ターゲットファイルがない場合、またはソースファイルより古い場合にのみソースファイルをコピーするオプションを使用してください。ターゲットファイルが存在しない場合にのみ、オプションを使用して--ignore-existing
ソースファイルをコピーします。
競合を検出するには、ファイルが最後に同期されたタイミングを知るためのツールが必要です。これにより、{ターゲット=古いバージョン、ソース=新しいバージョン}と{ターゲット=新しいバージョン1、ソース=新しいバージョン2}を区別できます。 。使用調和、まさにそうです。 Unisonは双方向同期デバイスです。つまり、最後の同期以降に変更されたファイルをファイルの未変更の面にコピーします。どちらの当事者も変更していない場合、または両方の当事者が同じように変更した場合、何もしません。両方が異なるように変更された場合は、スキップしたり、一方向にコピーしたり、別の方向にコピーしたりするオプションが提供されます。
自動競合解決、つまり自動マージ(可能な場合は常に手動マージが必要な場合があります)が必要な場合は、gitなどのバージョン管理システムを使用してください。