トップ(最新) | <前

nDiki : svn

svn - Subversion コマンドラインクライアント

メモ

ディレクトリを非再帰的に追加svn --non-recursive dir
$Id$キーワード置換を有効にsvn propset svn:keywords "Id" file
$LastChangedRevision$ を…svn propset svn:keywords "LastChangedRevision" file
属性リスト表示(値つき)svn proplist -v file

関連情報

スポンサード リンク

Related term

2004年10月4日 (月)

仕事のファイルを順次 Subversion リポジトリに突っ込む このエントリーを含むはてなブックマーク

スポンサード リンク

1本長めの文書を作ることになったので、(ドラフトを含む)版管理もかねて Subversion のリポジトリに突っ込む事にする。

@ 階層

以前は

 project -> trunk -> subproject

という階層にしていたのだが、プロジェクトをまたがるタグ打ちとかに向いていないので今回は

 trunk -> project -> subproject

という感じに。

@ LaTeX

texmf に関してはSubversionの外部定義機能の利用をやめ、Makefile で TEXINPUTS を相対指定するように。 それでも別の階層にある texmf 下の共通画像を includegraphics する場合は '../../texmf/logo.png' などとしないといけないのがちょっと気持ち悪い。

@ タグ打ちは

タグ打ちはどうしようかな。みんなは trunk 以下をごっそり、branches の下にコピーしているのだろうか。 trunk の中の特定プロジェクトディレクトリ + 共通ディレクトリのみをコピーするという手もあるかもしれないけど、それはそれで繁雑だしな。

@ svn.sty

rcs.sty でいけるかなと思っていたのだが、Subversion だと

  • $Date$ のフォーマットが違う
  • $Revision$ がなぜかうまく展開されない ($LastChangedRevision$ の方はOK。Date の方は LastChangedDate で無くても別名が効くのに)

という問題が。探したら svn.sty という rcs.sty 亜種があったのでこちらを入れて解決。

@ ついでに

過去のドキュメントとかも順次。

■ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。

Google Buzz はよろしければ Naney の Google プロフィールからどうぞ。


[ 10月4日全て ]

2005年7月26日 (火)

普通の人向けに svnserve を立ち上げるか このエントリーを含むはてなブックマーク

開発チームでは主に svn+ssh で Subversion を利用している。

Windows ユーザは

  1. 前準備「PuTTYgen で鍵ペアを生成し」「リポジトリのあるサーバ(Linux)側に公開鍵を登録」
  2. 前準備「Pagent を動かして秘密鍵を指定しておく」
  3. TortoiseSVN でリポジトリアクセス

という手順をとっている(参考記事)。 しかしこの方法は SSH に詳しくなかったり Linux のオペレーションとかに慣れていなかったりするユーザにはかなり敷居が高い。

最近ソフトウェア開発以外でのチームでも Subversion の利用を検討しているが、この手順だと多分萎えるはず。

SSH暗号化するほどのセキュリティが必要ない運用なので、svnserve を起動して運用した方が楽そうだ。まだ使ったことがないけれど。

svnserve を実行する権限を気にする必要がある以外は基本的には手間なしのはず。 しかし svnserve の組み込みの認証機能を使う場合には、平文パスワード文字列を含むパスワードファイルを使う必要があるのがちょっと嫌。


[ 7月26日全て ]

2005年8月24日 (水)

Module::Buildソースパッケージング このエントリーを含むはてなブックマーク

@ ExtUtils::MakeMaker

私が Perl が好きな理由の一つに、標準でExtUtils::MakeMakerという Makefile ジェネレータがついているところである。これを使って Makefile.PL を書くと

 perl Makefile.PL
 make manifest
 make
 make test
 make dist

で <pacakge>-<versionno>.tar.gz というソースパッケージを作ることができ、

 tar zxvf <pacakge>-<versionno>.tar.gz
 cd <pacakge>-<versionno>
 perl Makefile.PL
 make
 make test
 make install

という手順でインストールする事ができるようになる。 パッケージの作り方が確立されているので、容易に新しいパッケージを開発しはじめられる。

逆に Java でプログラムを書くのが億劫なのは、このあたりの準備が面倒だからである。 Ant を使っても結局ここら辺自分でやらなければならないし。

@ ちょっとしたアーカイブの作成

