Open2

業務で苦しんだSubversionの記録

Kumamoto-HamachiKumamoto-Hamachi

今の職場がまだSubversionを使っており、中々苦労しているので下記にまとめていく。
※つい先日まで元気に動いてくれていたgit-svnくんはSVN::Coreが動かなくなり無事死亡しました()

.gitignoreのように非管理化のファイルを記述したい。

非管理であることをコミットしないなら下記(Mac)
~/.subversion/config

# 下記をアンコメント
global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__

例えばjetbrains系のエディタを使っていると.ideaファイルなどが混入することがあるので上記にそのまま*.ideaを追加してしまいましょう。

git diffと同じことをしたい

$ svn diff

色合いをgit diffと同様にしたいならまずHomebrewを使ってcolordiffを入れて

$ brew install colordiff

configに下記を追加。

diff-cmd = colordiff

git statusと同じことをしたい

$ svn status

git checkout HEAD PATHと同じことをしたい

$ svn revert PATH

git fetch + git merge / git pullと同じことをしたい

$ svn update

git logと同じことをしたい

$ svn log

logが長すぎぃ!となった場合は下記のように.txtファイルに書き込むなどすると良い。

$ svn log > ~/Desktop/log.txt

上記が打つの面倒なので私は.bashrcに下記のようなaliasを設定しています。

alias sl="svn log > ~/Desktop/log.txt; view ~/Desktop/log.txt"

またlogのRevisionがわかったらより詳しくみたいというときは

$ svn log -r Revision番号 -v --diff

※-vで変更のあったファイルを、--diffで変更差分を表示

git commit / git pushと同じことをしたい

ターミナルから行う場合は先に環境変数$SVN_EDITORを設定

-- .bashrcなどに設定すると良い
export SVN_EDITOR=vim

また、先にsvn updateをしておいたほうが良い。

svn update .
svn commit ファイルパス

git cloneと同じことをしたい

svn checkout svn+ssh:://パス ~/パス/ディレクトリ

git checkout <コミット>したい(一時的に過去に戻りたい)

svn up -r リビジョン番号
svn info

上記で現在のリビジョンを確認することも出来ます。

最新のバージョンに戻るには

svn up