Git
参考にしたもの
git-svnを使って既存のSVNリポジトリでGitを使う方法のメモ - Hello, world! - s21g
git-svnメモ - I sort my thought…
インストール
標準パッケージに Git はないので、RPMForge を yum で使う設定が必要
CentOS 5.2 で yum の対象リポジトリに RPMforge を追加するには - Tosshi Note
# yum install –enablerepo=rpmforge
(省略)
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing for dependencies:
git i386 1.5.2.1-1.el5.rf rpmforge 27 M
perl-Compress-Zlib i386 1.42-1.fc6 base 52 k
perl-Error noarch 0.17015-1.el5.rf rpmforge 27 k
perl-Git i386 1.5.2.1-1.el5.rf rpmforge 18 k
perl-HTML-Parser i386 3.55-1.fc6 base 92 k
perl-HTML-Tagset noarch 3.10-2.1.1 base 15 k
perl-libwww-perl noarch 5.805-1.1.1 base 376 k
subversion-perl i386 1.4.2-2.el5 base 748 k
Transaction Summary
=============================================================================
Install 8 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 28 M
(省略)
Running Transaction
Installing: perl-Error ######################### [1/8]
Installing: subversion-perl ######################### [2/8]
Installing: perl-HTML-Tagset ######################### [3/8]
Installing: perl-HTML-Parser ######################### [4/8]
Installing: perl-Compress-Zlib ######################### [5/8]
Installing: perl-libwww-perl ######################### [6/8]
Installing: perl-Git ######################### [7/8]
Installing: git ######################### [8/8]
Dependency Installed: git.i386 0:1.5.2.1-1.el5.rf perl-Compress-Zlib.i386 0:1.42-1.fc6 perl-Error.noarch 0:0.17015-1.el5.rf perl-Git.i386 0:1.5.2.1-1.el5.rf perl-HTML-Parser.i386 0:3.55-1.fc6 perl-HTML-Tagset.noarch 0:3.10-2.1.1 perl-libwww-perl.noarch 0:5.805-1.1.1 subversion-perl.i386 0:1.4.2-2.el5
Complete!
Git リポジトリを SVN から作成
この後のサンプルは SVN リポジトリ URL が file:///var/svn/project とします。その階層下に trunk / brunches / tags がそれぞれあるとします。
trunk / brunches / tags の全部取得する
下記だと SVN リポジトリの trunk / brunches / tags の全部取ってきてしまうので、結構時間がかかります。
$ git-svn clone file:///var/svn/project
(省略)
Checking 4129 files out…
100% (4129/4129) done
Checked out HEAD:
file:///var/svn/project r185
直近のリビジョン以降かつ trunk だけを取得する
$ git svn clone –trunk trunk –revision 180 file:///var/svn/project
Initialized empty Git repository in .git/
(省略)
r180 = 2b82878aaa2fe3edac8e7f91b27a319fee51802a (trunk)
Checked out HEAD:
file:///var/svn/project/trunk r180
Git の設定を確認
使い始める前に設定を確認してみる。user.name が空になっている。
$ cd project
$ git config -l
user.name=
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
svn-remote.svn.url=file:///var/svn/project
svn-remote.svn.fetch=trunk:refs/remotes/trunk
ユーザー名 user.name とメールアドレス user.email を設定します。
$ git config –global user.name toshi
$ git config –global user.email toshi@midgar.local
再度確認すると設定されています。
$ git config -l
user.name=toshi
user.email=toshi@midgar.local
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
svn-remote.svn.url=file:///var/svn/project
svn-remote.svn.fetch=trunk:refs/remotes/trunk
Git で編集する
svn commit と同じです。ファイルを更新した後、git commit を行います。
$ git commit <修正したファイル>
Git の変更を SVN リポジトリに反映させます。
$ git-svn dcommit
Subversion の更新を手元の Git に反映する
$ git-svn rebase