目次
= subversion / LM: [2025-01-16 20:07:10]
1. 概要
バージョン管理ツール.
[2023-09-10] 時点で,ソースコードのバージョンを管理する為に,新たに subversion を利用することはないと思う.git/github などを利用するのが一般的だろう.
ホームディレクトリを複数のマシンで共有する際,git では一つのプロジェクトの中の特定ディレクトリのみローカルに持ってくることが出来ない.subversion は,特定のフォルダのみの update が可能な為,僕は今でもこちらを利用している.ただし,毎回 commit するのがめんどくさかったり,commit を忘れて別マシンにデータを持っていけないことなどがある為,NextCloudに乗り換えることも検討中.
[2025-01-16] すごく悩むけど,viewvcを入れたりしたら,見やすくなったし,コメントが見られるのって実は便利かも,という気もするので,どうにかスクリプトを充実させるなどで対応しても良いかな,という気がしてきてる.
2. インストール
2.1 2023 年
- FreeBSD
- ports の devel/subversion をデフォルトのままインストールすれば問題なし.
- Linux/Ubuntu
- apt でパッケージをインストール.
2.2 2010 年頃
FreeBSD で.devel/subversion/ 以下で以下のコマンド.
% make WITH_MOD_DAV_SVN=yes WITH_APACHE2_APR=yes WITHOUT_BDB=yes WITH_REPOSITORY_CREATION=yes
BDB を使う場合は,apache2 の方でも BDB オプションをつけてコンパイルする必要がある.
3. 使い方
3.1 すでにレポジトリに入れてしまったファイルを,ローカルには残しつつ,SVN 管理から外す
[2025-01-16]
http://blog.livedoor.jp/sasata299/archives/51275014.html このサイトに書かれてる通り,「このファイルは svn 管理にする必要なかった!」というものを,後から外す方法ですね.
–keep-local
をつければ良いだけみたいでした.
% svn delete hoge.log --keep-local % svn commit -m "いらなかったよ" hoge.log
3.2 svn add してしまったファイルを,やっぱり外す
[2025-01-16]
間違って svn add してしまったファイルを,add 状態から外す方法.
% svn revert hoge.log
3.3 あるフォルダの直下だけ checkout (co)
[2023-11-12]
% svn co --non-recursive https://svnurl.com/svn .
3.4 特定ファイルを無視したい場合
<HOME>/.subversion/config の global-ignores のコメントアウトを外し,無視したいファイルを指定する.
global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__ *:Zone.Identifier
上記では,Zone.Identifier という Windows 11 で生成されてしまうファイルを無視する指定を追加している.
4. トラブルシューティング
4.1 「URL スキームを認識できません」 [2009-10-01]
svn –version で利用可能な通信プロトコルを確認。
0:51 [0] skk@aries% svn --version svn, バージョン 1.6.5 (r38866) コンパイル日時: Oct 10 2009, 00:50:02 Copyright (C) 2000-2009 CollabNet. Subversion is open source software, see http://subversion.tigris.org/ This product includes software developed by CollabNet (http://www.Collab.Net/). 以下のリポジトリアクセス (RA) モジュールが利用できます: * ra_svn : svn ネットワークプロトコルを使ってリポジトリにアクセスするモジュール。 - 'svn' スキームを操作します * ra_local : ローカルディスク上のリポジトリにアクセスするモジュール。 - 'file' スキームを操作します * ra_serf : serf を利用して WebDAV (DeltaV) プロトコルでリポジトリにアクセスするモジュール。 - 'http' スキームを操作します - 'https' スキームを操作します
多分、http/https 用モジュールが入っていないのが原因のはずなので、neon or serf というのを入れる。
5. 参考資料
- subversion ; 本家 – &new{2007-04-04 (水) 18:07:23};
- http://www.himajin2001.com/wiki.cgi?page=%B5%BB%BD%D1%C5%AA%BB%A8%C3%CC-FreeBSD%A4%CEPort%A4%C7mod_dav_svn.so%A4%F2%BA%EE%A4%EB%A4%CB%A4%CF – &new{2007-08-14 (火) 22:26:02};
- apache と連携した subversion インストール方法について – &new{2007-08-14 (火) 22:26:21};
- コマンドの簡単な使い方 – &new{2008-01-04 (金) 23:52:54};