目次
Subversion
コマンド
変更ファイルを見る
svn status
このSVN管理対象の情報確認など
svn info
ブランチが作られたリビジョンまでのログを見る
svn log --stop-on-copy
リポジトリのURLが変わった
svn switch --relocate 古いURL 新しいURL
新しいリポジトリの作成
svnadmin create repo_name
ログ件数指定
svn log --limit 5
ブランチの派生以降のログを取得
svn log --stop-on-copy
コピー(ブランチ、タグ作成)
svn copy http://example.com/svn/hoge/trunk http://example.com/svn/hoge/branches/branch_name
指定のファイル名一気にsvn rmする
find . -name .svn -prune -o -name 'hogehoge*' -print0 | xargs -0 svn rm
trunkの変更をブランチへマージ(ブランチ作成時点からリビジョンXXXXまでにtrunkにコミットされた変更点を取り込む)
svn merge http://example.com/svn/hoge/trunk@XXXX
特定のリビジョンの変更を取り消す。以下はリビジョン70の変更分を取り消して最新のワーキングコピーに適用する例
svn merge -r70:69 http://example.com/svn/hoge/trunk
再起的にsvn revert
svn revert --recursive ./
管理下にないファイルを全部addする
svn status | grep '^?' | awk '{ print $2 }' | xargs svn add
管理下にないファイルを全部削除する
svn status | grep '^?' | awk '{ print $2 }' | xargs rm
svn+ssh
ポート番号を22以外に指定したい、鍵を指定したい、違うユーザ名で接続したい場合
~/.subversion/config ファイルの[tunnels]に以下の一行を追加
ssh-hoge = ssh -i 鍵のパス -p ポート番号 -l ユーザ名
で、
svn info svn+ssh-hoge://hostname/path/to/svn/repository
TortoiseSVN
TortoiseSVNは、Windowsエクスプローラと統合されたSVNクライアント。通称カメSVN
Puttyと連携してsvn+ssh
svn+sshでリポジトリに接続する場合、SSHトンネルを掘るためにSSHクライアントと連携する必要がある。TortoiseSVNは、付属のTortoisePlink.exeというアプリでSSHトンネルを掘る。これはPuttyに付属しているplink.exeの派生物(DOS窓を開かず実行するように改造したもの)なので Putty の設定が適用される。
Puttyをインストールし、セッション設定を myhouse などと適当な名前で保存しておき
svn+ssh://myhouse/var/svn/repository/hoge/trunk/
とすればPuttyに保存されているセッション設定を使って接続できる。サーバが22番ポート以外を使っている場合や公開鍵認証でログインをしたい場合に便利。
公開鍵でログインする時、Putty付属の pagent.exe を起動して秘密鍵を登録しておけば、毎回パスフレーズを入力する必要がなくなる。
Eclipse で svn+ssh
Windows
Eclipse に SubClipse というプラグインをインストールする。SubClipseはSSHトンネルにPutty付属の plink.exe を使用するので、Puttyをインストールして接続設定を保存する。SubClipse に plink.exe の場所を教えるために環境変数SVN_SSHに実行ファイルの場所を設定する。パス区切り文字は \ ではなく / にするらしい。
C:/Program Files/Putty/bin/plink.exe
Putty付属の plink.exe はコマンドラインアプリなので接続するたびにDOS窓が開いてうっとおしい。TortoiseSVN をインストールし、付属の TortoisePlink.exe を環境変数SVN_SSHに指定するとよい。
C:/Program Files/TortoiseSVN/bin/TortoisePlink.exe
鍵を使う場合、Puttyのpagentを起動して、鍵を登録する
環境変数を変更したら Eclipse を再起動、SVNリポジトリエクスプローラというパースペクティブを開き、ロケーションにURLを設定する。
svn+ssh://myhouse/var/svn/repository/hoge/trunk/
UNIX系OS
OpenSSHをインストールし、
svn+ssh://paulownia.jp/var/svn/repository/hoge/trunk/
で接続すると勝手にトンネルを掘ってくれる。ポート番号や公開鍵を使うかどうかなど、すべてダイアログが出て聞かれる。
NetBaens(6.5) で svn+ssh Subversion
Windows
先に、Puttyと連携してsvn+sshの設定を行う
環境変数SVN_SSHをセット。TortoisePlinkを使うならば…
C:/Program Files/TortoiseSVN/bin/TortoisePlink.exe
鍵を使う場合、Puttyのpagentを起動して、鍵を登録する。
リポジトリURL
svn+ssh://myhouse/var/svn/hoge
トンネルコマンド
$SVN_SSH
UNIX系OS
URLには普通にURLを入れる
svn+ssh://paulownia.jp/var/svn/repository/hoge/trunk/
トンネルコマンドを入力
ssh -l username -p 2022 -i ./ssh/id_rsa
- -p は sshポート番号、デフォルトは22
- -i は公開鍵認証の場合の鍵、ssh プロトコルバージョン2では、~/.ssh/id_rsa もしくは ~/.ssh/id_dsa がデフォルト
- -l はユーザ名を指定する、デフォルト値はローカルの自分のユーザ名
- ssh-myhouseの部分は任意の名前にする。ホスト名などを入れると分かり易いかもしれない
svn:ignore
ログやキャッシュファイルを管理対象外にする。ただしログやキャッシュフォルダそのものは管理対象から外さない。
svn add log svn propset svn:ignore '*' './log'
# 使い方 # svn propset svn:ignore 対象のファイル名 対象ファイルが存在するディレクトリ
すでにlogディレクトリ以下のファイルが管理対象になっている場合は、svn delete でファイルをdeleteする。deleteしないと既存のログファイルは管理され続ける。