nDiki : Subversion
Subversion
バージョン管理システムの一つ。
たまに必要になる作業に関するメモ
add した際テキストファイルがバイナリと見なされてしまった:
svn propdel svn:mime-type file-name
作業ディレクトリ以下を指定したバージョンに戻したい:
svn merge -r HEAD:戻したいバージョン . svn commit
ログメッセージをスペルミスしたので直したい:
log.txt に新しいログメッセージを書いておいて
svn propset svn:log -F log.txt -r [リビジョン番号] --revprop
または
svnadmin setlog /path/to/repos -r [リビジョン番号] log.txt
ただし、repos/hooks/pre-revprop-change が存在して正常終了するような設定でないといけない。
#!/bin/sh exit 0 # 危険な pre-revprop-changes の例
$Id$ を使う
svn propset svn:keywords Id ファイル svn commit ファイル
TortoiseSVN なら右クリックメニューでプロパティを選択し、Subversion タブから設定してコミット。
関連情報
Subversion 関連ツール
- svn - コマンドラインクライアント。
- TortoiseSVN - エクスプローラのコンテキストメニューに機能が追加される。便利。
- svnserve、cvs2svn
- SVN::Web - http://search.cpan.org/.../SVN/Web.pm
- CRAM-MD5
- SVK
ChangeLog 関連ツール
- svn2cl (XSLT)
- svn2log
- gnuify-changelog.pl (Subversion の examples に収録)
Emacs 関連ツール/マクロ
その他
書籍
スポンサード リンク
Related term
2004年12月31日 (金)
■私的10大ニュース2004 [ comp ]

@ cool programs
- pdumpfs
- Memcached
- 簡単・高速なキャッシュシステム。使える。
- Firefox
- Subversion
- 将来的に CVS から移行する事を考えて試験的に導入。良い。Windows でも TortoiseSVN のおかげで簡単に利用できる(CVS にも TortoiseCVS が出て便利になった)。
- 影舞
- 今年前半のプロジェクトで活躍。
- PAR
- NSIS
- Template Toolkit
- Webアプリケーション開発プロジェクトで採用。www.naney.org の静的コンテンツの生成でも使い始めた。
@ Palm OS 生活復活
PEG-TJ25を購入し、Palm OS 生活復活。 最初はおもちゃのつもりで買ったのだが、プロジェクトマネジメントなどにシフトした仕事のスケジュール管理などで大活躍。
PDA 市場の明るい話はあまり聞かないが、末長く製品が出て続けて欲しい。
- Module::Build でソースパッケージング (2005-08-24)
- DAR で差分/増分バックアップ (2005-04-02)
- JAlbum で Webフォトアルバム (2004-11-14)
- ホームネットワークカメラ BL-C10 買っちゃった (2005-01-18)
- Linux 上で Windows 用インストーラを作成する (2004-10-14)
2005年1月31日 (月)
■ 外部定義か作業ディレクトリを分けるか、trunk にブランチか

