Subversion

ディレクトリごと間違って消してしまったときにsvnから復元するならcopyで

svnで管理している、あるディレクトリを削除しようとしたときに $ svn rm https://example.com/svn/branches/hoge/fuga/piyo -m 'delete piyo'とやるべきところを、指定するディレクトリを間違えて $ svn rm https://example.com/svn/branches/hoge -m 'dele…

svnで指定したディレクトリ以下を見てほしくない場合は"--depth"オプションを指定する

例えば $ svn ls -R hoge/ hoge/fuga $ echo piyo > hoge/piyo $ svn st ? hoge/piyo $ svn ps svn:ignore piyo hoge property 'svn:ignore' set on 'hoge' $ svn st M hoge $ echo fuga >> hoge/fuga $ svn st M hoge M hoge/fugaこんな感じで"hoge"ディレ…

Subversionで変更されているファイルのみのdiffを表示させる

ちょっと色々気になったので書いてみた。 やりたいこと 「ローカルで修正されたもの」つまり"svn status"で行頭に"M"が表示されるファイルだけを選び、そのdiffを表示させる。"A"や"D"のものは無視する。 簡単に考えると さすがに"svn diff"だけだと"A"や"D"…

colordiffをSubversionでつかってみた

svn diff をカラフルに表示させるワンライナー - すぎゃーんメモの続き。 コメントで色々おしえていただいた。 colordiff で diff や svn diff を見やすくする方法 - Craftworks Tech Blog - Branch ので、早速試してみた。 $ sudo port install colordiff $…

svn diff をカラフルに表示させるワンライナー

Gitで、 [color] ui = autoの設定をしているとdiffしたときに追加部分が緑、削除部分が赤で表示されるようになっていて、結構気に入っていた。 けどSubversionではどうやるのかよく分からない。ので自分で書いてみた。 svn diff . | perl -pe 's/^([-+]).*$/…

zshでsvnコマンドを使ったときに不具合が出た場合の対処

どうもzshでsvnコマンド使おうとすると _arguments:comparguments:303: invalid argument: ARGとかいうのが出まくってすごく使いづらく、でもまぁ動くからいいか、と思ってたんだけどやっぱり気になるので調べてみたところ、対処法発見。 http://webtech-net…

コミッタ毎のコミット数を集計するワンライナー

$ svn log | grep ^r[0-9] | perl -MYAML -anle '$h{$F[2]}++;END{print Dump\%h}'別にYAMLのDumpじゃなくてData::DumperのDumperを使ってもよい。

編集中のファイルを一気にバッファに開く

$ for i in $(svn st | grep ^[MA] | perl -alne 'print $F[1]'); do open -a /Applications/Emacs.app/ $i; doneelispとか使いこなせればこんなことしなくてもいいのかな…?

Subversionのファイル名は大文字/小文字が区別されない!?

Windowsにも対応できるように、ってことかな。 普通に大文字/小文字が違うと別ファイルだと思ってリネームしたら挙動がおかしくてビックリした。 以後気をつけよう。

Subversionのupdate

MacBookに標準で入っているSubversionが1.4.4とかで1.5系じゃなかったので、アップデートしようと思って $ sudo port install subversionってやるとなんか色々とエラーが出て失敗する。 dependenciesなんちゃらとかメッセージが出ていたので、そこに書いてあ…

ファイルハンドルの出力先に変数を指定する

perldocによると、SVN::Clientモジュールのcatメソッドは $ctx->cat(\*FILEHANDLE, $target, $revision, $pool);という使い方をしろと書いてある。 FILEHANDLEにSTDOUTを指定すれば標準出力はできるし、適当なファイル名でopenしてやればファイルに書き出す…

SVN::Clientモジュール

SVN::ClientモジュールはCPANには登録されていないらしい。 # apt-get install libsvn-perlから入手。

SVN::Clientで最終変更日時を取得する

SVN::Clientモジュールから最終変更日時を取得する #!/usr/bin/perl use strict; use warnings; use SVN::Client; my $ctx = new SVN::Client; $ctx->info("/hoge/fuga", undef, 'HEAD', sub { my ($path, $info, $pool) = @_; print $path, "\n"; print $in…

Taintモード時の汚染回避

Taintモードで実行する"-T"オプションをつけていると、以下のプログラムは動かない。 #!/usr/bin/perl -T use strict; use warnings; use Cwd; use SVN::Client; my $ctx = new SVN::Client; my $current_path = Cwd::getcwd; my $list = $ctx->ls($current_…

AuthzSVNAccessFile

AuthzSVNAccessFileで指定したファイルで権限設定を行うことができた。 しかし指定したファイルで [/] user = rwとだけ書いてあったらuserだけはなんでもできそうなものだけど。 * = rと書かないと誰も読めなくなる。 まだどこかの設定がおかしいのか、そう…

権限設定

うーん、よくわからん。 Apache2の設定でBASIC認証はかけられるようになったけど、これとレポジトリのconf/svnserve.confでの権限設定は別物なのか?? HTTPで匿名でのread権限を与えて、許可ユーザーだけに(SSLで?)write権限を与える、ということをしたい…

10分で作れるらしい

ちょうどSubversionに挑戦しようとして色々苦戦しているところに、はてブのホッテントリにこんな記事が!! 10分で作る、Subversionレポジトリ - UNIX的なアレ うんうん。ここまでは自分で調べたやり方で間違ってなさそうだ。 さらに進んでSSLを有効にする設…

玄箱でバージョン管理

debian玄箱にSubversionを入れてみようと思い、苦戦中。 参考にしているのは Subversion - Linux Wiki Debian 設定メモ - Create http://www.zuk.jp/debian4/subversion.html 玄箱+debian-etch+subversion+web-dav+ssl - kshimo69のブログ など。 そもそもSV…