ちょっとしたパッケージを作りたいと思うことは良くある。 例えばいくつかのデータファイルと、READMEファイルなんかをひとまとめにしてアーカイブにするとか。

本当にちょっとしたであれば、手動でアーカイブすれば良いのだが、

  • アーカイブしたいファイル群がバージョン管理下にあって、CVS ディレクトリや .svn ディレクトリがある (除外してアーカイブする必要がある)
  • 同じディレクトリにある、作業用のファイルはアーカイブしたくない (除外してアーカイブする必要がある)
  • アーカイブする前に、チェック用のリグレッションテスト一式を走らせたい (リグレッションテストをかけられるようにする)
  • UNIX でも Windows でもアーカイブ化できるようにしたい。

あたりを考慮しなければならない時は面倒くさくなってくる。

自動化としては

あたりがぱっと思い浮かぶ。 しかし、最初の2つは毎回同じようなものを書くのが面倒だし保守もしにくい。 GNU Autotools はちょっとごっつすぎだし、Windows での環境構築も面倒。

@ ExtUtils::MakeMaker の欠点

ということで最初は ExtUtils::MakeMaker を使うという線で考えてみた。 もともと Perl モジュール用で汎用用途にはちょっと邪魔な振舞いもあるが、使えないことはないと思う。 しかし make (GNU Make あるいは nmake など) に依存しているという欠点がある。

@ Module::Build

ということで ExtUtils::MakeMaker の代替である Module::Build ベースで汎用用途に使えないか検討してみた。こちらは pure Perl で make を必要としない。

Module::BuildPerl モジュールビルドにあわせた振舞いがあるものの、ちょっとカスタマイズすれば使えそうだ。 で、いろいろいじった結果、次のような感じにすると使いやすそうだ。

 use Module::Build;
 my $class = Module::Build
   ->subclass(class => 'NonmoduleBuilder',
              code => q{
                        # Don't make blib
                        sub ACTION_code {};
                        # Don't make blib
                        sub ACTION_docs {};
                        # Don't make META.yml
                        sub ACTION_distmeta {
                          # no warning on ACTION_distdir
                          $_[0]->{metafile} = 'MANIFEST';
                        };
                        # Don't add MEATA.yml to MANIFEST
                        sub ACTION_manifest {
                          $_[0]->{metafile} = 'MANIFEST',
                          $_[0]->SUPER::ACTION_manifest(@_);
                        };
                       });

 # Set your archive name and version.
 $class->new(dist_name => 'mypackage',
             dist_version => '1.0.2',
             )->create_build_script;

カスタマイズした部分は以下(Module::Build 0.26 で動作確認)。

  • Perl モジュールビルドに特有の blib ディレクトリを作らないようにする。
  • META.yml を生成しないようにし、アーカイブに含まれないようにする。

上記のようなファイルを Build.PL という名前で作っておけば

 perl Build.PL
 ./Build manifest
 ./Build
 ./Build test
 ./Build dist

等として、アーカイブ作成が容易にできるようになる。

しばらくこの方法でいろいろ試してみることにしてみよう。


[ 8月24日全て ]

2006年2月3日 (金)

amaroK から Last.fm へ送信できるようになった このエントリーを含むはてなブックマーク

iTunesプラグイン iScrobbler For Windows 1.1.0 をインストールして、曲を再生してみたところ Last.fm へ曲情報をうまく送信できた。 アカウントの方は特に問題ないらしい。

やはり amaroK 側の問題か。

何度か amaroKsvn 版をコンパイルして試してみるうちに、そういえば configure した際にいくつか optional なライブラリが無くてそれらの機能が外されている旨の表示が出ていたことを思い出した。 apt-get build-dep amarok では全部入らないらしい。

README をみて必要なライブラリを確認。 libmp4v2 あたりが怪しい。ということで libmp4-dev パッケージをインストール。 また前回インストールされていなくて configure に --without-akode していたので aKode 関係のライブラリもあわせていれておく。

で再インストール

で再生してみたら、あっさりうまくいった。

よし。


[ 2月3日全て ]

2006年6月29日 (木)

SubversionSSH port forwarding 経由での svn+ssh このエントリーを含むはてなブックマーク

