2016-05-31 9 views
0

私たちは私たちがプッシュしてから引き出すことができるWindows共有、で中央リポジトリでのgitを使用している小規模オフィスで働いています。 家庭や旅行などで働くためには、「外の世界」から中央のレポに到達する可能性があります。私たちのインターネット接続は非常に遅いので、中央のリポジトリを「内側」または「外側」にすることはできません。は自動的に同期2つの書き込み可能なGitリポジトリ

私の簡単な試み従っていました:

  • 内部WINのネットワーク共有で、中央リポジトリを作成します。git init --bare
  • は1(例えばgithubのか、外部WIN共有または他の何か)「外」作り
  • は、内部レポコール git remote add EXTERNALREPO <pathToIt>
  • git fetch --tags EXTERNALREPOを言って、すべてのx分/時間を実行するバッチを作成し、git push --tags EXTERNALREPO

「内部」で作業しているときは、内部のレポをクローン/プッシュ/プルします。外出先では、外部レポを使用します。

質問:これは道のりです、もっと良い方法があるのですか、まったく間違っていますか?

関連:

  1. Two-way git mirror - 私たちは多くの人ではないと私はおしっこする必要がロックしないと思います。
  2. Safe master-master setup with git? (writable git mirror)
  3. How to keep 2 git repositories in sync automatically - 私の知る限りでは、プッシュがある限り、それはすべてのフックを実行するために取るよう持続、およびWindows共有を使用しているため、クライアントはそれを実行するために持っているので、それはないだろう溶液。

更新1:私は今わずかに調整された構成を思いついた。

  • 内部Windows共有上の内部レポ:外部のWindows共有上のgit init --bare
  • EXTERNALレポ:git init --bare
  • 両方のレポ:

    git config receive.denyNonFastForwards 1 
    git config receive.denyDeletes 1 
    git remote add {INTERNAL|EXTERNAL} file:///... 
    
  • すべてのX秒/分/時間、 git push --all {INTERNAL|EXTERNAL}git push --tags {INTERNAL|EXTERNAL}を内部で、次に外部リポジトリで呼び出します。

答えて

0
  1. "Windows共有のリポジ​​トリは" 悪い&醜いアイデア(TM)
  2. 使用後*それは
  3. 擬似CVCSを起こるようにEXTERNALにプッシュするための内部でフックですDVCSでは醜いです(誰もが地元の旅行レポを職場に持ち込み、そこから同期することができます)
+0

1.なぜですか?私はgitがそれに容易に対処できると思った。 2.すべてのフックを完了する必要がある限り、プッシュが持続するのは間違いですか?その場合、内部からの内部使用による利得は消えてしまうでしょう。そして、EXTERNALレポから内部レポへの変更をどのように得ることができますか? 3.その声明とparen文ではどういう意味ですか? – Bowi

+0

私の質問で**アップデート**にも注意してください。 – Bowi

関連する問題