トップ(最新) | <前 | 次>

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 関連ツール

ChangeLog 関連ツール

Emacs 関連ツール/マクロ

その他

書籍

image:ISBN:4872805054

スポンサード リンク

Related term

2004年12月31日 (金)

私的10大ニュース2004 [ comp ] このエントリーを含むはてなブックマーク

@ cool programs

@ Palm OS 生活復活

PEG-TJ25を購入し、Palm OS 生活復活。 最初はおもちゃのつもりで買ったのだが、プロジェクトマネジメントなどにシフトした仕事のスケジュール管理などで大活躍。

PDA 市場の明るい話はあまり聞かないが、末長く製品が出て続けて欲しい。

http://www.naney.org/img/2004/X/X2004-03-05-0003.jpg http://www.naney.org/img/2004/X/X2004-03-14-0004.jpg http://www.naney.org/img/2004/X/X2004-04-10-0001.jpg

スポンサード リンク


[ 12月31日全て ]

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:externalsURLを書き換える必要がある。

将来リポジトリが移動してURLが変わった際も(実体は同じリポジトリにあるにもかかわらず)全てのURLを書き換える必要がある。

あるいは tag を打つ際に svn:externals をクリアし tags/release-1.0.0/project/texmf とコピーする方法もある。

@ どれにするか?

去年は外部定義を使用する方法で運用してみたが、update が遅い等それほど使い勝手が良くなかった。

今回はブランチ方式にしようかなと思う。 マージが面倒なようなら、次回は一番上の方式で。


[ 1月31日全て ]

2005年2月28日 (月)

緊急出荷 このエントリーを含むはてなブックマーク

午後に入って本日出荷のスクランブルが入る。 最優先ミッションにつき、他をキャンセルして作業開始。

チームメンバと協力しつつ一気にカタチにする。 ここしばらく Subversion ベースでドキュメントやリリースファイルの管理をしていたおかげで、比較的効率的に作業がすすむ。

で何とか本日付けで出荷。

社外ミーティングを終えた後22時近くに帰社してくれたメンバに感謝。 差し入れのなめらかプリンで気持ちもなめらか。ゴチ。

しかし考えてみればミーティングを除く実作業でこの時間まで残業というのは、この会社に入ってから初めてだったな。 幸せというべきか。


[ 2月28日全て ]

2005年7月26日 (火)

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

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

Windows ユーザは

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

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

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

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

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


[ 7月26日全て ]

2006年2月15日 (水)

ドキュメンテーション大全 このエントリーを含むはてなブックマーク

開発の現場 Vol.003 効率UP&スキルUP ドキュメンテーション大全

プロジェクトの後半で納品用ドキュメントの整備を始めるのだが、その時はたいがいもう切羽詰りはじめていて構成やら体裁やらマネジメントやらを工夫する余力が無かったりする。 ついつい(次回は改良しようと思っていつも思っている)前回のプロジェクトの手法を踏襲してしまいがちだ。 ともすれば劣化コピーになりかねない。

やはり、忙しくても日頃からの改善は重要である。

最近はアジェンダ議事録開発メモなどを、積極的に WikiSubversion で共有するようにし、その点では以前より改善してきている。

今後はさらに、出荷ドキュメントのレビュープロセスなどを確立し品質を高めていきたいところである。 現状でもチームメンバでのピアデスクチェックやパスアランドを非形式的に行っているのだが、「チェックの程度」やその後の「修正」および「修正の確認」については、まだなんとなくやったかなという具合。この辺りを工夫したい。

先月発売されていて気になっていた「開発現場 Vol.003」に、何かヒントがあるかなと思って買ってみた。

パラパラと見た感じではテクニカルライティングの話はあまりなく、主にソフトウェア開発における中間成果物としてのドキュメントや開発者間ドキュメントをどうとりまとめていくかという話が中心のよう。 Wiki による開発資料のライトな共有など、うちのチームでも進めている話など。

「(最初から)完全なドキュメントを書こうとしない」というのはもっとも。 状況はほとんどの場合変わるし、最初の段階では未確定の部分も多い。 だからといって、いつまでたっても手元で温めていてもしょうがない。

