弊社ではさまざまな中小企業さまの社内システムを手がけておりますが、
社内システムのプログラムはお客様の重要な資産です。
これを適切に管理するために、プログラムのバージョン管理をする
Subversion を使っていましたが、徐々に Git へ移行しています。
新しく構築するものはGit にしていますが、
ずっと以前に構築したシステムのプログラムは Subversion のままでした。
しかし、以前のシステムも保守、メンテナンスを行います。
ずっと Subversion のままですと、他システムの開発環境と違うことが理由で
いろいろと問題が生じ始めました。
ここでは、そういった以前Subversionで管理していたシステムを
Git の管理下に移行する手順をメモしておきます。
弊社ではチケット管理にRedmineを使っており、
これとSubversion, Git とを連携しています。
Redmine の管理画面から Git リポジトリを追加できるように
設定されていますので、管理画面から Git リポジトリを追加します。
この方法の設定手順などは省略します。
以下を参考にしました。
クローン用のディレクトリを「C:\Projects\Git\testproject」とします。
ここに C:\Projects/Git/authors.txt を、以下の内容で作成します。
[bash title="authors.txt"]
j.doe = John Doe \john.doe@atlassian.com\
m.smith = Mary Smith \mary.smith@atlassian.com\
[/bash]
その後、以下の手順で Subversion から Git に移行します。
[bash]
C:
cd C:\Projects/Git
git svn clone --stdlayout --authors-file=authors.txt \<svn-url>/\<project> \<git-repo-name>
[/bash]
\<git-repo-name>は、今回の例ですと「testproject」です。
この手順は、とくに Subversion の履歴が多いと、少し時間がかかります。
終わったら、サーバーへ push します。これでほとんど終了です。
なお、リンク先のページでは、Subversion のブランチとタグも
Git に取り込む手順が記載されています。
手順通り行ってみたのですがうまくGitに取込できなかったので
ここでは手順を省略しています。
とりあえず過去のブランチやタグについては「移行できればいいね」
程度でしたので、弊社では捨てることにしました。
弊社の環境では、デフォルトでリモートブランチを削除できないように
設定していますので、この手順で削除できるように変更します。
この作業は Git リポジトリのあるサーバーで行います。
[bash]
# 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
[/bash]
開発環境は何でもかまわないのですが、
CentOSであれば以下のコマンドで、デフォルトのGitユーザーを設定します。
弊社は、一般的な作業はパソコンで行いますが、
開発は仮想CentOS上で行っていますので、
開発環境にログイン後、以下のコマンドを投入しました。
[bash]
git config --global user.name user1
git config --global user.email user1@example.com
[/bash]
また、パスワードを何度も入力するのが面倒なので、
自動記憶するようにします。
[bash]
git config --global credential.helper store
[/bash]
.gitignore では、コミットしたくないものを設定します。
cakephp であれば、たとえば以下のようになるでしょうか。
[bash title=".gitignore"]
app/tmp
app/Config/database.php
[/bash]
以上でリポジトリと開発環境のGitへの移行は完了です。
実際には開発環境の vim も、あわせて Git 用に移行しました。
これについては次回にしたいと思います。
イルカシステム(株)は、以下のような業務用ウェブシステムのご提案、受託開発、運用を行っております。
中小企業さま向けの社内向け営業支援、顧客管理、経営数値管理システム
経営数値をリアルタイムで見える化し、目標達成度を常に把握することができ、顧客へのフォローもスムースになります
中小企業さま向けの受発注管理、請求入金管理、在庫管理
御社特有の受発注業務、出荷処理をシステム化することで業容拡大への大きなお手伝いとなります
医療業界向けの業務改善システム
※医療業界向けに、臨床研究の無作為割付自動化のための自社サービス「 ムジンワリ 」をご提供しております。
IoTシステムの開発
詳しくは ご提供サービス を参照してください。