LoginSignup
2
1

More than 5 years have passed since last update.

Git to svn のまとめ

Last updated at Posted at 2017-03-19

はじめに

GitLabを使っているけど、いろんなしがらみでsvnにも履歴を送らないといけないのでやったこと。

環境

使うのはsubgit。
イメージはこんな感じ。

GitLab --(pull)--> work.git --(push)--> subgit ===> svn

subgitのリポジトリにpushすればsvnに同期する。
ただしsubgitはbareリポジトリなので、subgit側からpullできない。
なので、GitLabからpullしてsubgitにpushするためのworkリポジトリを作る。
もっといいやり方がありそうな気がするけど。

subgit

subgitリポジトリを作る。

# subgit configure --svn-url https://your.svn.server/repos svn-sync-repos
# (config設定)
# subgit install svn-repos.git
# git clone svn-sync-repos work.git

work.gitにGitLabを紐づけて、イニシャルセット。

# git remote add gitlab git@your.gitlab.server:yourname/repos.git
# git pull gitlab master
# git push -u origin master

これでsvnにデータが流れるはず。

jenkinsで自動化

手作業なんてやってられないので、当然自動化する。
まずはjenkinsでGitLabからデータを取得する準備。
つっても、普通に使う場合と同じで、jenkinsの実行ユーザーのsshキーを登録する。

# sudo su - jenkins
# ssh-keygen
# (簡単のため、パスワードは空にする)

これでOK。

jenkinsジョブ

定期実行ジョブにする。リアルタイムである必要は全くないので。

イニシャルで登録した時のpush/pullをシェルまたはバッチに記述するだけ。

# git pull gitlab master
# git push -u origin master

これでうまく行ってるはず。

リアルタイムに同期したければ、ビルドトリガをそのように。

2
1
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
2
1