git svn 使い方

svn のログを見る

svn リポジトリのログを見るには

git svn log

とする。

subversion のリポジトリを git svn で複製する

git svn clone svn://example.com/svn/repo

とすると subversion のリポジトリを git で扱うことができる。

標準のレイアウトを持つ subversion リポジトリの場合は -s オプションをつける。

git svn clone -s svn://example.com/svn/repo

標準ではないサブディレクトリの svn リポジトリをクローンする

git svn clone に -T でトランク、-b でブランチ、-t でタグのサブディレクトリを指定する。

git svn clone -T TRUNK -b BRANCHES -t TAGS svn://example.com/svn

svn リポジトリの特定のリビジョンをクローンする

-r でリビジョンを指定して

git svn -s -r 100 svn://example.com/svn

のようにすると特定のリビジョンだけのリポジトリをクローンする。 履歴がすべて揃っていないのであまり使わないほうが良い。

svn リポジトリから更新を取得してリベースする

svn リポジトリから更新を取得してリベースするには

git svn rebase

とする。merge するより dcommit しやすくなる。

git-svn のリポジトリのファイルの各行についてリビジョンや作者を表示する

git svn blame <file>

とすると svn blame のフォーマットで表示される。

git blame と似たようなフォーマットで表示するには –git-format オプションをつける。

git svn blame --git-format <file>

git-svn で変更を取得する

git svn fetch

とするとリポジトリから変更を取得する。 ワークツリーは更新されないので、fetch の後に

git svn rebase

などとして反映する必要がある。

git-svn で subversion リポジトリにコミットを送信する

git svn dcommit

とすると subversion リポジトリにコミットが送信される。

git-svn でリポジトリに送信されるコミットの一覧を表示する

-n オプションをつけると実際にはコミットを送信しないで、送信対象のコミットが表示される。

git svn dcommit -n

.git 以下の svn 関係のファイルを整理する

git svn gc

.git/svn 以下のファイルなどが圧縮されたり、削除されたりする。

git-svn で subversion リポジトリにブランチやタグを作成する

git svn branch や git svn tag にブランチやタグを指定する。 -m でメッセージを指定できる。

 git svn branch <BRANCH> -m <MESSAGE>
 git svn tag <TAG> -m <MESSAGE>

参考

  • man git-svn

Tags of current page