普段プライベートネットワーク内で、svn+ssh で接続している Subversion リポジトリSSH 経由で port fowarding して接続するようにする。

 [ノート PC] -- [ゲートウェイ] -- [リポジトリのあるサーバ]
                gw.example.com    192.168.0.x

@ ポートフォワーディング用 SSH ラッパー

例えば svn-gw-ssh という名前で以下のファイルを作成:

 #!/bin/sh
 HOST_NAME=$1
 shift 1
 ssh -f -L 8023:$HOST_NAME:22 gw.example.com sleep 10
 ssh -p 8023 -o HostKeyAlias=$HOST_NAME localhost $@

@ svn 用ラッパーも書いておく

例えば svn-gw という名前で以下のファイルを作成:

 #!/bin/sh
 SVN_SSH=svn-gw-ssh svn $@

@ 使う

これで例えば svn+ssh://192.168.0.x/var/repos でチェックアウトした作業ディレクトリ上をプライベートネットワーク内外で、更新したりコミットしたりできるようになる。

プライベートネットワーク内からは今まで通り。

 svn update

プライベートネットワーク外からは

 svn-gw update

のようにする。

これで

と合わせて随分外部で作業できるようになった。 それだけ、外部でもやれる仕事が増えたということでもあるが。


[ 6月29日全て ]

2007年1月6日 (土)

connect.c を使って SOCKS サーバ経由で社内サーバへ SSH 接続 このエントリーを含むはてなブックマーク

以前社外から社内 Web サイトへのアクセスは autossh + FoxyProxy を使って SOCKS 経由で直接できるように設定した (記事)。 また UnisonSubversion もそれぞれ SSH port forwarding 経由で直接アクセスできるようにしてある (Unison の記事Subversion の記事)。

しかし社外から社内サーバへの SSH 接続(やファイル転送)は、以前として一旦中継ホストに接続(転送)してから再度接続(転送)していて面倒であった。

調べたところ Shun-ichi GOTO氏の SSH プロキシコマンド connect.c を使うと SOCKS サーバ経由で直接接続できるようなので設定してみた。

 [クライアント:8090] -- SOCKS -- [ゲートウェイ] -- [社内サーバ]
                                 gw.example.com    192.168.1.x

@ インストール

Debian なので apt-get で。

 apt-get install connect-proxy

@ SSH の設定

~/.ssh/config に以下の行を追加。

 Host 192.168.1.*
   ProxyCommand /usr/bin/connect-proxy -S localhost:8090 %h %p

192.168.1.* に接続する際は、connect-proxy を使ってローカルホストの 8090 ポートの SOCKS を通るようにする設定。

@ SSHSOCKS サーバにする

autossh を使って SSHSOCKS サーバを立てる

 autossh -N -f -D8090 gw.example.com

これで準備 OK。

@ 使ってみる

@ SSH 接続
 ssh 192.168.1.x

で接続を確認。

@ Konqueror (KDE)
 fish://192.168.1.x/

で直接ブラウズ、読み書き可能なことを確認。

@ Unison

普通に 192.168.1.x と同期できることを確認。

@ CVS

普通に 192.168.1.x 上のリポジトリに対して cvs update できることを確認

@ Subversion

普通に 192.168.1.x 上のリポジトリに対して svn update をかけるとアップデートし終わって最後に

 FATAL: output (local) failed, errno=32

というエラーがでる。

@ 便利

Subversion だけちょっと気がかりだれど、その他はうまく行っている感じ。

これでかなり手軽に接続、転送できるようになった。 便利、便利。

@ 追記 (2009年2月23日)

一時的に connect.c を通らないで直接接続する際には 'ssh -o ProxyCommand=none' とする。

 例:
 SVN_SSH='ssh -o ProxyCommand=none' svn update

[ 1月6日全て ]

2007年10月10日 (水)

今日のさえずり - Google カレンダーに初めてログイン。 このエントリーを含むはてなブックマーク

  • 16:19 この間ノート PC をシャットダウンしたので、autossh が止まっているのを忘れてた。どうりで svn でコミットできないわけだ。
  • 16:59 ちょっとだけオフィスが暑い時に、窓を開ければよいということを随分しばらく忘れていたようだ。空調より気持ちいい。*Tw*
  • 17:12 PStart から Twit が自動起動して、休暇前に使い始めたことを思い出した。*Tw*
  • 18:09 Google カレンダーに初めてログイン。 *Tw*
  • 21:50 ルービックキューブ、次は LBL をマスターする。
  • 24:20 F2L こんなに覚えるパターンがあるのか……。

[ 10月10日全て ]

2009年8月12日 (水)

今日のさえずり - 哭きの竜のポーズの人発見(多分寝てる) このエントリーを含むはてなブックマーク

naney:3819175819

@ 2009年08月10日

@ 2009年08月11日

  • 11:11 return foo = bar ? true : false; とか、やめてほしい。 *P3
  • 12:43 FriendFeed の友達リストの一括整理の仕方をようやく把握した。 *P3
  • 12:49 FriendFeed からポストしてみる。 http://ff.im/-6qNVn
  • 12:52 2009年8月8日の歩行: 3515歩、2.69km、33分、4.84km/h、消費 130.6kcal、脂肪燃焼 18.7g、1.7エクササイズ。 *P3
  • 12:53 2009年8月9日の歩行: 4570歩、3.51km、41分、5.02km/h、消費 171.9kcal、脂肪燃焼 24.5g、2.4エクササイズ。 *P3
  • 12:55 2009年8月10日の歩行: 4801歩、3.82km、35分、6.37km/h、消費 179.7kcal、脂肪燃焼 25.7g、2.6エクササイズ。 *P3
  • 16:32 哭きの竜のポーズの人発見(多分寝てる)。 *P3
  • 18:25 Dropbox がつまってリズムが崩れた。 *P3
  • 18:38 あ、/home が 6.9MB しか残っていなかった。 *P3
  • 18:57 ソフトウェアダウンロードアーカイブを一部 microSDHCカードに移動して /home を広げている最中。 *P3

@ 2009年08月12日

  • 09:31 今年の夏コミ日程を確認。8月14日から8月16日か。今週末なのね。 [mb]
  • 09:46 ソフマップ新店舗について。 L:秋葉原http://movapic.com/...
  • 12:24 2009年8月11日の歩行: 7514歩、6.01km、55分、6.49km/h、消費 282.5kcal、脂肪燃焼 40.4g、4.1エクササイズ。 *P3
  • 12:34 茶月のお持ち帰り限定お買い得セールってなんだ? あの店舗でイートインあるの? (と書いていて配達という選択肢の可能性に気づいた) [mb]
  • 12:37 水鉄砲って100円しないのな。 L:シモジマ [mb]
  • 12:49 クーピーペンシル買った。 [mb]
  • 12:54 マーボードワーフ。 [mb]
  • 12:57 @shuwatto クーピーペンシル、缶箱のデザインも昔と同じです。逆にキャラクター物とかお店で見つかりませんでした。 [mb]
  • 13:21 @HeroesC 子供用のクーピーペンシル店頭で見たのですが、あれ子供にも短すぎたりしないですか? (値段的にも割高感があったので今日は普通のをチョイス) *P3
  • 14:57 社内サーバにはいっている svnsvn merge --reintegrate できないバージョンです。 *P3
  • 15:42 危うくセブン-イレブンで生茶パンダ先生 in ボトル買うところだった。手にしたけど考えてみたら777円も出せん。 [mb]

[ 8月12日全て ]

2009年11月10日 (火)

今日のさえずり - たまにオッサンみたいな驚き方する このエントリーを含むはてなブックマーク

naney:4100087863