Subversion のリポジトリのレイアウトを思案中。
repos
|
+- branches
|
+- tags
|
+- trunk
|
+- project
| |
| +- 2004
| |
| +- 2005
|
+- texmf
という構成がある。 project に年別のサブブロジェクト 2004、2005 がある。 texmf は repos 以下で共有したいマクロディレクトリ。
問題は各サブプロジェクトでどうやって texmf を共有するか。 ここで 2005 + texmf を使用する際には 2004 まで一緒に作業ディレクトリにチェックアウトしたくないとする。 texmf は各プロジェクトの共通部分で随時改良される。 これらの改良は各プロジェクトで共有したい。
ただしプロジェクトの tag を打つ場合はその時点で使用されている texmf もセットで tag を打っておき、その tag をチェックアウトする事でサブプロジェクトのセットを再構築できる必要がある。
@ 作業ディレクトリを2つチェックアウトする方法
trunk/project/2005 trunk/texmf
の2つをチェックアウトする。2005 ディレクトリからは ../../texmf で参照するようにする。
@ 利点
- texmf を一括管理できる。
@ 欠点
- 作業者が2つの作業ディレクトリをこの構成でチェックアウトすることを知っている必要がある。間違えて違うURLをチェックアウトしてしまうかもしれない。
- 更新も毎回2つのディレクトリでする必要がある。texmf の update 忘れる等のミスをおかしやすい。
tag を打つ場合は
tags/release-1.0.0/project/2005 tags/release-1.0.0/texmf
と2つをとりまとめる必要がある。
@ サブプロジェクトにブランチを作る方法
texmf を trunk/project/2005/texmf のようにコピーする。
trunk
|
+- project
|
+- 2005
|
+- texmf
2005 ディレクトリからは texmf で参照するようにする。
@ 利点
- チェックアウトする人間は trunk/project/2005 をチェックアウトするだけで良い(texmf サブディレクトリは再帰的にチェックアウトされる)。
- trunk/project/2005 の tag を作るだけで、閉じたスナップショットを作れる。
- texmf が他のプロジェクトと独立する。
@ 欠点
- trunk/project/2005/texmf から trunk/texmf へのマージ、また逆へのマージを適宜行って同期しておく必要がある。骨が折れる。
- trunk の下にブランチ的な要素があるのがちょっと気持ち悪い。
@ 外部定義(svn:externals)を使う方法
trunk/project/2005 の svn:externals 属性として trunk/texmf のURLを指定し trunk/project/2005/texmf となるようにする。
@ 利点
- チェックアプトする人間は trunk/project/2005 をチェックアウトするだけで良い(texmf 外部定義は自動的にチェックアウトされる)。
- texmf を一括管理できる。
@ 欠点
- texmf 以下は別として扱われるので、更新処理などのオーバーヘッドが結構ある(遅い)。
- tag 打ちが面倒
tag を打つ際は
tags/release-1.0.0/project/2005 tags/release-1.0.0/texmf
と2つをとりまとめた上、tags/release-1.0.0/project/2005 の svn:externals のURLを書き換える必要がある。
将来リポジトリが移動してURLが変わった際も(実体は同じリポジトリにあるにもかかわらず)全てのURLを書き換える必要がある。
あるいは tag を打つ際に svn:externals をクリアし tags/release-1.0.0/project/texmf とコピーする方法もある。
@ どれにするか?
去年は外部定義を使用する方法で運用してみたが、update が遅い等それほど使い勝手が良くなかった。
今回はブランチ方式にしようかなと思う。 マージが面倒なようなら、次回は一番上の方式で。
- ドキュメント管理用 Subversion リポジトリ作成 (2004-03-04)
- プロジェクト関連ドキュメントを TeX で (2004-07-23)
- Subversion (2004-02-18)
- Subversion で間違えてディレクトリをごっそり消してコミットしてし... (2006-11-28)
- Apache でミラー proxy (2002-04-17)
2005年2月28日 (月)
■ 緊急出荷

午後に入って本日出荷のスクランブルが入る。 最優先ミッションにつき、他をキャンセルして作業開始。
チームメンバと協力しつつ一気にカタチにする。 ここしばらく Subversion ベースでドキュメントやリリースファイルの管理をしていたおかげで、比較的効率的に作業がすすむ。
で何とか本日付けで出荷。
社外ミーティングを終えた後22時近くに帰社してくれたメンバに感謝。 差し入れのなめらかプリンで気持ちもなめらか。ゴチ。
しかし考えてみればミーティングを除く実作業でこの時間まで残業というのは、この会社に入ってから初めてだったな。 幸せというべきか。
- 今日のさえずり - 京都の小学校のコンピュータ室にいったら、Squeak が (2008-03-06)
- 今日のさえずり - スパイだからミハルだってようやく気がついた (2008-11-28)
- Debian GNU/Linux で Dropbox (2008-09-16)
- 今日のさえずり - Twitter ずっと見てたら仕事の効率落ちるんじゃない? (2008-10-31)
- 誕生日 (2005-04-27)
2005年7月26日 (火)
■ 普通の人向けに svnserve を立ち上げるか

