Trac/Redmine+Subversion+Jenkinsなどを捨ててGitLabに移行するまでの道のり

作業途中を個別の記事を書いております。随時こちらにリンクを追記していきます。

途中で方針変更や移行を挫折し中断する可能性もあるかもしれません。

- [x]  Subversion → Git
- [x]  Redmine → GitLab
  - [x]  Roadmap → Milestone
  - [x]  Issue 
  - [x]  Wiki (Textile) → Wiki
- [x]  Trac → GitLab
  - [x]  Milestone (via Redmine Roadap)
  - [x]  Ticket → Issue (via Redmine Issue)
  - [x]  Wiki (MoinMoin) → Pages (Markdown + MkDocs)

## 経緯

Trac+Subversion+Jenkins, Redmine+Subversion/Git+Jenkins, GitLab CE などを時代に合わせてオンプレで運用してきたが、サーバーの管理・維持、新規開発者のスキル（とくに Git ネイティブ世代の若者達）などの関係もあり、Trac/Redmine/Jenkins は廃止し、GitLab に移行・統合したくなってきた。

## 概要

![overview](http://www.plantuml.com/plantuml/png/jPL1RzGm48Nl-HMZSkakQjeqvS0UQAag8T222lIOYvECKXDx7DcpRVBlSROBOLN4Jf1woy7VUtxZcSbLOELvOqrIEMEmOkqemD6TLnMSfNr1y1g-Vrrhndpx_GKwxtx4S-48NdMQshzmsNpk6zPM4y9vsf_cE_pp40NYLn_X48NavAqBt7YKu9-GMasX8Ai2emT5TK7awWDkUNgHPldUDHt1ZQlQg77CQBj5v0SqnZtkAtpGl5Obl4tVfDdPdrX1py1EUTQLxXJnP1sDdnKe6mD6pkZcFYPNmpxwv5dGMZ46XWVqGJigw9YLRv0N4ub8--YrgjfDLz2sBetofMeGfa2HtDh96kRadR13Lh3fQiMO28xFr0teITan0yKwS3oopCGsCnjW1LR7yZ32yZoHzlX_k6ZRES_9F6okp-ymoQoPcn_drzF0eAofIrZcBvniUgUNDsBiMHiSKQjyMxj7ccqgMo9JyptayFxs8oml4W4eDPY65CnshLnArINxQ0NOZprz-jJQko6St-AIjJa5ENRTkDIKMIJ__358CrGUHzcqqMnKULBfTB06oW7kezgbUEiStiAovI8KaywtNF50DIKAWdSKFylTzOr0JtQndTmLKhsnvYS0)

- 複数ある [Trac](https://trac.edgewall.org) プロジェクトを Redmine on Docker 経由で [GitLab CE](https://gitlab.com) に移行
- 複数ある古いバージョンの [Redmine](https://www.redmine.org) サイトを Redmine on Docker 経由で GitLab に移行、あるいは Redmine 最新版へ移行
  - Issue / チケット番号の件があるので要検討
- Subversion は Git に変換
- Jenkins はまずは [GitLab 連携](https://docs.gitlab.com/ee/integration/jenkins.html)で進み、何れは [GitLab CI/CD](https://docs.gitlab.com/ee/ci/) に移行する

*1: 拙作ツール https://github.com/hkato/trac-username-converter
*2: migrate_from_trac.rake - 拙作パッチ https://github.com/hkato/migrate_from_trac.rake
*3: yaml_db - https://github.com/adamwiggins/yaml_db/network/members
*4: redmine-gitlab-migrator - https://github.com/redmine-gitlab-migrator/redmine-gitlab-migrator/network/members

## プロジェクト管理編

Ticket/Issue, Milestone/Roadmap, Wiki などをどう移行させるか。

- [最小限のGitLab環境を作る（移行テスト用）](https://qiita.com/hkato/items/50054c0c0d84634be5e2) GitLab CE on Docker

### Trac から Redmine　へ

- [いまさらだけどTracからRedmineに移行する](https://qiita.com/hkato/items/8783b3316089b5033923) Milestone/Ticket→Roadmap/Issue
- [いまさらだけどTracからRedmineに移行する（ユーザー名変換）](https://qiita.com/hkato/items/1722cf3cb93a8b10b95a)

### Trac から GitLab へ

- [Trac を Redmine 経由で GitLab に移行する](https://qiita.com/hkato/items/3a46aaf71e1f8c3854c8) Milestone/Issue
- [Trac WikiをMkDocs形式のMarkdownに変換する](https://qiita.com/hkato/items/c567bb76e538564f3307) MoinMoin Wiki→Pages(MkDocs)

### Redmine から GitLab　へ

- [Redmine を GitLab に移行する](https://qiita.com/hkato/items/0d79813824cb7d563d66) Roadmap/Issue→Milestone/Issue
- [Redmine Wiki を GitLab Wiki に変換する
](https://qiita.com/hkato/items/5faeb6cbae1e107c112a) Textile Wiki→ Markdown Wiki

## リポジトリー編

Subversion から Git にどう移行させるか。

- [いまさらだけどSubversionからGitへ移行する（その1: リポジトリー変換）](https://qiita.com/hkato/items/1b092bff149b13f77505)
- [いまさらだけどSubversionからGitへ移行する（その２: プロジェクト・ディレクトリー分割）](https://qiita.com/hkato/items/d0428b53d2665985ed54)
- [いまさらだけどSubversionからGitへ移行する（その3: SVN Rev）](https://qiita.com/hkato/items/4417add7ed415d32df07)
  - [いまさらだけどSubversionからGitへ移行する（その3-a: .NET AssemblyInfo）
](https://qiita.com/hkato/items/c01df36ef517d8969429)

## CI/CD編

Jenkins の話は…いらないか。

- [Migrating from Jenkins](https://docs.gitlab.com/ee/ci/jenkins/)