私たちの会社では、svnからgitへの移行を実験しています。システム管理者に過度の負担をかけずに、チームにとってこれをシンプルにしたいと考えています。
各チームが持っている(Windows)ネットワークドライブ上にベアリポジトリを作成し、そこからプッシュ/プルすることで、これを行う方法を見つけました。認証はファイルアクセス許可を介して調整されるため、httpsや認証全体を設定する必要はありません。素晴らしい!(VPN経由でドライブにリモートアクセスできるため、httpsまたはgit + sshソリューションとほぼ同じくらい優れています)
さらに良いことに、ネットワーク共有はすでにバックアップされているため、無料でバックアップを取得することもできます。ただし、このバックアップは予想外に実行されます(バックアップは数時間続くため、翌営業日に続く可能性があります)。
したがって、開発者がリポジトリにプッシュしている間にドライブがバックアップされている可能性があります。SVNでは、これが問題を引き起こす可能性があり、それがsvn hotcopy
存在する理由です。
gitにも同じリスクがありますか?誰かがプッシュしている間に、裸のリポジトリをどこかにコピーできますか?当然のことながら、プッシュされた状態を復元できなくても大丈夫です。プッシュ先に作成されたバックアップを復元するために何らかの作業を行う必要がある場合も問題ありません(つまり、半分完了したプッシュ残差データを削除することによって)。しかし、裸のリポジトリ全体が壊れて使用できなくなった場合、それは問題です。
私はいくつかの実験を行い、問題を見つけることができませんでしたが、これは問題がないという意味ではありません。
編集:私は「正しい方法でそれを行う」という答えを受け入れました。それは私が長期的にやろうとしていることだからです。ただし、今のところ、自動バックアップが開始される約1時間前にgit clone
、ベアリポジトリ全体(同じドライブ上)を簡単に解決できます。自動バックアップが使用されている場合、「実際の」リポジトリが誤ってコピーされる可能性があります。その時点では、最近複製されたコピーに問題はありません。バックアップがいつ終了するかではなく、いつ開始するかがわかっているので、それで十分です。