開発チームでは主に svn+ssh で Subversion を利用している。
Windows ユーザは
- 前準備「PuTTYgen で鍵ペアを生成し」「リポジトリのあるサーバ(Linux)側に公開鍵を登録」
- 前準備「Pagent を動かして秘密鍵を指定しておく」
- TortoiseSVN でリポジトリアクセス
という手順をとっている(参考記事)。 しかしこの方法は SSH に詳しくなかったり Linux のオペレーションとかに慣れていなかったりするユーザにはかなり敷居が高い。
最近ソフトウェア開発以外でのチームでも Subversion の利用を検討しているが、この手順だと多分萎えるはず。
SSHで暗号化するほどのセキュリティが必要ない運用なので、svnserve を起動して運用した方が楽そうだ。まだ使ったことがないけれど。
svnserve を実行する権限を気にする必要がある以外は基本的には手間なしのはず。 しかし svnserve の組み込みの認証機能を使う場合には、平文パスワード文字列を含むパスワードファイルを使う必要があるのがちょっと嫌。
- TortoiseSVN と svn+ssh (2004-07-26)
- TortoiseSVN 1.0.4 (2004-05-17)
- Unison + Zebedee (2004-06-11)
- ノート PC を持たずに会社に行きたい (2006-12-21)
- Subversion で大文字・小文字のみ違うファイル名へ変更 (2004-08-02)
2006年2月15日 (水)
■ ドキュメンテーション大全

プロジェクトの後半で納品用ドキュメントの整備を始めるのだが、その時はたいがいもう切羽詰りはじめていて構成やら体裁やらマネジメントやらを工夫する余力が無かったりする。 ついつい(次回は改良しようと思っていつも思っている)前回のプロジェクトの手法を踏襲してしまいがちだ。 ともすれば劣化コピーになりかねない。
やはり、忙しくても日頃からの改善は重要である。
最近はアジェンダ・議事録・開発メモなどを、積極的に Wiki や Subversion で共有するようにし、その点では以前より改善してきている。
今後はさらに、出荷ドキュメントのレビュープロセスなどを確立し品質を高めていきたいところである。 現状でもチームメンバでのピアデスクチェックやパスアランドを非形式的に行っているのだが、「チェックの程度」やその後の「修正」および「修正の確認」については、まだなんとなくやったかなという具合。この辺りを工夫したい。
先月発売されていて気になっていた「開発の現場 Vol.003」に、何かヒントがあるかなと思って買ってみた。
パラパラと見た感じではテクニカルライティングの話はあまりなく、主にソフトウェア開発における中間成果物としてのドキュメントや開発者間ドキュメントをどうとりまとめていくかという話が中心のよう。 Wiki による開発資料のライトな共有など、うちのチームでも進めている話など。
「(最初から)完全なドキュメントを書こうとしない」というのはもっとも。 状況はほとんどの場合変わるし、最初の段階では未確定の部分も多い。 だからといって、いつまでたっても手元で温めていてもしょうがない。
技術的な話では Perl の Pod を活用しようという話。 Perl 以外の言語のコメント中に Pod 形式でドキュメントを書こうという提案や、Apache で動的に Pod ドキュメントを整形しようという話とか。
テキストフォーマットとしての Pod は =over / =item / =back によるリスト表現など、最近のフォーマットに比べてすごく読み易いわけではないが、たしかに他の言語のコメントに埋め込んでおいて処理するのは、標準の Pod 関連のモジュールでできるな。
自分も Pod でドキュメントを書くけれど、(Perl 以外は) 個人的には reStructuredText にしたいと考えている。 ただ Pod みたいに他のテキストの一部に埋め込んでその部分のみ処理する記法およびツールがが標準の reStructuredText / Docutils には見当らない。 実はどっかにあるのだろうか。
[ 書評 ]
- Docutils は自分にとっての Python キラーアプリかも (2005-12-01)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- Joel on Software - 必読書 (2008-08-14)
- 定型書式で内容を記述していくのに便利な形式は? (2005-11-21)
- ソフト契約と見積りの基本がよ~くわかる本 (2005-10-14)
2006年2月17日 (金)
■ SVN::Webインストール失敗

