面白きことは良きことなり

拙く未熟なiOSエンジニアの備忘録と戯言

SourceTreeでgit-svnのリモートが表示されなくなった問題

現場ではSourceTreeを用いてgit-svnでバージョン管理を行っています。
そんなある日、リモートにあるSubversionの名前の横にある▷が表示されなくなっていました。

以下加工画像によるイメージ
before:
f:id:aryzae:20161024004255p:plain

after:
f:id:aryzae:20161024004258p:plain

これではサーバからプルもプッシュ何もできません。
設定も環境も弄っていないのに、突然こんな状態になっためサーバ側が何かやったのだろうー
と思い、問い合わせるも何もしていないし、アカウントも正常に許可されているとのことでした。

結局原因も不明な上、調べても情報が何も出てこなかったですが、
現場の他の方が解決方法を見つけてくださったので
他に遭遇した人がいた時のために残しておきます。


【解決方法】
1. SourceTreeの設定 > リモートタブ > Config がいるを編集… の順に選択
f:id:aryzae:20161024143755p:plain
f:id:aryzae:20161024143748p:plain

2. ConfigファイルのSVN関係の箇所で branches の末尾を/branches/*に変更して保存

// 例1
branches = branches/*:refs/remotes/svn/*
を↓のように書き換える
branches = branches/*:refs/remotes/svn/branches/*

// 例2
branches = branches/*:refs/remotes/origin/*
を↓のように書き換える
branches = branches/*:refs/remotes/origin/branches/*

3. リモートのSubversionをフェッチ。
    これで▷が復活してリモートのSubversionが使えるようになります。

4. 手順「2.」でやった書き換えを元に戻す。(重要)
    最後の書き換えた内容を元に戻さないと、
    プッシュ時に謎のコンフリクトが発生するようになり、正常にコミットされなくなります。