branchでもtrunkでもないときはdepotpathそのまま表示するようにしてみた

show svk depot path in zsh prompt

これだけでもいいかもしんない。

by typester / at 2008-02-04T22:26:00 / zsh · svk / Comment

.zshrc といっしょにcodereposにあげた。

http://coderepos.org/share/browser/dotfiles/zsh/typester

by typester / at 2008-02-04T21:43:00 / zsh · svk / Comment

さっきのsvkpath.plの修正版

File::HomeDirPath::Class を使わずに愚直にかいてみたがあまり体感変わらず、ためしに YAMLYAML::Syck にしてみたら激早くなった。

#!/usr/bin/env perl

use strict;
use warnings;

use YAML::Syck;

my $path   = $ARGV[0] or die;
my $config = YAML::Syck::LoadFile( $ENV{HOME} . '/.svk/config' );

my $hash = $config->{checkout}{hash};
my @path = split '/', $path;

my $svkinfo;
do {
    $svkinfo = $hash->{ join '/', @path }
} while !$svkinfo and pop @path;

exit unless $svkinfo;

if (my ($trunk, $branch) = $svkinfo->{depotpath} =~ m!(?:/(trunk)|/(branches/[^/]+))$!) {
    print '(' . ($trunk || $branch) . ')';
}

こんな感じ。

このくらいの体感速度なら割と普通に使えそう。

by typester / at 2008-02-04T19:57:00 / zsh · svk / Comment

zsh の PROMPT に svk の trunk|branches/... を表示してみるテスト

毎回svk infoしてどこにいるか確かめるのが面倒になったので、

PROMPT='%(?..exit %?)
 %{%}%~%{%} %{%}`perl /home/typester/dev/scratch/svkpath.pl $(pwd)`%{%}
%{%}%(!.#.$)%{%}%{m%} '

PROMPTをこんなにして

#!/usr/bin/env perl

use strict;
use warnings;

use YAML;
use File::HomeDir;
use Path::Class qw/file dir/;

my $path   = $ARGV[0] or die;
my $config = YAML::LoadFile( file(File::HomeDir->my_home, '.svk', 'config') );

my $hash = $config->{checkout}{hash};
$path = dir($path);

my $svkinfo;
do {
    $svkinfo = $hash->{"$path"}
} while !$svkinfo and $path ne ($path = $path->parent);

exit unless $svkinfo;

if (my ($trunk, $branch) = $svkinfo->{depotpath} =~ m!(?:/(trunk)|/(branches/[^/]+))$!) {
    print '(' . ($trunk || $branch) . ')';
}

とかしてみた。

これで

show svk info

こんな感じになるわけだけども、毎回perl呼んでるので重い。

軽くできないかなー。

perlでやるなら裏でデーモン化してそこ呼ぶようにするのがいいのか。でもそこまでがんばる必要があるのかどうか。

by typester / at 2008-02-04T18:46:00 / zsh · svk / Comment

svk のローカル repos を追加する方法

svk depot foo /path/to/repos

で、/path/to/repos にあるレポジトリを foo という名前の depot として割り当てることができる。(repos がなかったら作るか聞かれるのであらかじめ作っておく必要はない)

使うときは、// の代わりに /foo/ を使用するだけ。

by typester / at 2007-04-18T15:14:00 / svk / Comment

ローカルrepos作業場所

//tmp とかでやってたけど、miyagawaさんは //scratch とか言う話。かっけ。

ネーミングセンs

by typester / at 2006-10-10T03:34:00 / svk / Comment

svk重い

svkが重いのがちょっと耐えられなくなってきた。

checkoutに数分かかるプロジェクトもあるように。

svk co -> その間にLDR未読消化 -> 未読消化完了 -> あれまだco中だよ、とか。

まぁプロジェクト全体を新規でcoするのは遅くても許そう。ただ svk st でさえ時間かかるのはかなりストレスになる。

うーむ。

今、svkのりビジョンは17453で容量は

$ du -sh ~/.svk/
687M    /home/typester/.svk/

という感じ。

重いのはcolinuxだからってこともあるだろうけどなぁ。

by typester / at 2006-09-16T02:20:00 / svk / Comment

svkでためしに作ってみる

なんかふと思いついたプログラムとかためしに作ってみるときとかに、svkのローカルreposを使うとイイよという話。

$ svk mkdir //tmp/myapp -m 'created myapp directory'; svk co //tmp/myapp

とかして作業ディレクトリ作成。いろいろ作業作業コミットコミットしたのち、使えるなーと思ったら本reposにマージ。

$ svk sm -b XXX //tmp/myapp //mirror/myrepos/path

-b XXX には最初にディレクトリ作ったときのリビジョン番号を指定してあげればOK。svk cpとかでブランチきったわけじゃないからこっちでベースポイント指定してあげないとsmergeできないの(多分

こないだつくったXSendFileとかはこんな感じで作った。そのときのログはこんな感じ。

http://dev.unknownplace.org/public/changeset/337

一括でマージされてしまうのがイヤなら -I つければsvkでciしたのと同じものがそれぞれ本reposにciされる。

rXXXX@hostname みたいなsvkのログがうざければ --verbatim すればいい。

あと -C で実際にマージはせずにチェックだけ出来る。

svkサイコウ。

とかいうvoxの下書きメモ。

by typester / at 2006-07-30T04:12:00 / svk / Comment

SVK のローカルコピーを複数の場所に checkout して作業してるとなんかおかしくなるなぁ。

pull するとコンフリクトまくったり。そこで push ろうとするとやばげな感じ。-C したらなんか G マークいっぱい出たのでローカルコピー作り直したんだけど。

by typester / at 2006-04-04T02:01:00 / life · svk / Comment

svk blackbox

Catalyst の本レポジトリが壊れた。

原因は svk の暴走。

svk 便利だけど、まだよくわかんないこといっぱい。よく知らないまま使ってるのはきけんだなぁ。むーん。

by typester / at 2005-10-24T23:52:00 / svk / Comment