CVSに代わる新しいバージョン管理システムがsubversionです. Windowsと coLinuxでのファイルの同期を考えていたのですが, それならいっそ... と思 いたち, subversionの導入と相成りました.
emacsとの連携にはpsvnを使おうと思います.
まずapt-lineを追加しましょう:
deb http://backports.mithril-linux.org/debian woody subversion deb-src http://backports.mithril-linux.org/debian woody subversion
次いでapt-getしておきます.
sudo apt-get install subversion subversino-tools
ここらへんを参照のこと. svn://... でリポジトリにアクセスできるよう, svnserveを起動しましょう. まず/etc/servicesに
svn 3690/tcp # Subversion svn 3690/udp # Subversionを追加します. 次いで/etc/servicesに
svn stream tcp nowait svnowner /usr/local/bin/svnserve svnserve -iを追加. これでsvn://localhost/...でリポジトリにアクセスできるようにな ります. 私は最初はuser: svnownerを設定せずにrootさんにしておきましたが, 事故を避けるためにはsvnownerなんてユーザを設定しておいたほうがいいでしょ うね.
setup.exeからsubversionをそのまま入れるだけ.
ここを参照しております.
cd ~/*your-project* svn import svn://your/host/repository your-project project-name -m "messages on log"
svn co svn://...
svn diff filename
svn revert filename
svn add file_name # 単独のファイルを追加 svn add dir # ディレクトリを再帰的に追加 svn add -N dir # ディレクトリを非再帰的に追加
svn ci -m "messages"
svn up
svn log
svn copy svn://your/host/repository/project-y svn://your/host/repository/project-y-branch -m "messages"
svn copy svn://your/host/repository/project-y svn://your/host/repository/project-y_release1.0 -m "messages"
svn merge svn://your/host/repository/project-y svn://your/host/repository/project-y-branch
svn co -r 4 svn://.../project-y
XSteveさんのcheet sheetを訳してみた.
リポジトリを作る: svnadmin create svn_repos ダンプ: svnadmin dump /home/rafael/svn | gzip -9 > dump.gz ダンプを読み込む: gunzip -c dump.gz | svnadmin load /home/rafael/svn --- これで動くはずですが, /etcにチェックアウトすることもできます: $ svnadmin create /var/svnrepos/admin $ svn mkdir -m "initial setup" file:///var/svnrepos/admin/trunk c:> svn mkdir -m "initial setup" file:///c:/fhs/svn_repos/trunk $ cd /etc $ svn co file:///var/svnrepos/admin/trunk . $ svn add passwd group $ svn commit -m "start loading it in" 'svn co'を'.'で実行することもできます. ちゃんと動作します. --- svn propset svn:keywords "LastChangedDate LastChangedRevision Id Author" weather.txt svn propset svn:keywords "LastChangedDate LastChangedRevision Id" slides.tex --- > よくあることなんですが, M個の異なるディレクトリにあるN個のファイルが > 変更されたとして, そのうちのN-1個をチェックインしたいときにはどうす > ればいいんでしょうか. そうですね. 確かによくあることです. きちんとやろうと思えば複雑なコマン ドラインが必要なので, 私は次のようにしています: % svn diff path/to/file_not_committing > /tmp/patch.txt % svn revert path/to/file_not_committing % svn ci -m "committing all the stuff i wanted to" % patch -p0 < /tmp/patch.txt Revertを使うとこんなに簡単に実現できるんです.