= 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.txt · 最終更新: 2025/01/16 20:07 by skk
文書の先頭へ
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0