svn diff で改行コードを無視する
2011-08-18-1: [Subversion]
svn diff で改行コードを無視する場合は、-x --ignore-eol-style を指定する。
$ svn diff -x --ignore-eol-style
2011-08-18-1: [Subversion]
svn diff で改行コードを無視する場合は、-x --ignore-eol-style を指定する。
$ svn diff -x --ignore-eol-style
2010-01-06-1: [Subversion][zsh]
$ cd /usr/share/zsh/site-functions
$ sudo wget -c http://gvn.googlecode.com/svn/trunk/contrib/zsh/_subversion
- ref.: Re: Subversion 1.5 and ZSH Completion
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId= ...
2008-12-09-1: [Subversion]
なんらかの理由で、特定のファイルを以前のリビジョンに戻したいとき。
$ svn merge -r 9:6 foo.c
U foo.c
ちなみに、以下のようにパスを指定して実行するとエラーが出ます。
$ svn merge -r 9:6 path/to/foo.c
svn: Cannot replace a directory from within (ディレクトリを内側から置換することはできません)
この場合は、svn merge する前に該当のディレクトリに移動する必要があります。
$ cd path/to
$ svn merge -r 9:6 foo.c
2008-04-13-1: [Subversion]
- ".svn"を隠す。 - ぐらめぬ・ぜぷつぇんのはてダウンロード
http://d.hatena.ne.jp/msakamoto-sf/20080403/1207190473
.htaccess で .svn を隠す方法ということですが、以前調べたことがあって mod_rewrite が使えるならば、以下のようにして隠すことが出来ると思います。
RewriteEngine On
RewriteRule ^(.*/)*\.svn/ / [F,L]
また、.htaccess を利用しなくとも、.svn のパーミッションを 0700 あたりにしても大丈夫な場合もあります。
$ find . -name .svn -type d | xargs -i chmod 0700 {}
httpd.conf がいじれる環境であれば上記エントリに示してあるとおり
<Directory ~ "\.svn">
Order allow,deny
Deny from all
</Directory>
これが一番簡単な気がします。
2008-02-27-1: [Subversion]
UTF-8 なホストに、EUC-JP のターミナルで接続している場合 (export LANG=ja_JP.eucJP してある) に、svn で以下のようにエラーが発生しました。
$ svn st
svn: Can't convert string from native encoding to 'UTF-8':
(svn: ネイティブのエンコーディングから 'UTF-8' に文字列を変換できません:)
UTF-8 なファイル名をもつファイルで引っかかっているようです。
この場合は以下のようにして、一時的に ja_JP.UTF-8 にしてあげるとうまくいきます。
$ env LANG=ja_JP.UTF-8 svn st
もっとも、普通に UTF-8 なターミナルで export LANG=ja_JP.UTF-8 して動かすのが一番だと思いますが、まあこんな状況もあるということで。
2007-05-30-2: [Subversion]
Subversion + WebDAV で単純に一つのリポジトリを扱う場合は,以下のような設定をします.
<Location "/repos/foo">
DAV svn
SVNPath /path/to/repos/foo
</Location>
これに,/path/to/repos/bar のようなリポジトリを追加して使いたい場面が出てきます.
その場合は,以下のように SVNParentPath を使って共通の親ディレクトリを指定してあげると便利です.
<Location "/repos">
DAV svn
SVNParentPath /path/to/repos
</Location>
こうすることで,リポジトリを追加するたびに Apache の設定をする必要がなくなります.
- ref.: httpd, Apache HTTP サーバ
http://subversion.bluegate.org/doc/ch06s04.html
2007-04-08-1: [Subversion]
サーバ側の都合で Subversion のリポジトリの場所を変更した場合,その作業コピーでは元の URL にアクセスできなくなります.
例えば,リポジトリを file:///repos から file:///new-repos に移動した場合,以下のようなエラーになります.
svn: No repository found in 'file:///repos'
これを解決するには,新しい作業コピーをチェックアウトしてもいいのですが,svn switch を使って,URL を書き換えてしまう方法もあります.
svn switch --relocate file:///repos file:///new-repos
これは file:///repos から file:///new-repos に URL を書き換えるということになります.
svn:// や svn+ssh:// の場合もこれでいけます.
- svn switch
http://subversion.bluegate.org/doc/re28.html
- 追記
ブランチのように同じリポジトリ内の異なるパスに再配置しようとすると,以下のようにエラーが出ます.
Relocate can only change the repository part of an URL
relocate は、URL のリポジトリ部分しか変更できません
この場合は,--relocate をつけずに単なるパスの切り替えだけでできます.
svn switch file:///repos/branches/foo .
- 追記 (2009-10-30)
TortoiseSVN の場合は、単に「再配置」を行えば OK です。
2007-02-06-1: [Subversion][Solaris][Trac]
ブラウザ経由で Trac の設定を行う TracWebAdmin プラグインを日本語するパッチを作りました.
- パッチ: webadmin-r4429-ja.patch
http://pocari.org/tools/trac/webadmin/webadmin-r4429-ja.patch
- 日本語化した egg ファイル
egg ファイルは python のバージョンにあわせて作るものらしいです.
python 2.3 で作ったものをおいておきます (でも,これで動くかどうか分かりません).
- python 2.3 で作った egg ファイル
http://pocari.org/tools/trac/webadmin/TracWebAdmin-0.1.2dev-py2.3.egg
- 動作確認環境
o Trac 10.2
o Python 2.3
o Solaris 10
パッチの適用方法は以下のようになります.
http://trac.edgewall.org/browser/sandbox を見てみたところ最新リビジョンは 4429 のようですので,このリビジョンを取得します.
$ svn export -r 4429 http://svn.edgewall.com/repos/trac/sandbox/webadmin/
A webadmin
A webadmin/webadmin
A webadmin/webadmin/web_ui.py
A webadmin/webadmin/htdocs
A webadmin/webadmin/htdocs/css
A webadmin/webadmin/htdocs/css/admin.css
A webadmin/webadmin/htdocs/img
A webadmin/webadmin/htdocs/img/collapsed.png
A webadmin/webadmin/htdocs/img/expanded.png
A webadmin/webadmin/htdocs/js
A webadmin/webadmin/htdocs/js/admin.js
A webadmin/webadmin/plugin.py
A webadmin/webadmin/__init__.py
A webadmin/webadmin/perm.py
A webadmin/webadmin/ticket.py
A webadmin/webadmin/basics.py
A webadmin/webadmin/logging.py
A webadmin/webadmin/templates
A webadmin/webadmin/templates/admin_perm.cs
A webadmin/webadmin/templates/admin_basics.cs
A webadmin/webadmin/templates/admin_enum.cs
A webadmin/webadmin/templates/admin_version.cs
A webadmin/webadmin/templates/admin_plugin.cs
A webadmin/webadmin/templates/admin_milestone.cs
A webadmin/webadmin/templates/admin.cs
A webadmin/webadmin/templates/admin_log.cs
A webadmin/webadmin/templates/admin_component.cs
A webadmin/setup.py
A webadmin/COPYING
A webadmin/setup.cfg
Exported revision 4429.
$ cd webadmin
$ patch -p0 < ../webadmin-r4429-ja.patch
これで日本語化されます.
$ python ./setup.py bdist_egg
これで,dist の中に TracWebAdmin-0.1.2dev-py2.3.egg のような egg ファイルが出来上がります.
/usr/lib/share/trac/plugins とか /path/to/project/plugins とかにコピーして,trac.ini に以下のように記述します.
[components]
webadmin.* = enabled
- スクリーンショット
- 注意事項
日本語化といっても,説明の文章は翻訳していませんので,ご注意ください.
あと,私は python については全くの素人ですので,egg ってなに?とか聞かれてもよく分かりません.
2007-01-18-1: [Subversion][Trac]
勢い余ってコミットしたはいいけど,恥ずかしい間違いがあってコミットをなかったことにしたい場合の対処方法です.
対象のリポジトリ | /svn/foo |
現在のリビジョン | 100 |
直前のリビジョン | 99 |
対象の Trac 環境 | /trac/foo |
$ mv /svn/foo /svn/foo.bak
$ svnadmin create /svn/foo
$ svnadmin dump -r 0:99 /svn/foo.bak | svnadmin load /svn/foo
これで,リビジョン 99 までのリポジトリが完成します.
$ trac-admin /trac/foo resync
以上,はてブしておいた記事がそのまま役に立ちました.ふー.
- YappoLogs: 悪のりで学ぶsvnadmin/trac入門実用編
http://blog.yappo.jp/yappo/archives/000477.html
- ref.: svnadmin dump
http://subversion.bluegate.org/doc/re33.html
- ref.: svnadmin load
http://subversion.bluegate.org/doc/re38.html
2007-01-16-1: [Security][Subversion]
TortoiseSVN で svn+ssh を利用した場合に,認証をパスフレーズではなく公開鍵で行う方法を紹介します.
SSH クライアントには TortoiseSVN 付属の TortoisePlink を使います.
TortoisePlink は PuTTY 由来らしいので PuTTY 形式の鍵を使う必要があるみたいです.
PuTTY 形式の鍵を生成したり,OpenSSH の鍵を PuTTY 形式に変換したりするために,PuTTYgen が必要になります.
PuTTYgen は以下のサイトで入手できます.この記事の執筆時点の最新版は 0.58 です.
- PuTTY Download Page
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
1. 鍵の生成
PuTTY を起動し右中央部にある [Generate] を選択します.
マウスをひたすら動かしていると,そのうち鍵が生成されます.
2. 公開鍵をサーバに登録
Public key for pasting into OpenSSH authorized_keys file の部分をコピーして
$HOME/.ssh/authorized_keys に貼り付けます.
$HOME/.ssh/authorized_keys がない場合は作成しましょう.
3. 秘密鍵の保存
右中央部にある [Save private key] を選択します.
PuTTY の秘密鍵の拡張子は ppk になります.ここでは
C:\keys\svn.ppk
として保存します.
秘密鍵のパスフレーズは,同じ画面の「Key passphrase」で設定します.
4. TortoiseSVN で公開鍵を使うように設定
「TortoiseSVN 設定」の「ネットワーク」を開きます.
「SSH クライアント」に TortoisePlink を選択して,先ほど作成した秘密鍵を以下のように指定します.
TortoisePlink -C -l username -i C:\keys\svn.ppk
username はユーザ名です.-C オプションは圧縮を有効にするオプションです.
以上が,鍵を新たに作成した場合の TortoiseSVN で公開鍵を使う方法になります.
1. 鍵の変換
PuTTY を起動し右中央部にある [Load] を選択します.
秘密鍵にパスフレーズが設定してある場合は,パスフレーズの入力画面が表示されるので,パスフレーズを入力します.
すぐに PuTTY 形式の鍵に変換されます.
2. 秘密鍵の保存および TortoiseSVN で公開鍵を使うように設定
上記「1. 鍵を新たに作成する方法」の「3. 秘密鍵の保存」からの手順と全く同じになります.
以上が,OpenSSH の鍵を PuTTY 形式に変換した場合の TortoiseSVN で公開鍵を使う方法になります.
試しに,コミットログを表示するなどしてみてください.
パスフレーズによる認証のときは,以下のように「Password」という入力画面が表示されました.
しかし,公開鍵認証の場合は,以下のように「Passphrase for key "..."」という入力画面が表示されます.
- tortoisesvn.tigris.org
http://tortoisesvn.tigris.org/