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

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日全て ]

Related web page

正しいバージョン管理でさらにイケてる.NET開発 - @IT
では、オープンソースでのバージョン管理の一例として、<strong>Subversion</strong>/TortoiseSVN/AnkhSVNの紹介と簡単な利用方法について説明した*1。 *1 前回の記事が執筆〜公開されている間に、<strong>Subversion</strong>の最新バージョン1.5.0が公開されている。これから<strong>Subversion</strong>を試す方は、下記の最新バージョン(2008年7月23日時点)で試してみるとよいだろう。 &nbsp;&nbsp;・<strong>Subversion</strong> 1.5.0 &nbsp;&nbsp;・TortoiseSVN 1.5.0 &nbsp;
http://www.atmarkit.co.jp/fdotnet/opensrcverman/opensrcverman02/opensrcverman02_01.html
Subversionを利用したイケてる.NET開発 ― @IT
http://www.atmarkit.co.jp/fdotnet/opensrcverman/opensrcverman01/opensrcverman01_01.html
svnの衝突回避 - 自称中級プログラマの雑メモ
自分の変更を破棄 svn revert &#60;filename&#62; 相手の変更を破棄 cp &#60;filename&#62;.mine &#60;filename&#62; svn resolved &#60;filename&#62; 参考 http://www.naney.org/diki/dk/<strong>Subversion</strong>%20%E3%81%A7%E8%A1%9D%E7%AA%81%E3%81%8C%E8%B5%B7%E3%81%8D%E3%81%9F%E5%A0%B4%E5%90%88.html
http://d.hatena.ne.jp/hyokota/20080508/1210210372
subversionのバージョンを上げたら色々不都合が起きたので直す - より良い環境を求めて
sargeの<strong>subversion</strong>をsarge-backportsのものに置き換えたら((http://d.hatena.ne.jp/n314/20071126/1196071005))emacsとtracでエラーが。 etchではvc-svn.elがなくなっている。emacs22にあるらしいが、emacsのバージョンを変えるのは躊躇われるのでvc-svn.elを取ってくる。 参考:http://www.naney.org/diki/dk/Debian.html 続いてtracのエラー。 ...
http://d.hatena.ne.jp/n314/20071208/1197101535
satolog: リーナス・トーバルズ「Subversion ほど無意味なプロジェクトはない」
Tech Talk: Linus Torvalds on gitMy hatred of CVS has meant that I see <strong>Subversion</strong> as being the most pointless project ever started. The slogan for <strong>Subversion</strong> for a while was &quot;CVS done right&quot; or something like that. And if you start with that kind of slogan, there is nowhere you can go. There is no way to do CVS right.あと、CVS が好きな人は精神病院に行ったほうがいいそうで。tar ボールとパッチのほうがはるかに優れたソースコード管理方法なんだと。ソース
http://po3a.blogspot.com/2007/12/subversion.html
SVNとSSHの連携 - 教えて!goo
SVNとSSHの連携についておしえていただきたく、質問させていただきます。 現在、AapacheのWebDavをつかってSVNを使っている状況です。 OSはwindows2000serverをつかっており、クライアントはTortoiseSVNを使用しております。また、開発では、eclipseのSubclipseをつかっています。 この状況でSVNとの通信にSSHを使いたいと思いますが、どのようにしたらよいでしょうか? わかる方おられましたら
http://oshiete1.goo.ne.jp/qa3480382.html
Changelogのための英文テンプレート集 - ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き -
Changelog を英語で書く際に参考になるようなテンプレートをまとめてみました. 例文 バグ修正した場合 Fix Fixed a performance regression. (パフォーマンスが低下するバグを修正しました) Fixed stability problems with GeForce 8 GPU. (GeForce 8 GPUで動作が不安定になる問題を修正しました) Fixed an ”AAA” bug that was causing the B to C. (Bが ...
http://d.hatena.ne.jp/pyopyopyo/20070920/p1
XREAでSubversion(SVN)を使ってソースコード管理を行う方法についてのメモ。 - Sticker@Something
接続方式についてはsvn+sshとし、SVNクライアントについてはTortoiseSVNを利用。 <strong>Subversion</strong>利用までの大まかな流れは以下の通り。 TortoiseSVNのインストール XREAサーバへのSSH接続許可ホスト登録 SVNがインストールされているかどうか確認 リポジトリの作成 SVNサーバへの接続(パスワード認証) サーバへの接続(鍵認証) 1.TortoiseSVNのインストール TortoiseSVNのインストールについては以下の
http://d.hatena.ne.jp/hikm/20071026/1193410361
%!zt! diary(2007-10-11)
[emacs] vc-svn.el emacs21でvc-svn.elが使えなくて不便だと思っていたら、vc-svn.el の方は、<strong>Subversion</strong> Debian パッケージの README.Debian に svn export -r9195 http://svn.collab.net/repos/svn/trunk/contrib/client-side/vc-svn.elと書いてあるという情報を見つけたが、エラーになってexportに失敗するのでなぜかと思って調べてみたら27101というのはexportしようとした時点でのHEADリビジョンで、URL字体も9195時点のものをみて
http://znz.s1.xrea.com/t/?date=20071011#p01
KeN's GNU/Linux Diary | 天から到来する恐怖のSubversion 1.4.0
experimentalでのNEWSだったので気付いてなかったんだけど、unstableの<strong>subversion</strong> 1.4になって、.svnフォーマットが変更され、しかもsvnコマンドで古いものに触ったとたんに勝手に変換するように仕様変更が。 <strong>Subversion</strong> 1.4.0 will SILENTLY UPGRADE the format of any working copy it touches. Thereafter, you won&#39;t be able to use earlier <strong>Subversion</strong> releases with the same working copy. The good news is that this new format is much more efficient than th
http://kmuto.jp/d/index.cgi/debian/subversion-14.htm

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

torrent(142) expressions(72) 書き方(46) 竹内まりや(46) perl(42) 提案書(38) linux(38) windows(36) アジェンダ(34) x31(32) cvs(28) wiki(27) usb(26) ドラマ(22) 使い方(20) svn(20) アジェンダとは(20) centos(20) ganttproject(20) 設定(19) java(19) インストール(18) 秋葉原(18) debian(18) thinkpad(18) サンプル(18) 動画(17) ノート(15) 手帳(13) a6(13) truecrypt(13) tc-1(13) tortoisesvn(13) 無印(12) ssh(12) rcs(12) subversion(12) 冷蔵庫(12) nikon(12) allinanchor:*.torrent(12) firefox(11) ガントチャート(11) 画像(11) 日本語(11) 生年月日(11) apache(11) メール(11) ダイソー(10) 無料(10) 壁紙(10) リフィル(10) ubuntu(10) 作り方(10) dropbox(10) c#(9) xp(9) oracle(9) xampp(9) terastation(8) 方眼(8) マイク(8) ヨドバシカメラ(8) テンプレート(8) ほぼ日(8) cwrsync(8) google(8) ming(8) 評判(8) 影舞(8) madwifi(8) アカウント(8) window(8) usbメモリ(8) gantt(8) project(7) 三条まゆみ(7) hdd(7) 変換(7) カバー(7) 交換(7)

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

Process Time: 0.165989s / load averages: 1.44, 1.37, 1.22
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)