LoginSignup
4
4

More than 5 years have passed since last update.

GitlabをSubversionにバックアップする

Posted at

とても残念ですが、世の中まだまだsvnしか使えない人たち・使えない環境があります。

そんな環境で快適にバージョン管理するために、gitlabを導入してgit svnに移行しようとした場合、「成果物はsvnで管理しなければならない」みたいな規則の中では、gitlabにpushしたからOKとはいきません。
あと、gitlabはあくまで試験導入という場合にも、何かの拍子にgitlabのデータが壊れてしまうととても困ります(もちろん、分散レポジトリなので手元が生き残っていればまだセーフですが)。

ということで、git(lab)に移行したいがいろいろな事情でSubversionにも成果物を残さなければならない場合に私がやっている方法を書いておきます。
環境は以下の通りです。

  • Fedora 21
  • Giblab CE 7.9.2 公式の手順にしたがってダウンロード&インストールします
  1. バックアップ先のsvnレポジトリを準備する
    1. レポジトリを取ってきますcd ~ && svn co http://example.com/svn/trunk
    2. バックアップを保存するディレクトリを作ってコミットしておきますcd trunk && mkdir gitlab-backup && svn add gitlab-backup
  2. gitlabのバックアップを作成する(sudoが必要です)
    1. gitlab-rake gitlab:backup:createを実行すると、初期状態で/var/opt/gitlab/backups/にxxxxxxxx_gitlab_backup.tarのようにgitlabのバックアップが作成されます
    2. 最初に作ったディレクトリに展開しますtar xf /var/opt/gitlab/backups/*.tar
  3. svnに保存する
    1. 最初に作った保存先ディレクトリを空にしておきますcd ~/trunk/gitlab-backup && rm -rf *
    2. backup_information.ymlはgitlabが更新されていなくてもバックアップした時刻で変化してしまうので除いておきます(後で定期バックアップしたくなった場合に邪魔になるから)rm -f backup_information.yml
    3. 全ファイルを追加しますsvn add *
    4. コミットしますsvn commit -m "backup gitlab"

↑の1は最初に一度だけやっておけばよくて、2はsudoのcrontabに、3は通常ユーザーのcrontabで定期実行させれば、変更があった場合に定期的にsvnにバックアップ出来る環境が、とりあえず整います。

もっといい方法あれば教えて下さい。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4