Subversion・Trac・etc.

2011.10.31

TortoiseSVNで特定のフォルダーを取得しない

Subversionのツリーは、基本的にどんどんと肥大化していくわけでして。

そのため、ツリーのルートからチェックアウトしていると、結構大変なことになってしまいます(ワーキングコピーのファイル容量など)。必要となるツリーだけを取得するようにすれば解決するような気もしますが、「(自分にとっては)不要なファイル(フォルダ)」が深い階層にあった場合はちょっと手間。

そんなときは、「チェックアウト対象外」として該当のファイル/フォルダを指定すれば解決するようです。

参考:作業コピーのチェックアウト

すでにチェックアウト済みのワーキングコピーで、特定のファイル/フォルダを除外したい場合・・・

1.該当のファイル/フォルダを選択
2.TortoiseSVNでUpdate to revision(特定のリビジョンに更新)を選択。
3.Revisionとしては HEAD revision を選択し、Update Depthとして Excludeを指定。

という手順になります。ワーキングコピーのみ削除され、リポジトリそのものには影響を及ぼしません。

ただし、サーバー側が1.5以上であることが望ましいようです。

1.5以前のサーバーでは、作業コピーの深さの指定機能がないため、常にリクエストを効率的に処理できません。コマンドは正しく動作しますが、旧式のサーバーは、クライアントに必要でないデータまでフィルタせずに送ってしまうため、大量のネットワーク通信が発生する可能性があります。可能であれば、サーバーを1.5以上にアップグレードしてください。

おそらく、サーバー側が1.5以前の場合、いったん全部のデータがクライアントに送られ、クライアント側が自動的に無視するようになっているんでしょう(1.5以上だと、クライアントから「除外」の指示を受け取った場合はそもそも送信しない)。

| | Comments (0) | TrackBack (0)

2011.10.19

TortoiseSVN 1.7 And Windows7 Library

TortoiseSVN 1.7では、Windows7の「ライブラリ」にSubversionリポジトリを組み込む機能が追加されているようです。

早速、試してみました。こんな感じで「ライブラリ」のところにSubversionが追加されるようです。

メニュー(?)のところに、Commit/Update といったSubversion用のコマンドが表示され、右クリックのコンテキストメニューを開かなくても基本的な作業を行うことができるようになります。

う~ん・・・使いどころが難しい感じ? コンテキストメニューを使用しない分、クリック数を減らすことができるかもしれませんが。

| | Comments (0) | TrackBack (0)

2011.07.13

Trac>DiscussionPluginへのメールアドレスの登録

DiscussionPluginでは、Subscriptionということで、

・該当フォーラムにTopicが追加された時
・該当Topicに追記された時
・該当Topicが編集された時

に、メールを送信する機能があります。

が、「Subscription登録」を行うことができるのは、Moderatorとして登録された人だけなんですね(あるいはDISCUSSION_ADMINを有している人)。

せめて、自分自身の登録/登録解除を行えると、もっと融通が利きそうなのですが・・・。残念ながら、DiscussionPluginの設定で、そのような機能の有効/無効を切り替えることもできないっぽいです。

#Topic作成時に限り、ModeratorでなくてもSubscription登録を行うことができるようですね。

| | Comments (0) | TrackBack (0)

2011.07.02

Could not execute PROPPATCH.

TortoiseSVNからコミットすると問題ないのに、Subversiveからコミットしようとすると

Some of selected resources were not committed.
Failed to execute WebDAV PROPPATCH
svn: Commit failed (details follow):
svn: At least one property change failed; repository is unchanged
RA layer request failed
svn: Error setting property 'log':
Could not execute PROPPATCH.

というエラーに遭遇。

どうも、Subversiveのバージョンが古すぎたことが原因の模様。サーバー側が1.5までなら問題なかったので、1.6に変更したことが影響しているのではないかと(使用していたSubversiveは、2008年頃の状態のまま(Eclipse3.4))。

Subversiveが使用するライブラリのバージョンを上げることで、問題なくコミットできるようになりました。

ただ、Eclipseが古めのバージョンだったこともあり、更新サイトの場所が変わっていてちょっとはまりましたが。
Ganymede Update Site から Subversive が消えている を参考に、

http://download.eclipse.org/technology/subversive/0.7/update-site/
を追加することで、無事アップデート完了。

#既に3.7がリリースされているのに、未だに3.4を使用しているのがアレなのかもしれません(^^;

| | Comments (0) | TrackBack (0)

2011.06.28

TortoiseSVNとSSLクライアント証明書(パスワードが保存されない)

TortoiseSVNとSSLクライアント証明書 では、そもそもサーバーにアクセスできない(エラーが発生する)という現象だったのですが、今回は、「クライアント証明書のパスワードが保存されない」という現象に遭遇。

