More than 1 year has passed since last update.

git-svnを利用して、SourceTreeでsvnを管理する方法について紹介します。

手順

  • チェックアウトしたいディレクトリを作成
  • チェックアウトしたいディレクトリにcd(ターミナル)
  • 下記コマンド実行(ターミナル)
git svn clone --prefix svn/ -s [URL]
  • コマンド完了後SourceTreeで開く
    • SourceTreeのバージョンによってはコマンドを使用せず直接開けます。そちらのほうが楽ですが、エラーで失敗するようならコマンド使いましょう。

コマンドの意味

  • git svn clone [URL]

-> チェックアウト: init(初期化) + fetch 

  • --prefix

-> ブランチ名のプレフィックスをつける
(リモート側(svn)とわかりやすくなる)

  • -s

-> ルートディレクトリ以下が下記構成になっている場合のオプション

「trunk, branches, tags」

SourceTree設定

システムのGitを使用する(デフォルトは内蔵のGit)

-> 環境設定 -> Gitのバージョン「システムのGitを使用する」を押下
※バージョン(1.5.6)の場合、内蔵のGitのバージョンが古かったのでプッシュ等でエラーが発生したため
- システムのGitの場所
下記コマンド実行(ターミナル)

which git

gitのパスが出てくるので、コピペする

ローカルブランチをSVN(リモートブランチ)と揃える

リモートブランチをダブルクリック -> ローカルブランチも作るかと聞いてくるので作る
※「Trunk」はローカルブランチでは「master」となる

おわりに

もともとgit環境でSourceTreeを使っていました。

プロジェクトが変わってSubversion環境になりましが、Macでいまいちピンとくるクライアントがありませんでした。
そんなときSourceTree使えるよという話を聞き、本投稿の内容を実行した次第です。

基本的な操作(チェックアウト、コミット、プッシュ、プル…)は特に問題なく使えています。
ただし、自分の環境ではリモート側(svn側)のマージがエラーになってしまいます。
svnのディレクトリ構成が一般的な構成ではないのも原因のひとつかもしれません。
今のところはそこだけSourceTree以外でやってます。

SourceTreeに慣れていて、Subversionには不慣れな方だと日々の業務の負担が軽減されるかもしれません。
コマンドやその他ツールと併用しつつ、試してみていただければと思います。