特徴 †
よく使うコマンド †属性の確認と設定 †svn proplist ファイル名 svn propset svn:exacutable true ファイル名 svnからとってくる †
svn co リポジトリへのパス--depth=immediates or infinity
svn checkout -r 2 リポジトリへのパス
svn checkout file:///home/svn/repos/ 今のリポジトリ状態をチェック †svn st 追加や修正のあったファイルの状態を表示できる。 リポジトリを最新化 †
svn up リポジトリを特定のリビジョンに戻す †svn logしてバージョンを特定し svn up -r XXX コミット †svn commit もしくは svn ci 変更の取り消し †svn revert
merge --depth=infinity -r取り消したいリビジョン番号:左より-1のリビジョン リポジトリURL 適用するチェックアウトディレクトリー ログを見る †svn log --revision リビジョン番号 リポジトリURL
svn log -r リビジョン番号 -v ファイルに保存された認証情報を消す †rm -rf ~/.subversion/auth/svn.simple/* 他のプロジェクトのソースを参照する(externals) †シンボリックリンクのようなもの。メインは別のリポジトリで開発していてそこを参照したい場合に設定する。参照オンリーではなくコミットまで出来てしまう点は注意。以前はフォルダ単位でしかできなかったが、1.6以降ファイル単位も可能になった。 TortoiseSVN設定 †属性の設定を選んで、属性名はsvn:externalsを選ぶ。 設定値はファイル単位で記述、絶対パスでも可能 ../../../../../../../404.html 404.html ../../../../../../../500.html 500.html マージ †よく混乱してしまうのがマージである。基本的にブランチで枝分かれしない限りは必要ないのだが。 マージの方法 †
cd マージされる側のワーキングコピー svn merge -c 305212,305357,305716,305867,305962,306151,306370 http://host/マージ取得元のURL TIPS †サーバー移転 †サーバの情報が記述されているメタ情報(.svn)を書き換える必要がある。通常はsvnのコマンドで行う。GUI使ったほうが楽かも svn switch --relocate ブランチ切り替え †svn switch 新URL ローカルチェックアウトディレクトリ移転 †これはトップレベルフォルダを移動するだけで良い。一旦チェックアウト後そのディレクトリをプログラム実行場所まで移動してもメタ情報は相対パスで記述されているので大丈夫 リビジョン間の差分をチェック †リポジトリ同士の比較 †
svn diff リポジトリ[email protected] リポジトリ[email protected]
svn -r 1000:2000 リポジトリ1URL 最後に--summarizeをつけるとファイルの出力のみとなる チェックアウトディレクトリとリポジトリの差分をチェック 基本 †
svn diff -r77771:head [ワーキングディレクトリ名] 移動しない場合は引数で指定可能 共通ファイル名だけを抽出する †--summarizeオプションを付けるとファイル名のみ出力 svn diff -r77771:head --summarize [ワーキングディレクトリ名] 設定など †Apacheと連携して使う †
yum install mod_dav_svn.
<Location /mysvn> DAV svn SVNParentPath "/home/svn" SVNListParentPath on deny from all allow from xxx.xxx.xxx.xxx AuthType Basic AuthName "Rutake Repository" AuthUserFile /etc/httpd/conf/.htpasswd Require valid-user </Location>
認証情報のおき場所 †Unix 系システムでは~/.subversion/auth/、 Windows であれば %APPDATA%/Subversion/auth/ 一度認証に成功するとそのID/PASSWORS情報がキャッシュされる。別のユーザでコミットしたい場合はそのファイルを消さないと前回成功したユーザIDでコミットされてしまう。 コマンドラインオプション中で--username または--passwordを指定するとそちらが優先して利用される。 ネットワーク越しの利用 †httpを使わない場合はsvnプロトコルを利用するのがシンプル。ローカルマシン以外はデーモン起動する必要がある。 デーモンとして起動(3690ポートを利用) †svnserve -d -r リポジトリへのパス /etc/rc.d/rc.localにでも記述しておけば自動起動になる。 xined経由で起動(安全) †# vi /etc/services svnserve 3690/tcp # Subversion svnserve 3690/udp # Subversion # vi /etc/xined.d/svnserve service svnserve { disable = no socket_type = stream protocol = tcp wait = no user = root server = /usr/local/bin/svnserve server_args = -i } # chkconfig --add svnserve # /etc/init.d/xinetd restart Windowsから利用する †
TortoiseSVNの使い方 †エクスプローラーの拡張シェルとしてインストールされる。開発も活発なのでこれを選択しておけば安心。日本語パッケージをインストールしないとコミットコメントに日本語が使えないので注意。 TSVNCache.exeが重い時 †デフォルトでは全てのドライブの更新を監視しているため、そりゃー重いだろう。設定でアイコンオーバーレイを無効にするか、監視ドライブを限定すること。 Can't convert string from native encoding to 'UTF-8' †ターミナルのセッティングが英語で日本語を含むものを落とす時に発生する。 Subclipseの使い方 †こちらはEclipseプラグイン。 コマンドラインで使う †リポジトリ一覧見る †
svn list svn://ホスト名/svn/repos デフォルトの書き込み制限解除 †リポジトリのルートのconf以下のファイルを変更
[general] password-db = passwd
[general] anon-access = write auth-access = write 認証に関しての情報が少なすぎ!!! httpの場合はmod_svn_authzというモジュールを組み込まないと素通りできる BACKUP&RECOVERY †
svnadmin dump /usr/local/takeru > takeru.out #一気に圧縮する svnadmin dump /usr/local/takeru | gzip > takeru.out.gz
mkdir -p /usr/local/takeru_from_backup svnadmin create /usr/local/takeru_from_backup svnadmin load /usr/local/takeru_from_backup < takeru.out
SVNROOT/confディレクトリ以下をごっそりコピーすればよい。
svnadmin dump /home/svn/repos | svndumpfilter exclude 除外したいパス(/GPS) > /var/tmp/svnbackup
svnadmin dump /home/homesvn/repos | svndumpfilter exclude /trunk/GPS/ /trunk/MUSIC/ > slimsvn 疑問点:excludeのパスはフルパスというか前方一致
svnadmin dump /home/svn/repos > svn_rep_backup_`date +%Y%m%d`
自宅サーバでの移行作業記録 †
svnadmin dump /home/svn/repos > /var/tmp/repos.out # 圧縮してもOK svnadmin dump /home/svn/repos | gzip > /var/tmp/repos.out.gz
mkdir -p /home/svn/repos svnadmin create /home/svn/repos/ ここまではリポジトリ作成と同じ手順 svnadmin load /home/svn/repos < /var/tmp/repos.out 流し込むのでそれなりに時間がかかる コマンド一覧 †リポジトリは/svn/repos
ブランチ作成 †タグもコピー先のディレクトリがtags以下にするという慣例を除けばコマンド自体は一緒。 svn copy http://example.com/svn/trunk http://example.com/svn/branch/new ブランチ分かれてからのログ取得 †svn log --stop-on-copy [url] 用語集 †
WebUI †ViewVCというのがある。 インストール †RPMインストールでさまざまな依存関係があるので公式サイトからごっそり関連RPMを持ってくるとよい。DebianやVineならaptが使えるので非常に楽 バイナリからインストール(推奨) †下記ソースインストールは2004年の情報で今はバイナリがあることがほとんどなのでこちらを推奨する。 ソースインストール(非推奨) †RedHatES3GUIインストールサーバータイプで開発ツールのみ選択した。 db †# cd biuld_unix # ../dist/configure apache †# ./configure --enable-mods-shared=all --enable-shared=yes --with-berkeley-db=/usr/local/BerkeleyDB.4.2 subversion †# ./configure --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-berkeley-db=/usr/local/BerkeleyDB.4.2 ですべて問題なく。
外部リンク情報 †http://c-brains.jp/blog/wsg/09/11/17-143618.php Subclipseでのトラブルシューティング †[working copy at a single revision]とでて何も出てこない。 →ワーキングディレクトリを更新すればよい
Counter: 16796,
today: 2,
yesterday: 1
|