= [[subversion]] / LM: [2025-01-16 20:07:10]
----
====== - 概要 ======
バージョン管理ツール.
[2023-09-10] 時点で,ソースコードのバージョンを管理する為に,新たに subversion を利用することはないと思う.git/github などを利用するのが一般的だろう.
ホームディレクトリを複数のマシンで共有する際,git では一つのプロジェクトの中の特定ディレクトリのみローカルに持ってくることが出来ない.subversion は,特定のフォルダのみの update が可能な為,僕は今でもこちらを利用している.ただし,毎回 commit するのがめんどくさかったり,commit を忘れて別マシンにデータを持っていけないことなどがある為,[[owncloud|NextCloud]]に乗り換えることも検討中.
[2025-01-16] すごく悩むけど,[[https://viewvc.org/|viewvc]]を入れたりしたら,見やすくなったし,コメントが見られるのって実は便利かも,という気もするので,どうにかスクリプトを充実させるなどで対応しても良いかな,という気がしてきてる.
====== - インストール ======
===== - 2023 年 =====
* FreeBSD
* ports の devel/subversion をデフォルトのままインストールすれば問題なし.
* Linux/Ubuntu
* apt でパッケージをインストール.
===== - 2010 年頃 =====
FreeBSD で.devel/subversion/ 以下で以下のコマンド.
% make WITH_MOD_DAV_SVN=yes WITH_APACHE2_APR=yes WITHOUT_BDB=yes WITH_REPOSITORY_CREATION=yes
BDB を使う場合は,apache2 の方でも BDB オプションをつけてコンパイルする必要がある.
====== - 使い方 ======
===== - すでにレポジトリに入れてしまったファイルを,ローカルには残しつつ,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
===== - svn add してしまったファイルを,やっぱり外す =====
[2025-01-16]
間違って svn add してしまったファイルを,add 状態から外す方法.
% svn revert hoge.log
===== - あるフォルダの直下だけ checkout (co) =====
[2023-11-12]
% svn co --non-recursive https://svnurl.com/svn .
===== - 特定ファイルを無視したい場合 =====
/.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 で生成されてしまうファイルを無視する指定を追加している.
====== - トラブルシューティング ======
===== - 「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 というのを入れる。
====== - 参考資料 ======
* [[http://subversion.tigris.org/|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};
* [[http://www.gfd-dennou.org/library/cc-env/subversion/svn-usage1.htm|コマンドの簡単な使い方]] -- &new{2008-01-04 (金) 23:52:54};