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年5月17日 (月)
■ TortoiseSVN 1.0.4

Windows 用の Subversion クライアントとして、TortoiseSVNを Windows XP BOX に入れてみた。
svn+ssh だとうまく認証できない(SSHクライアントとしては付属の TortoisePlink を使用)。PuTTY FatalError SSH_DISCONNECT_PROTOCOL_ERROR と出てしまう。 パスワード入力ダイアログをよくみるとユーザ名が空になっているようなので、
svn+ssh://username@servername/...
としたらつながるようになった。 しかし毎回1発目のパスワード入力は失敗して、2回目のパスワード入力で成功するというのは気持ち悪いな。
TortoiseSVN 自体は慣れると使い勝手は良さそうだ。
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
- TortoiseSVN と svn+ssh な svn:externals (2004-07-23)
- TortoiseSVN と svn+ssh (2004-07-26)
- ノート PC を持たずに会社に行きたい (2006-12-21)
- Unison + Zebedee (2004-06-11)
2004年7月23日 (金)
■ TortoiseSVN と svn+ssh な svn:externals

以前 TortoiseSVN から svn+ssh で接続する際にユーザ名をURIに含めることで認証が通るようにしてみた。
しかし今日 svn:externals プロパティで外部定義の設定をしていてはたと困る。 svn:externals で指定するURI はリポジトリ利用者で共有するので、チェックアウトする時のURIのようにユーザ名を含める訳にはいかない。
で、さらっと調べたところ TortoiseSVN の SSHクライアントの設定のところでユーザ名を指定できるようだ。 デフォルトで TortoisePlink.exe へのフルパスが設定されているが
前略\TortoisePlink.exe -l ユーザ名
のようにすればユーザ名を指定できる。
一つのリポジトリにアクセスするだけならとりあえずこれでしのげそうだ。
それにしても更新をかけた際に外部定義毎にパスワードの問い合わせがあるので面倒(外部定義先が同じURIであっても)。
やはりきちんとセッションを保存しておくようにせねば。
それから、TortoiseSVN は 1.0.4 から 1.0.8 に上げておく。
- TortoiseSVN 1.0.4 (2004-05-17)
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
- TortoiseSVN と svn+ssh (2004-07-26)
- Unison + Zebedee (2004-06-11)
- ノート PC を持たずに会社に行きたい (2006-12-21)
2004年7月26日 (月)
■ TortoiseSVN と svn+ssh

マニュアルを読んだら、SSHクライアントの設定のところでユーザ名だけでなくパスワードも指定する例が示されていた。
前略\TortoisePlink.exe -l ユーザ名 -pw パスワード
なるほど。動いた。しかしかなり嫌な感じ。
ということで、「PC日記: svn+ssh on Windows」で紹介されている方法にしてみた。
@ 準備 (Windows 側)
@ SSH用の鍵ペアを作成 (Windows 側)
- PuTTYgen を実行。
- SSH2 RSA を選択。
- Generate マウスを適当に動かす。
- パスフレーズを入力。
- Save private key ボタンで PuTTY Private Key File (.ppk) として保存。
- 「Public key for pasting into OpenSSH authorized_keys file:」 覧に表示される文字列をコピーして、テキストファイルに保存(名前は任意)。
@ SSHの鍵をサーバ側に置く (サーバ側)
- そのファイルの中身を Subversion リポジトリのあるサーバの ~/.ssh/authorized_keys に追加。
@ 接続テスト (Windows 側)
- PuTTY を実行。
@ TortoiseSVN でパスフレーズ入力を省略できるように Pagent を起動 (Windows 側)
- Pageant を起動。
- キーリストを開いて Add Key. 保存してある ppk ファイルを指定。パスフレーズを入力。
この状態で TortoiseSVN から接続できるようになった。
@ 追記
2005年8月4日に若干体裁を整理。
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
- TortoiseSVN 1.0.4 (2004-05-17)
- 自宅の無線 LAN を復旧 & IEEE 802.11g 化 (2004-11-26)
- Unison + Zebedee (2004-06-11)
- TortoiseCVS 1.8.0-RC4 (2004-08-26)
2004年8月2日 (月)
■ Subversion で大文字・小文字のみ違うファイル名へ変更

