2012-07-04 17 views
5

私たちはサーバー上でsvnを使用しますが、gitをローカルで(git-svn経由で)使用しています。共有する準備ができていない速度/分岐/コミットを利用することができます。バックアップgitリポジトリをローカルの "git push --mirror"または "git remote update"と同期させる方法

これはうまくいきますが、何か問題が起きた場合に備えて、一日のうちに一台のコンピュータを変更するだけで不快です私たちのファイル共有上にプライベートバックアップレポを持っているように。

私は、このようなコマンドを使用して、私の地元のレポのコピーを作成しました:

git clone --mirror MyRepo z:/MyRepo.git 

を、これで私の地元にリモートとしてこれを追加しました:

最高です何
git remote add backup z:/MyRepo.git 

一日の終わりにバックアップリポジトリを私のローカルリポジトリと同期させておく方法はありますか?

私はそれが次の1つだと思っていますが、同等かそうでないかは分かりません。 git push --mirror backup

  • またはバックアップリポジトリ内:ローカルリポジトリで

    1. git remote update

    または実際に良い方法はありますか?

  • +0

    cronジョブの中の.gitディレクトリの夜間のrsyncのようなものは、バックアップソリューションとしてgit自体を使用するよりも適切かもしれません。手動の方法を探しているなら、裸のリポジトリに 'git push --mirror'を実行します。 – meagar

    +0

    @meagar残念ながら、私たちはすべて、毎晩拘束されなければならないラップトップを手に入れています。現在、git pushのことをやっているだけで、オプション2が本質的に同じかどうかを知りたいです。 – Argos

    +0

    私は 'git push --mirror backup'(バックアップは私のリモートバックアップgit repoです)を使います。 'git fetch backup refs/remotes/*:refs/remotes/*'とgit-svn resyncを実行しているバックアップから復元する必要がある場合は、スクリプトを使います。 SVNサーバー全体を解析する必要があります。これは、すべてのプロジェクトを移植するのに数日かかりました。その場合、バックアップを作成してバックアップから更新するだけです。 –

    答えて

    0

    SVNリポジトリを使用してサーバーにアクセスできる場合は、次のスキームを使用できます。SubGitをSVNリポジトリにインストールします(SVNリポジトリと常に同期するGitリポジトリがサーバー上に作成されます。それをSVNリポジトリへのGitインタフェースとみなしてもよい)。 そして、Gitリポジトリのように、git-svnの代わりに純粋なGitインタフェース(pull、push)を使用してください。すべての変更は自動的にSVNと同期されます。 あなたがサーバー上に直接ミラーを持っているので説明するよりも、このアプローチが少し異なりますが、面白いかもしれません。

    +0

    私はSVNサーバーへのアクセスがないことが恐れている、良い解決策だったでしょう。 – Argos