技術的な話では PerlPod を活用しようという話。 Perl 以外の言語のコメント中に Pod 形式でドキュメントを書こうという提案や、Apache で動的に Pod ドキュメントを整形しようという話とか。

テキストフォーマットとしての Pod は =over / =item / =back によるリスト表現など、最近のフォーマットに比べてすごく読み易いわけではないが、たしかに他の言語のコメントに埋め込んでおいて処理するのは、標準の Pod 関連のモジュールでできるな。

自分も Pod でドキュメントを書くけれど、(Perl 以外は) 個人的には reStructuredText にしたいと考えている。 ただ Pod みたいに他のテキストの一部に埋め込んでその部分のみ処理する記法およびツールがが標準の reStructuredText / Docutils には見当らない。 実はどっかにあるのだろうか。


[ 書評 ]


[ 2月15日全て ]

2006年2月17日 (金)

SVN::Webインストール失敗 このエントリーを含むはてなブックマーク

社内サーバ上の Subversion リポジトリを気軽に閲覧できるように、以前から試そうと思っていた SVN::Webインストールしてみる。

しかし SubversionPerl バインディングである SVN::Core は、Subversion パッケージに同梱されていて独立していないのか。 SubversionRed 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 に入れるかなぁ。


[ 2月17日全て ]

2006年2月18日 (土)

Mozex を使って Firefox 1.5.0.1 の textarea の内容を Emacs で編集する このエントリーを含むはてなブックマーク

uimuim-skkFirefox のキーバインディングをきちんと設定していないせいか、どうも 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 に直しておこう。 これで CVSSubversion のコミット時に新しい Emacs を起動しなくてよくなる。

とっとと設定しておけば良かった。


[ 2月18日全て ]

2006年3月23日 (木)

Rekisa で TortoiseSVN から日本語ファイルの差分表示 このエントリーを含むはてなブックマーク

自分の開発チームでは、 Subversion を用いて pLaTeX2e ドキュメントを共同執筆というスタイルが随分多くなってきた (自分が推進しているわけだが)。

チームメンバのほとんどは Windows 上で TortoiseSVN を使っているのだが、内蔵の差分ビューアを使っていると charset を自動判別してくれないので、いわゆる JIS コードで書いている TeX のソースファイルの扱いがちょっと不便である。

そういえば以前はこの問題の声が聞かれたけれど、最近誰も言わなくなったな。 解決したのか、差分とか見なくなったのか。

数行書き換えて、一つの変更点としてコミットメントログを残せる単位でガシガシコミットしてしまう私と一緒に作業している人は、いつもコミット負けしているはずなのだが。

ということで TortoiseSVN で外部差分ビューアとして使えるツールを調べておこう。 まずは差分表示アプリケーション Rekisa。

日本語のファイルの charset を自動判別してくれるし、表示が美しい。 差分を見るには良さそうである。

マージ作業もあわせてするとすると編集機能が必要だが、Rekisa 自身では直接編集できないようだ(外部エディタを呼び出すことはできる)。

マージまですると WinMerge が本命? こちらはまだ試していないので後日。


[ 3月23日全て ]

2006年3月25日 (土)

vc-svn.el を使いたいので Emacs 22 に移行することにした このエントリーを含むはてなブックマーク

SubversionEmacsVC バックエンド vc-svn.el があるので CVS の時と同様気軽に使えていたのだが、かなり前から Debian の subversion パッケージから取り除かれて使えなくなってしまっていた。

vc-svn.elEmacs 22 に含まれるらしく、Debian だと emacs-snapshot(-common と -el)に含まれている。 やっぱり VC で使えないと不便なので、これを機に Emacs 22 に移行することにした。

後生大事に Emacs 19 / 20 / 21 それぞれ用に emacs-major-version で設定を切り分けている .emacs のコードがあったりするので、その部分は動作確認しつつ Emacs 22 用の設定を作成する。

Emacs 21 とちょっと設定を変える必要がある部分があったけれど、おおむね問題なく動いているようだ。

問題なさそうなので update-alternatives で普段使いに設定しておこう。


[ 3月25日全て ]

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)))

も忘れずに。


[ 4月1日全て ]

スポンサード リンク

■よく検索されるキーワード

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)

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

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)