Windows ユーザが拡張子を全て大文字にしたファイル名のファイル (hoge.PNG) を登録していた。Windows 上の挙動のチェックがてら Linux 側で
svn move hoge.PNG hoge.png svn commit
してみた。
もちろん Linux 上では問題なし。
Windows 側で TortoiseSVN を使って更新をかけたらエラー。 hoge.PNG のみ先に単体でアップデートすることで作業コピーからの削除まではできるが、.svn の中のファイルのコピーだかで失敗する。
結局作業コピーを削除してチェックアウトしなおし。
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
- Debian GNU/Linux で Dropbox (2008-09-16)
- amaroK で Linux 上の iTunes 音楽データを聞く (2006-01-22)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- TortoiseSVN 1.0.4 (2004-05-17)
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 亜種があったのでこちらを入れて解決。
@ ついでに
過去のドキュメントとかも順次。
- Subversion で SSH port forwarding 経由での... (2006-06-29)
- TortoiseSVN と svn+ssh (2004-07-26)
- Subversion で大文字・小文字のみ違うファイル名へ変更 (2004-08-02)
- TortoiseSVN 1.0.4 (2004-05-17)
- connect.c を使って SOCKS サーバ経由で社内サーバへ SSH 接続 (2007-01-06)
2005年7月26日 (火)
■ 普通の人向けに svnserve を立ち上げるか

開発チームでは主に svn+ssh で Subversion を利用している。
Windows ユーザは
- 前準備「PuTTYgen で鍵ペアを生成し」「リポジトリのあるサーバ(Linux)側に公開鍵を登録」
- 前準備「Pagent を動かして秘密鍵を指定しておく」
- TortoiseSVN でリポジトリアクセス
という手順をとっている(参考記事)。 しかしこの方法は SSH に詳しくなかったり Linux のオペレーションとかに慣れていなかったりするユーザにはかなり敷居が高い。
最近ソフトウェア開発以外でのチームでも Subversion の利用を検討しているが、この手順だと多分萎えるはず。
SSHで暗号化するほどのセキュリティが必要ない運用なので、svnserve を起動して運用した方が楽そうだ。まだ使ったことがないけれど。
svnserve を実行する権限を気にする必要がある以外は基本的には手間なしのはず。 しかし svnserve の組み込みの認証機能を使う場合には、平文パスワード文字列を含むパスワードファイルを使う必要があるのがちょっと嫌。
- TortoiseSVN 1.0.4 (2004-05-17)
- TortoiseSVN と svn+ssh (2004-07-26)
- Unison + Zebedee (2004-06-11)
- ノート PC を持たずに会社に行きたい (2006-12-21)
- Subversion で大文字・小文字のみ違うファイル名へ変更 (2004-08-02)
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 でもアーカイブ化できるようにしたい。
あたりを考慮しなければならない時は面倒くさくなってくる。
自動化としては
- シェルスクリプト/バッチファイルを書く
- Makefile を書く
- GNU Autotools を使う
あたりがぱっと思い浮かぶ。 しかし、最初の2つは毎回同じようなものを書くのが面倒だし保守もしにくい。 GNU Autotools はちょっとごっつすぎだし、Windows での環境構築も面倒。
@ ExtUtils::MakeMaker の欠点
ということで最初は ExtUtils::MakeMaker を使うという線で考えてみた。 もともと Perl モジュール用で汎用用途にはちょっと邪魔な振舞いもあるが、使えないことはないと思う。 しかし make (GNU Make あるいは nmake など) に依存しているという欠点がある。
@ Module::Build で
ということで ExtUtils::MakeMaker の代替である Module::Build ベースで汎用用途に使えないか検討してみた。こちらは pure Perl で make を必要としない。
Module::Build も Perl モジュールビルドにあわせた振舞いがあるものの、ちょっとカスタマイズすれば使えそうだ。 で、いろいろいじった結果、次のような感じにすると使いやすそうだ。
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
等として、アーカイブ作成が容易にできるようになる。
しばらくこの方法でいろいろ試してみることにしてみよう。
- SCons は GNU Autotools のかわりになるか (2005-04-20)
- ActivePerl で Ming (2005-02-23)
- nmake で毎回 pl2bat されるのを何とかしたい (2004-11-25)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- bundle を作成して Perl モジュールをまとめてインストール。 (2004-10-21)
2006年2月3日 (金)
■ amaroK から Last.fm へ送信できるようになった