@ 2009年11月09日

  • 08:18 ベンザブロック L服用。 [mb]
  • 09:27 駅が混沌としている。 [mb]
  • 09:32 山手線運転再開しているのか。京浜東北線混雑にはもう影響しないかな? [mb]
  • 09:40 京浜東北線田町駅で山手線内回りと並走。山手線も空いている。 [mb]
  • 12:39 ベンザブロックL服用。
  • 12:42 「たまにオッサンみたいな驚き方する」って言われてしまった。
  • 12:50 フグ田マスオ28歳。 RT @wtnabe: @Naney そういうときのために「マスオさんが驚いたときのマネ」を体得しとくといいですよ。
  • 14:08 うーん、喉がイガイガするので飴買ってくる。
  • 14:15 プロポリスのど飴にした。プロポリス成分はきっと気休め程度しか入ってないんだろうな。 [mb]
  • 14:23 UHA味覚糖のプロラボ プロポリスのど飴が予想以上にビリビリくる。刺激的で赤面。
  • 14:27 @Michiaki 初めて舐めたんですが、これって効きますか?
  • 15:10 svn2cl 使った。まずまず使える。
  • 17:26 喉のイガイガがおさまったけれど、プロポリスのど飴のせいなのかベンザブロックLのせいなのか、はたまた自然治癒なのか不明。
  • 19:05 また reStructuredText 使いたくなってきた。
  • 19:18 セブン-イレブン限定 ZAKU II。 http://movapic.com/...
  • 19:29 隣の人が日本酒臭い。酒臭いじゃなくて日本酒臭い。 [mb]
  • 21:11 @maru_kei 確かに体臭+香水はきついよね。 [mb]
  • 21:48 @maru_kei あ、今読みました。オメデトウ!
  • 23:58 なんとか日付が変わる前に布団に入った。 [mb]

@ 2009年11月10日

  • 09:15 自殺点とかサドンデスってもうみんな使ってない? 狩られきった? [mb]
  • 09:41 MovaTwitter で #sb2009 つぶやき検索しながら出勤中。 [mb]
  • 09:44 ヨドバシカメラ マルチメディア Akiba のソフトバンクショップ/コーナーは 何事もないような雰囲気。 #sb2009 #Akihabara L:秋葉原 [mb]
  • 10:36 新しい名刺をもらった。シングルネームになった。
  • 12:27 風邪で喉が不調。声が出ないのでおとなしくしている。Twitter は声が出なくてもさえずれるからいいね。
  • 12:31 840P に帆立色。
  • 12:51 ポットパイをホットパイという2人組をやっつけるために Google 検索した。
  • 13:06 誰かがネットワークカメラもりもり動かしている。
  • 15:09 後ろの人にビタミン C もらった。みかん。感謝。というか、ねだった。
  • 17:37 注文した ThinkPad X200 用にリカバリー・メディアを作るための光学ドライブを買うか、丸ごとコピー用の HDD を買うか迷っている。後者の丸ごとコピーが簡単にできるのか不明。
  • 18:01 柿の種のあまりのピーナッツを押し付けられた。
  • 19:25 声優のたまごが駅前で何か配ってる。 #Akihabara L:秋葉原 [mb]
  • 19:46 明日コンサートなので喉回復させんと。 [mb]
  • 20:02 多慶屋パープルのビニール袋持っている人発見。そういえばあまり見かけないな。 [mb]

[ 11月10日全て ]

2009年12月2日 (水)

今日のさえずり - ベッド無くなったけど、つい迂回して移動してしまう このエントリーを含むはてなブックマーク

@ 2009年12月01日

@ 2009年12月02日

  • 09:25 家の近くの月極駐車場がタイムズになるようだ。昨日欠けてたコンクリ埋めたり柵取っ払ったりしてたのはそのためか。 [mb]
  • 09:44 McCafeCM 好き。和服で大挙するやつ。 [mb]
  • 10:22 Content Management System の略で CMS と言っていたのが、いつの間にか Customer Management System とごっちゃにされているという危惧。
  • 11:36 レンタルベットの引き取りが完了したらしい。
  • 12:13 ベットじゃなくてベッドだった。いつも間違える。
  • 12:16 Tサイト本登録完了してた。
  • 12:39 MovaTwitter でメッセージフッタをつけないように設定変更した。RT についちゃうとなんか良くない気がして。 #movatwi
  • 12:43 2009年12月1日の歩行: 4739歩、3.68km、39分、5.57km/h、消費 178.5kcal、脂肪燃焼 25.5g、2.5エクササイズ。
  • 12:57 貴金属刑事。警視庁捜査一課刑事。警部補。 http://bit.ly/7TNOtY
  • 15:38 C# にも const な参照型欲しい。 #csharp
  • 20:11 昨日から始まっている(らしい)タイムズの工事、まだ全然できてないのに11月24日営業終了の張り紙。意図不明。使い回し?
  • 21:24 ベッド無くなったけど、つい迂回して移動してしまう。
  • 25:22 西友で買った100円しないハサミ、ぜんぜん切れない。安物買いの銭失い。

[ 12月2日全て ]

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.046467s / load averages: 0.36, 0.22, 0.21
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)