【Git】 Gitリポジトリ構築(その1)
もう10年近くになるかな?
ソフトウェアのバージョン管理にSubversionを使ってきました。その前は言わずもがなCVSで、さらにその前はRCS、会社ではSoftbenchCMやClearCaseなんかもありましたけど。
Subversionはディレクトリ管理も含んでいるので、ファイルの追加・削除・リネームなども追跡できて、かなり重宝してました。また基本的に低レベルのリポジトリ操作が不可能なので、ユーザが誤ってファイルやブランチを削除する事がない(削除されても逆マージで戻せる)という安全性もあって、作業に慣れない人を含む業務ベースで使う際にメリットがありました。
ただ不満が無いわけではありません。
Subversionの主な問題点を挙げると大体以下の通りかと。
- 集中型リポジトリなのでコミット時にサーバ接続が必要。
- DB型なので色んな意味でちょと重い。(初期のBerkleyDB使っていた時の話ですけど)
- ブランチ・タグがディレクトリと同義のため・・・(好みによる)
- リポジトリが肥大化する。(業務で使うとこれが深刻)
- バックアップに時間がかかる。(リポジトリが肥大化する事が根本原因です)
- 誤って行ったコミットを取り消せない。(パスワードとか暗号鍵とか入れちゃうと大変)
この辺りでしょうか。
はっきり言って、これらの問題点はSubversionの利点の裏返しでもあります。
とはいえ、サーバ接続していないとコミットできないという1番の問題だけは、集中型リポジトリの問題そのものなので解決しようがない。しかも昨今のクラウド環境やら、SOHOスタイルでは馴染まないのも事実ですね。
という事で、遅まきながらLinusさんがLinux Kernelのために開発したバージョン管理システム「Git」に移行する事としました。Git自体は2005年の発表された分散型バージョン管理システムで、個人でもグループでも使い勝手が良いかな?と思ったので、その検証もかねて自宅サーバに構築する事としたわけです。
Gitは上位リポジトリ(リモートリポジトリとも言う)にSubversionを使う事もできますが、今回は完全にGitに移行しています。Subversionで管理していたリポジトリも一部を移行してみました。
さて、手順については次の記事で。
« 【ubuntu】 ubuntu 12.04 アップデート完了 | トップページ | 【Git】 Gitリポジトリ構築(その2) »
「Linux」カテゴリの記事
- 【Git】 Gitリポジトリ構築(その2)(2012.04.30)
- 【Git】 Gitリポジトリ構築(その1)(2012.04.30)
- 【Linux】 安全なHDDのデータ消去方法(2011.01.04)
- 【Linux Tips】 テキストファイルの一括置き換え/ファイル名の一括置き換え(2009.11.18)
- 【Linux】 findコマンド(2009.01.17)