社内サーバ上の Subversion リポジトリを気軽に閲覧できるように、以前から試そうと思っていた SVN::Web をインストールしてみる。
しかし Subversion の Perl バインディングである SVN::Core は、Subversion パッケージに同梱されていて独立していないのか。 Subversion は Red Hat Linux 8.0 へ RPM パッケージで入れているのだが、SVN::Web の方は /usr/local/perl-5.8.8 以下にインストールした Perl v5.8.8 上へ入れようと思っていたので、はたと困る。
--with-perl5=/usr/local/perl-5.8.8/bin/perl
で configure して、Perl モジュールだけインストールしてみたけれどうまく動かず。
素直に Red Hat Linux 8.0 に標準で入っている Perl v5.8.0 に入れるかなぁ。
- CPAN のPerl モジュールを RPM パッケージ化する (2003-04-22)
- 野良パッケージと依存 Perl モジュールのインストールセット をCPAN... (2006-02-11)
- 野良パッケージと依存 Perl モジュールのインストールセット を CPA... (2006-02-12)
- Red Hat Linux 8.0 Box に Subversion (2004-03-04)
- ActivePerl で Ming (2005-02-23)
2006年2月18日 (土)
■ Mozex を使って Firefox 1.5.0.1 の textarea の内容を Emacs で編集する

uim、uim-skk と Firefox のキーバインディングをきちんと設定していないせいか、どうも textarea での日本語編集にストレスを感じる。 Wiki 等で textarea での編集作業も少なくないので、Mozex を使って Emacs で編集できるように設定しておくことにした。
より降旗氏が公開されている Firefox 1.5以降用 mozex 1.07.1 日本語 version (1.5.0.1 インストール対応)を Firefox にインストール。
そういえば今まで emacsclient も使ったことがなかったな。Emacs 立ち上げっぱなしのくせに。まずは起動している Emacs 上で M-x server-start (.emacs で (server-start))しておく。
Mozex の設定で
Directory for temporary files: /tmp Textareas: /usr/bin/emacsclient %t
を設定。自分の環境だと Commands は絶対パスでないとうまく呼べないようだ。
これで textarea 上で右クリックし、[mozex] -> [Edit Textarea] で開いている Emacs 上に Textarea の内容が新しいバッファで開く。 編集して保存して C-x # し、Web ブラウザ側に戻ると反映される。
便利便利。
ところで Emacs server と gnuserv とどっちがいいのかな? 特に設定なしでどちらも使える。 何も設定していない状態だと gnuserv の方は新しい frame が開いて好みじゃないので、とりあえずは Emacs server を使うことにする。
ついでに EDITOR 環境変数も emacsclient に直しておこう。 これで CVS、Subversion のコミット時に新しい Emacs を起動しなくてよくなる。
とっとと設定しておけば良かった。
- skkinput がよく落ちるので uim-skk に乗り換え (2005-09-22)
- X-Deep/32 Xサーバ (2005-03-30)
- Linux 母艦ノート PC を使わずに仕事ができるかチャレンジ (2007-08-20)
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイ... (2006-08-08)
- vc-svn.el / psvn.el (2004-07-30)
2006年3月23日 (木)
■ Rekisa で TortoiseSVN から日本語ファイルの差分表示

自分の開発チームでは、 Subversion を用いて pLaTeX2e ドキュメントを共同執筆というスタイルが随分多くなってきた (自分が推進しているわけだが)。
チームメンバのほとんどは Windows 上で TortoiseSVN を使っているのだが、内蔵の差分ビューアを使っていると charset を自動判別してくれないので、いわゆる JIS コードで書いている TeX のソースファイルの扱いがちょっと不便である。
そういえば以前はこの問題の声が聞かれたけれど、最近誰も言わなくなったな。 解決したのか、差分とか見なくなったのか。
数行書き換えて、一つの変更点としてコミットメントログを残せる単位でガシガシコミットしてしまう私と一緒に作業している人は、いつもコミット負けしているはずなのだが。
ということで TortoiseSVN で外部差分ビューアとして使えるツールを調べておこう。 まずは差分表示アプリケーション Rekisa。
日本語のファイルの charset を自動判別してくれるし、表示が美しい。 差分を見るには良さそうである。
マージ作業もあわせてするとすると編集機能が必要だが、Rekisa 自身では直接編集できないようだ(外部エディタを呼び出すことはできる)。
マージまですると WinMerge が本命? こちらはまだ試していないので後日。
- TeX と Subversion (2004-04-16)
- Subversion - auto-props (2004-05-18)
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
- プロジェクト関連ドキュメントを TeX で (2004-07-23)
- USB メモリのファイル同期なら WinMerge (2009-02-16)
2006年3月25日 (土)
■ vc-svn.el を使いたいので Emacs 22 に移行することにした