やはり同様にTortoiseSVNでSSL証明書のパスフレーズが保存されないの内容で解決。というか、このページの内容は、まさに今回の現象そのもの(前回の現象は、レジストリパスなどの参考になった、って感じでしょうかね?)

レジストリエディタを起動し、 HKEY_CURRENT_USER\Software\tigris.org\Subversion\Servers\(servername) に以下の値を追加(文字列値(REG_SZ))。

ssl-client-cert-password = password

これで、期待した動きになりました(^^

パスワードが平文で保存されているので、取り扱いには注意が必要でありますが(^^;

| | Comments (0) | TrackBack (0)

2011.06.23

Trac>管理画面でUnicodeDecodeError

突如、Tracの管理画面で

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 1: ordinal not in range(128)

のエラーが。しかも、全ての設定項目で発生するわけではないところが謎。数日前までは動いていたので、追加でインストールしたプラグインが影響しているのかもしれませんが、かといって、プラグインを無効化するわけにもいかず。

調べてみると・・・[Trac]Trac0.11.2.1.ja1でUnicodeDecodeErrorへの対応方法の内容で解決。

Pythonのインストールパスに合わせて、

# touch /usr/local/share/python2.6.6/lib/python2.6/site-packages/sitecustomize.py

でファイルを作成。

中身は、以下の通り。

import sys
sys.setdefaultencoding("utf-8")

Apacheを再起動すると、無事に表示されるようになりました。

#Trac0.11.7-ja1にて。

| | Comments (0) | TrackBack (0)

2011.06.22

Trac>ProtectedMacro or AccessMacro

ProtectedMacroと、AccessMacro を導入してみました。
どちらも、同種のマクロで、Wikiページの特定の部分に関して「権限がない場合は非表示にする」ことができます。

今回やりたかったのは、iframeで表示したカレンダーに関して、直接編集可能なユーザーと、閲覧のみのユーザーを定義する、ということ(wdCalendar側のphpスクリプトを書き換えることで編集できないページも作る)。

結果としては、AccessMacro になりそうな感じ。

「特定の権限を持っている場合はAを、持っていない場合はBを表示する」という制御はProtectedMacroでは無理っぽい感じでしたので・・・。

例えば、WIKI_ADMIN権限を有しているかどうかで判断するとした場合、

{{{
#!access
#allow(WIKI_ADMIN)
{{{
#!html
<iframe width="100%" height="500" src="/calendar/index_editable.php">カレンダー</iframe>
}}}
}}}
{{{
#!access
#deny(WIKI_ADMIN)
{{{
#!html
<iframe width="100%" height="500" src="/calendar/index_viewonly.php">カレンダー</iframe>
}}}
}}}

って感じで設定すると、期待した動きをしてくれそうな雰囲気。

| | Comments (0) | TrackBack (0)

2011.06.21

Trac>DiscussionPlugin

その昔、インストールしたことがある(その1その2その3その4)のですが、その後は全然使っていませんでした。

で、久しぶりにインストールしてみたのですが(r9787)・・・なかなかよさげな感じですね。頑張ってOSQAをインストールしたのですが、DiscussionPluginで充分まかなうことができそうな感じ?

いろんなアプリケーションを使うと、ユーザー管理が煩雑になったり、いろんなページにアクセスしなければいけなかったりするのでちょっと面倒だなぁ・・・と思っていたので、まずはDiscussionPluginで頑張ってみようかと。

修正依頼 => Ticket
各種連絡事項 => FullBlogPlugin
仕様検討やQ&A => DiscussionPlugin

ってな感じの組み合わせでしょうか。せっかくなので、http://servername/ のような感じでアクセスしてきた場合、Tracのトップページにリダイレクトするようにしてみました(笑

RewriteEngine on
RewriteRule ^/$ /trac/projectname/wiki/ [R=301,L]
RewriteRule ^/index\.html$ /trac/projectname/wiki/ [R=301,L]

#OSQAを使わないのであれば、Python2.5のままでも良かったのですが、これを機にいろんなものをアップデートする気になったので、良しとしますか(笑

| | Comments (0) | TrackBack (0)

2011.06.20

Subversion1.5.9から1.6.17にアップデート

Tracを0.11.1から0.11.7に変更したついでに、Subversionを1.5.9から1.6.17に変更してみました。

念のため、1.5.9の状態でsvnadmin dumpでリポジトリのバックアップを作成。

インストール。subversion-depsもあわせて取得すると、依存ファイルが含まれているので、ラクです(例えば、CentOS5系列の場合、SQLiteは3.3.xなのですが、Subversion1.6.17は3.4以上(できれば3.6.11など)が必要となるので)。ちなみに、インストールしたのは64bit版。


# wget http://subversion.tigris.org/downloads/subversion-1.6.17.tar.gz
# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.17.tar.gz
# tar zxvf subversion-1.6.17.tar.gz
# tar zxvf subversion-deps-1.6.17.tar.gz
# cd subversion-1.6.17
# ./configure --prefix=/usr/local/share/subversion1.6.17 --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apache2/bin/apr-1-config --with-apr-util=/usr/local/apache2/bin/apu-1-config --with-ssl --enable-shared CFLAGS=-fPIC -enable-shared
# make
# make install
# make swig-py
# make install-swig-py
# ln -s /usr/local/share/subversion1.6.17/lib/svn-python/svn /usr/local/share/python2.6.6/lib/python2.6/site-packages/svn
# ln -s /usr/local/share/subversion1.6.17/lib/svn-python/libsvn /usr/local/share/python2.6.6/lib/python2.6/site-packages/libsvn

今までは、デフォルトのパスにインストールしていたのですが、今回は何となくprefixを指定したので、シンボリックリンクを作成。

# cd /usr/local/bin
# mkdir svn1.5.9
# mv svn svn1.5.9/
# mv svnadmin svn1.5.9/
# mv svndumpfilter svn1.5.9/
# mv svnlook svn1.5.9/
# mv svnserve svn1.5.9/
# mv svnsync svn1.5.9/
# mv svnversion svn1.5.9/
# ln -s /usr/local/share/subversion1.6.17/bin/svn /usr/local/bin/svn
# ln -s /usr/local/share/subversion1.6.17/bin/svnadmin /usr/local/bin/svnadmin
# ln -s /usr/local/share/subversion1.6.17/bin/svndumpfilter /usr/local/bin/svndumpfilter
# ln -s /usr/local/share/subversion1.6.17/bin/svndumplook /usr/local/bin/svnlook
# ln -s /usr/local/share/subversion1.6.17/bin/svnserve /usr/local/bin/svnserve
# ln -s /usr/local/share/subversion1.6.17/bin/svnlook /usr/local/bin/svnlook
# ln -s /usr/local/share/subversion1.6.17/bin/svnsync /usr/local/bin/svnsync
# ln -s /usr/local/share/subversion1.6.17/bin/svnversion /usr/local/bin/svnversion

ライブラリ側も同様に。

# cd /usr/local/lib
# mkdir svn1.5.9
# mv libsvn*.la svn1.5.9/
# mv lib*.so.0.0.0 svn1.5.9/
# ln -s /usr/local/share/subversion1.6.17/lib/libsvn*.la /usr/local/lib/
# ln -s /usr/local/share/subversion1.6.17/lib/libsvn*.so.0.0.0 /usr/local/lib

バックアップファイルをロードして、リポジトリを再構築(chownも忘れずに)。

とりあえず、動いてくれているようです。

#ライブラリのコピー(リンク)を忘れると、Tracで

Warning: リポジトリと同期できません (Unsupported version control system "svn": "/usr/local/lib/libsvn_client-1.so.0: undefined symbol: svn_mergeinfo__catalog_dup" )。詳細は Trac のログを参照してください。

というエラーを食らいます。

| | Comments (0) | TrackBack (0)

2011.06.19

Trac0.11.1から0.11.7へのアップデート

OSQAを使用するために、Python2.6を導入し、そこにTracの環境を構築したのですが・・・添付ファイルをアップロードできないという問題が発覚。調べてみると、同様の報告多数。

Tracで添付ファイルがアップロードできない。
Trac Users - Can't add attachments.

Trac0.11.4以降を使えば問題ないとのこと。選択肢としては2つ。
1)Python2.5に戻す
2)Trac0.11.4以降を導入する

OSQAとの兼ね合いもあったりすることから、現時点での0.11系列の最新版である0.11.7(ja1)を導入することに。0.12はさすがに見送りです・・・(プラグインの修正なども必要となりそうですし)。

0.11.1本体にも結構手を加えていたので、とりあえずは、それらの修正内容を0.11.7に適用してインストールすることに。一部ソースコードの整理などの影響で、そのまま適用できないところもありましたが、特に問題なく作業完了。Apacheを再起動すると、とりあえず、問題なさげ。

ただ、元々TopicPathMacroを組み込んで使用(htmlテンプレートに直接埋め込み)していたのですが、同等の機能が標準で組み込まれたため、「パンくず」が2行表示されることに(笑)。TopicPathMacro の使用をやめることで解決。

さて、これでしばらく様子を見てみることにしますか・・・。

| | Comments (0) | TrackBack (0)

より以前の記事一覧