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 用に移行しました。
これについては次回にしたいと思います。

 

この記事の著者

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

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

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

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

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

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

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

お問い合わせ




会社概要

<p>イルカシステム(株)</p>
<img src="http://www.iruka-system.co.jp/wp-content/uploads/2017/01/WS000000.png" alt="会社概要 住所" width="243" height="84" class="alignnone size-full wp-image-49" />
<div class="alert alert-warning">
2017/1/1より、住所変更いたしました。
</div>
<p><span class="label label-success">TEL</span> 03-5843-9168</p>

  • 中小企業 41個の記事

    中小企業様にご提案・開発してきた実績をもとに、システム構築について記載した様々な記事一覧です。

  • 社内システム 39個の記事

    様々な社内システムをご提案・開発してきた実績をもとに、システム構築について記載した様々な記事一覧です。

  • わかりやすさ 30個の記事

    情報システムをわかりやすく使いやすいものにするためのノウハウ、気をつけていることの記事一覧です。

  • UI設計 27個の記事

    UI(ユーザーインターフェース)は、システムの使い勝手を左右します。どんな点に気をつけているか、どんな考えでシステム開発しているかの記事一覧です。

  • 顧客管理 26個の記事

    これまで構築した様々なシステムのうち、顧客管理機能をどのような観点でご提案、開発しているかをまとめた記事一覧です。

  • 受注管理 18個の記事

    これまで構築した様々なシステムのうち、受注情報を管理する機能をどのような観点でご提案、開発しているかをまとめた記事一覧です。

  • ビジネス 18個の記事

  • 業務 16個の記事

  • 要件定義 14個の記事

    要件定義とはどのようなシステムを構築するのかを決める作業です。要件定義において注意し、考えていることをまとめた記事一覧です。

  • クラウド 13個の記事

  • 登録画面 13個の記事

  • 編集画面 12個の記事

  • システム会社 12個の記事

  • 情報共有 11個の記事

  • みえる化 11個の記事

    手作業をシステム化して効率化するだけでなく、それらの情報を集約して簡単に見えるようにし、社員が自律的に動ける組織を作ることが「みえる化」です。

  • 一覧画面 11個の記事

  • 業務用ウェブシステム 10個の記事

  • エクセル 9個の記事

  • コミュニケーション 9個の記事

  • セキュリティ 8個の記事