Subversionの履歴

subversion
【名】
破壊、転覆

  • The planting of a bomb in the office was an act of subversion.

事務所に爆弾をしかけたのは、破壊行為だった。
http://eow.alc.co.jp/subversion/

クソCVSSubversionしてやるぜ!ってことか
うっかり、海外で口走れないなw

推奨されるリポジトリ構成

  • trunk : ここに流を入れる
  • branches
  • tags


CVSはブランチをやるとわけわからようになるらしくてあまり使わない方がいいと言われている。Subversionではブランチ・タグは単純なファイルコピーでシンプルなのでバンバンやってよろしいらしい。

http://subversion.bluegate.org/doc/

CVSユーザのためのSubversion

削除されたファイルを復活する

Subclipseではできないっぽい?

http://subversion.bluegate.org/doc/ch04s04.html#svn.branchme...

svn copy --revision 807 \
http://svn.example.com/repos/calc/trunk/real.c ./real.c

1.4と1.5ではフォーマットが異なる

svn: このクライアントは、作業コピー '.' を扱うには古すぎます。もっと新しい Subversion クライアントをダウンロードしてください。

と一度1.5のクライアントを使うと1.4に戻せないみたい!!

SubversiveクライアントSVNKITをdevelopmentにして、戻すと何故か起動直後に落ちるようになった。どうやらsvnのバージョンが原因みたい

ブランチをトランクにマージする方法

  • リビジョンを指定する。ブランチした時のリビジョンと適用したいリビジョンを指定
    • -dry-runするとマージ結果だけを教えてくれる

svn merge --dry-run -r 343:344 http://svn.example.com/repos/calc/trunk

このコマンドは作業コピーに/repos/calc/trunkの「343-344における変更点」だけを取り入れる。変更点の範囲を指定しないと、どこからどこまでなのかがわからないURLだけ指定できないのはこのため)

.svnを削除する

Windows
% for /R /D %I in (.svn) do RMDIR "%I" /S /Q
http://dev-e.sakura.ne.jp/wiki/wiki.cgi?page=.SVN%A5%D5%A5%A...
「*.svn」ではだめだったけど「.svn」ならいけた

Linux
% find /path/to/dir -type d -name '.svn' | xargs rm -rvf
http://kjirou.sakura.ne.jp/mt/2008/01/dirsvn.html

% rm -rf `find ./ -type d -name .svn ! -regex \.svn/. -print`
http://blog.triangle.jp/2007/11/svn.html

たぶxargs使う方がいい?

ってかsvn exportなてあるだ!.svnファイルを生成せずにファイルだけ得られるみたいだ。

おまけ。そのフォルダ内の全ファイルを削除する svn コマンド
% svn status | awk '{print $2}' | xargs svn del
http://bitmap.dyndns.org/blog/archives/001521.html

別のリポジトリを同時に使いたい

root
 |
 |-config
 |
 |-application
 |
 |-library----vendor1 (別のリポジトリ)
      |
      --------vendor2(別のリポジトリ)


libraryにsvn:ignoreつけるだけでOK。libraryに直接別のリポジトリを置いても大丈夫かもね。
別リポジトリのupdate/commitが面倒だけど、同じものが複数のリポジトリにまたがるよりかはマシ。ってかそもそもリポジトリ設計が…(ry