逆引きマニュアル: Git: Subversion連携

投稿日: 更新日:

やりたいこと

GitでSubversionリポジトリと連携するときの手順です。

前提条件

概要

手順

リビジョンを指定したクローン

REVISION=100
URL=http://svn.example.com/

git svn clone -s -r${REVISION}:HEAD ${URL}

リモートへコミット

git svn dcommit -n # dry-run
git svn dcommit

特定のリビジョン番号まで戻す

途中でログが書き換えられたときに有効です。

REVISION=100

git svn reset -r ${REVISION}

SubversionリポジトリのGitリポジトリへの変換

  • svn2git
    • Git標準のgit svnでは、SubversionのタグがGitではブランチになっている。これを修正して、SubversionのタグをGitのタグに変換してくれる。
  • (未確認)メッセージが空のコミットを修正する方法: Rebasing a git history with empty commit messages - Stack Overflow
    • Subversion側でメッセージが空でコミットした場合、Gitでめんどくさくなる(--allow-empty-messageオプションが必要)。フィルタで自動的にメッセージを追加する。
    • 履歴を改変するため、push -fが必要になるのに注意。

補足

マニュアル