ユーザ用ツール

サイト用ツール


subversion

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しないと既存のログファイルは管理され続ける。

subversion.txt · 最終更新: 2013/07/29 10:40 by nullpon