iTunes に プラグイン iScrobbler For Windows 1.1.0 をインストールして、曲を再生してみたところ Last.fm へ曲情報をうまく送信できた。 アカウントの方は特に問題ないらしい。
やはり amaroK 側の問題か。
何度か amaroK の svn 版をコンパイルして試してみるうちに、そういえば configure した際にいくつか optional なライブラリが無くてそれらの機能が外されている旨の表示が出ていたことを思い出した。 apt-get build-dep amarok では全部入らないらしい。
README をみて必要なライブラリを確認。 libmp4v2 あたりが怪しい。ということで libmp4-dev パッケージをインストール。 また前回インストールされていなくて configure に --without-akode していたので aKode 関係のライブラリもあわせていれておく。
で再インストール。
で再生してみたら、あっさりうまくいった。
よし。
- amaroK で Linux 上の iTunes 音楽データを聞く (2006-01-22)
- Module::Build でソースパッケージング (2005-08-24)
- JRE をバンドルしたインストーラを NSIS で作る (2004-12-02)
- 音楽再生にあわせて処理をする amaroK スクリプトを書いてみる (2006-01-31)
- Linux ノート PCを iTunes サーバにしてみる (2006-01-21)
2006年6月29日 (木)
■ Subversion で SSH 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
のようにする。
これで
と合わせて随分外部で作業できるようになった。 それだけ、外部でもやれる仕事が増えたということでもあるが。
- connect.c を使って SOCKS サーバ経由で社内サーバへ SSH 接続 (2007-01-06)
- 仕事のファイルを順次 Subversion リポジトリに突っ込む (2004-10-04)
- TortoiseSVN と svn+ssh (2004-07-26)
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
- TortoiseSVN 1.0.4 (2004-05-17)
2007年1月6日 (土)
■ connect.c を使って SOCKS サーバ経由で社内サーバへ SSH 接続

以前社外から社内 Web サイトへのアクセスは autossh + FoxyProxy を使って SOCKS 経由で直接できるように設定した (記事)。 また Unison や Subversion もそれぞれ 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 を通るようにする設定。
@ SSH を SOCKS サーバにする
autossh を使って SSH で SOCKS サーバを立てる
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 だけちょっと気がかりだれど、その他はうまく行っている感じ。
これでかなり手軽に接続、転送できるようになった。 便利、便利。
- FoxyProxy と autossh で社内 Web ページを閲覧 (2006-06-03)
- Subversion で SSH port forwarding 経由での... (2006-06-29)
- OpenSSH for Windows (2004-08-05)
- Module::Build でソースパッケージング (2005-08-24)
- vc-svn.el を使いたいので Emacs 22 に移行することにした (2006-03-25)
スポンサード リンク
■よく検索されるキーワード
perl(62) torrent(54) linux(48) 提案書(47) windows(43) 書き方(41) 使い方(29) アジェンダ(26) x31(25) 充電式カイロ(25) cvs(22) インストール(20) サンプル(20) thinkpad(19) アジェンダとは(19) f-01a(18) wiki(17) c#(16) 感想(16) カイロ(16) usb(16) java(16) 秋葉原(15) debian(15) ヨドバシカメラ(15) subversion(15) 壁紙(15) 作り方(15) 静電気(14) apache(14) グッズ(14) デロンギ(13) フリー(13) sh-01a(13) ganttproject(13) 修理(13) ssh(12) svn(12) ヨドバシ(12) truecrypt(12) ダイソー(11) 手帳(11) activeperl(11) ubuntu(11) ほぼ日手帳(11) firefox(10) mew(10) mp980(10) ドラマ(10) 日本語(10) n-01a(10) google(10) tc-1(10) 評判(10) ツール(10) djunit(9) cgi(9) 動画(9) mp3(9) オイルヒーター(9) docomo(9) rcs(9) 除去(9) centos(9) メモリ(9) エネループ(9) 設定(9) p-01a(9) tortoisesvn(9) 無印(8) ケース(8) 口コミ(8) ミノルタ(8) メール(8) インストーラ(8) 会議(8) xampp(8) 加湿器(8) af(7) 値段(7)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 15.242049s / load averages: 0.18, 0.33, 0.48
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク