2016年12月の更新:ミラーリングはGitLAb EE 8.2+でサポートされています:「リポジトリミラーリング」を参照してください。
Xiaodong Qiがコメントしたように:
この回答は、コマンドラインを使用せずに簡略化できます(Gitlabリポジトリ管理インターフェイスで設定するだけです)
元の回答(2013年1月)
リモートミラーリポジトリがベアリポジトリである場合は、受信後のフックをgitlabで管理されているリポジトリに追加し、その中のリモートリポジトリにプッシュできます。
#!/bin/bash
git push --mirror slave_user@mirror.host:/path/to/repo.git
Gitolite(Gitlabで使用)が言及しているように:
いくつかの特定のリポジトリにのみフックをインストールする場合は、サーバーに直接インストールします。
これは次のようになります。
~git/repositories/yourRepo.git/hook/post-receive
警告(2014年10月更新)
Ciro Santilliはコメントで指摘しています:
今日(2014年第4四半期)、 GitLabは管理するすべてのリポジトリにgithub.com/gitlabhq/gitlab-shell/tree/…を自動的にシンボリックリンクするため、これは失敗します。
したがって、この変更を行うと、変更するすべてのリポジトリがプッシュを試みます。
アップグレード時に発生する可能性のある競合は言うまでもなくgitlab-shell
、現在のスクリプトはbashではなくrubyスクリプトです(削除しないでください)。
現在のディレクトリ名を読み取り、それとリモートの間の全単射を確認することでこれを修正できますが、私は人々がそれらのものから遠く離れていることをお勧めします
Feeadback「GitLabリポジトリにプッシュした後のリモートミラーリポジトリへの自動プッシュ」を参照(および投票)してください。
2016年7月の更新:GitLab EE(Enterprise Edition)にこの種の機能が追加されました:MR 249
- ミラーリポジトリ設定の下にリモートプッシュURLを入力する機能を追加します
- リモートリポジトリにプッシュする実装コードを追加します
- 新しいバックグラウンドワーカーを追加する
- 最新の更新日と同期エラーが存在する場合はそれらを表示します。
- リモートミラーを1時間ごとに同期します。
最近のRemote Mirror Repository
(17940号)には注意が必要です。
私は現在、私の会社Lossless GmbH(https://www.npmjs.com/~lossless)のオープンソースnpmモジュールの主な開発をGitHub.comからGitLab.comに移行しようとしています。
GitHubからすべてのリポジトリをインポートしていますが、元のGitHub URLでMirror Repository
スイッチをオフにしてからオンにしようとすると、次のようなエラーが発生します。Remote Mirror Repository
Remote mirrors url is already in use
これが失敗するリポジトリの1つです:https ://gitlab.com/pushrocks/npmts2
か月前に編集
結局のところ、それは複数のステップを必要とするだけです:
- ミラーリポジトリを無効にする
- 保存を押します
- URlを削除します
- 保存を押します
- 次に、リモートミラーを追加します