Subversion は Emacs の VC バックエンド vc-svn.el があるので CVS の時と同様気軽に使えていたのだが、かなり前から Debian の subversion パッケージから取り除かれて使えなくなってしまっていた。
vc-svn.el は Emacs 22 に含まれるらしく、Debian だと emacs-snapshot(-common と -el)に含まれている。 やっぱり VC で使えないと不便なので、これを機に Emacs 22 に移行することにした。
後生大事に Emacs 19 / 20 / 21 それぞれ用に emacs-major-version で設定を切り分けている .emacs のコードがあったりするので、その部分は動作確認しつつ Emacs 22 用の設定を作成する。
Emacs 21 とちょっと設定を変える必要がある部分があったけれど、おおむね問題なく動いているようだ。
問題なさそうなので update-alternatives で普段使いに設定しておこう。
- vc-svn.el / psvn.el (2004-07-30)
- cvs2svn (2004-02-24)
- Emacs 22 だと howm に色がつかないので Emacs 21 に戻す (2006-04-01)
- connect.c を使って SOCKS サーバ経由で社内サーバへ SSH 接続 (2007-01-06)
- Mozex を使って Firefox 1.5.0.1 の textarea... (2006-02-18)
2006年4月1日 (土)
■ Emacs 22 だと howm に色がつかないので Emacs 21 に戻す

1週間前にEmacs 22 に乗り換えたのだが、これだと昨日から使いはじめた howm に色がつかない。
あまりにも寂しい。
というか色分けされないと便利さ半減。 なのであっさり Emacs 21 に戻すことにした。 vc-svn.el の方は、Subversion Debian パッケージの README.Debian にある通り、Emacs 21 用に
svn export -r9195 \
http://svn.collab.net/repos/svn/trunk/contrib/client-side/vc-svn.el
でとってきてローカルに置き動くようにしておく。
(setq vc-handled-backends
(append vc-handled-backends (list 'SVN)))
も忘れずに。
- vc-svn.el を使いたいので Emacs 22 に移行することにした (2006-03-25)
- vc-svn.el / psvn.el (2004-07-30)
- cvs2svn (2004-02-24)
- 今日のさえずり - 京都の小学校のコンピュータ室にいったら、Squeak が (2008-03-06)
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイ... (2006-08-08)
スポンサード リンク
■よく検索されるキーワード
torrent(113) perl(50) 書き方(41) アジェンダ(33) ドラマ(27) linux(27) 動画(24) windows(24) 提案書(22) debian(20) 冷蔵庫(18) 使い方(17) アジェンダとは(16) evernote(16) firefox(15) 画像(14) x31(14) twitter(14) java(14) usb(12) gmail(11) dropbox(11) winmerge(11) tc-1(10) tickler(10) 映画(10) 修理(10) naneyorgwiki(9) thinkpad(9) ダウンロード(9) テンプレート(9) ixy(9) lsyncd(9) nikon(9) ノート(8) svn(8) rcs(8) フリー(8) 生年月日(8) 壁紙(8) apache(8) wiki(8) インストール(7) うなぎ(7) ダイソー(7) 210(7) smtp(7) サンプル(7) 女優(7) 提案書の書き方(7) a6(7) file(7) iwgp(7) ganttproject(7) aniara(7) 写真(7) 01(6) web(6) 補助充電アダプタ(6) grub(6) cm(6) ssh(6) boblbe-e(6) モジュール(6) 無料(6) フルハルター(6) visual(6) トレント(6) ヨドバシ(6) hyde(6) 評判(6) 無料動画(6) 会議(6) ブログ(6) c++(6) 作り方(6) foma(6) skype(5) ボールペン(5) c#(5)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.332632s / load averages: 0.16, 0.29, 0.31
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)






スポンサード リンク