SubversionからGitへの移行手順

2017年5月23日

弊社のこれまでのプログラム管理方法


弊社ではさまざまな中小企業さまの社内システムを手がけておりますが、
社内システムのプログラムはお客様の重要な資産です。

これを適切に管理するために、プログラムのバージョン管理をする
Subversion を使っていましたが、徐々に Git へ移行しています。

新しく構築するものはGit にしていますが、
ずっと以前に構築したシステムのプログラムは Subversion のままでした。

しかし、以前のシステムも保守、メンテナンスを行います。
ずっと Subversion のままですと、他システムの開発環境と違うことが理由で
いろいろと問題が生じ始めました。

ここでは、そういった以前Subversionで管理していたシステムを
Git の管理下に移行する手順をメモしておきます。

 

Redmine プロジェクトで Git を作成


弊社ではチケット管理にRedmineを使っており、
これとSubversion, Git とを連携しています。

Redmine の管理画面から Git リポジトリを追加できるように
設定されていますので、管理画面から Git リポジトリを追加します。

この方法の設定手順などは省略します。

 

移行用にローカルPCに上記 Git を clone


以下を参考にしました。


 

クローン用のディレクトリを「C:\Projects\Git\testproject」とします。
ここに C:\Projects/Git/authors.txt を、以下の内容で作成します。

j.doe = John Doe <john.doe@atlassian.com>
m.smith = Mary Smith <mary.smith@atlassian.com>

その後、以下の手順で Subversion から Git に移行します。

C:
cd C:\Projects/Git
	
git svn clone --stdlayout --authors-file=authors.txt <svn-url>/<project> <git-repo-name>

<git-repo-name>は、今回の例ですと「testproject」です。

この手順は、とくに Subversion の履歴が多いと、少し時間がかかります。
終わったら、サーバーへ push します。これでほとんど終了です。

 

なお、リンク先のページでは、Subversion のブランチとタグも
Git に取り込む手順が記載されています。

手順通り行ってみたのですがうまくGitに取込できなかったので
ここでは手順を省略しています。
とりあえず過去のブランチやタグについては「移行できればいいね」
程度でしたので、弊社では捨てることにしました。

 

リモートブランチを削除できるようにする


弊社の環境では、デフォルトでリモートブランチを削除できないように
設定していますので、この手順で削除できるように変更します。

この作業は Git リポジトリのあるサーバーで行います。

# su -
$ su apache -s /bin/bash
bash-4.1$ cd /var/opt/git/<git-repo-name>
bash-4.1$ git config receive.denydeletes false
bash-4.1$ git config hooks.allowdeletebranch true

 

開発環境のgitデフォルトユーザーを設定する


開発環境は何でもかまわないのですが、
CentOSであれば以下のコマンドで、デフォルトのGitユーザーを設定します。

弊社は、一般的な作業はパソコンで行いますが、
開発は仮想CentOS上で行っていますので、
開発環境にログイン後、以下のコマンドを投入しました。

git config --global user.name user1
git config --global user.email user1@example.com

また、パスワードを何度も入力するのが面倒なので、
自動記憶するようにします。

git config --global credential.helper store

 

Gitにコミットしたくないものを指定する(.gitignore)


.gitignore では、コミットしたくないものを設定します。

cakephp であれば、たとえば以下のようになるでしょうか。

app/tmp
app/Config/database.php

 

以上でリポジトリと開発環境のGitへの移行は完了です。

実際には開発環境の vim も、あわせて Git 用に移行しました。
これについては次回にしたいと思います。

 

お問い合わせ

本記事(SubversionからGitへの移行手順)にかかわること、 中小企業様さま向けの社内向け業務ウェブシステムにかかわることなど ご相談、ご質問などがありましたら何なりとお問い合わせください。





captcha

この記事の著者

イルカシステム(株) イルカシステム株式会社

イルカシステム(株)は、以下のような業務用ウェブシステムのご提案、受託開発、運用を行っております。

1.中小企業さま向けの社内向け業務ウェブシステム(営業支援、顧客管理、受注管理、請求入金管理、在庫管理、経営数値管理など)

2.医療業界向けの業務改善システム

※業務ウェブシステムの開発を効率化するための自社サービス「イルカベーカリー」をご提供しております。
※医療業界向けに、臨床研究の無作為割付自動化のための自社サービス「ムジンワリ」をご提供しております。

お問合せはお気軽に、こちらからどうぞ! → イルカシステム株式会社へ問合せ

著者:イルカシステム株式会社