1

オンサイトの Linux サーバーに膨大な数の git リポジトリがあり、オフサイトの Windows サーバーに毎日バックアップする必要があります。非常に多くのファイルがあるため、単純なコピーの代わりに rsync を使用して、時間とネットワーク帯域幅を節約したいと考えています。(Windows の宛先ドライブをマウントした後に rsync を使用します。) また、すべてのファイルを tar するか、1 つの大きなファイルに圧縮するソリューションも避けたいと思います。これは、オフサイト サーバーが他のオフサイト サーバーにさらに複製されるためです。大きな tar ファイルを使用すると、変更された 1 つまたは 2 つの小さなファイルをコピーするだけでなく、大きな tar ファイル全体をコピーする必要があります。(*1)

私の質問は、--deletersync で削除フラグ ( ) を使用する必要があるかどうかです。
rsync の削除フラグは、宛先では見つかったがソースでは見つからなかったファイルを削除します。必要なファイルがソースから誤って削除された場合、宛先でも削除されるため、削除フラグをオフのままにしておくのが理想的です。削除フラグを使用しないと、宛先が必要なすべてのファイルのスーパーセットになるリスクがあります。

これは問題ですか?これにより、宛先の git リポジトリが何らかの形で破損することはありますか? あなたの回答に違いが生じる場合は、早送りコミットのみをオンサイトの git サーバーにプッシュすることを許可します。早送りコミットのみが行われた場合、git が .git ディレクトリ内のファイルを削除しないということでしょうか?

(*1) 編集 1: 複数のファイルを 1 つに圧縮するソリューションを避けたいというメモを追加します。したがって、git bundle は必要なソリューションではありません。rsync が適していない場合は、お勧めの代替アプローチを知りたいです。

4

1 に答える 1