subversionの最近のブログ記事

subclipseインストールで
Buckminster - Subversion support (Incubation) (0.1.0.v20070626) requires plug-in "org.eclipse.buckminster.core
というエラーになる。
インストール時にエラーになっているオプション機能を外せばOK。

カテゴリー:


通常、コマンドsvn add *はすでにバージョン管理下にあるすべてのディレクトリを飛ばします。しかし作業コピーにあるすべてのバージョン化されていないオブジェクトを再帰的に追加したいこともあるでしょう。svn addに --forceオプションを渡すと既にバージョン化されているディレクトリにも再帰的に降りていきます:
$ svn add * --force
A         foo.c
A         somedir/bar.c
A         otherdir/docs/baz.doc
…
Subversion によるバージョン管理


バージョン化されていないディレクトリとファイルをすべてaddして、
紛失ファイルをdelete後にcommitする

$ svn add * --force
$ svn commit
svn: Commit failed (details follow):
svn: Directory <path><file> is missing
$ svn delete <file>
D         <file>
$ svn commit

しかし、svn add * --force では、実行したディレクトリ直下のsvn:ignore属性に設定したファイルやディレクトリも追加されてしまう。
なので、とりあえず以下のようにいったんadd * --forceで追加した後、revertしている。

$ svn add * --force
A         ignore.txt
A         ignoredir
A         ignoredir/ignore.txt
$ svn revert --depth infinity ignore.txt ignoredir/
'ignore.txt' を元に戻しました
'ignoredir' を元に戻しました
$ svn commit

何かもっといい方法はないのだろうか?

=> svn status の出力をsedでフィルタしてsvn add にリダイレクトするaliasを設定するとよい。関連エントリー参照。

カテゴリー:

カテゴリー:

scplugin.tigris.org
Mac OS XのFinderからSubversionを使えるようになる。Mac版TortoiseSVN。

アンインストールは、
/Library/Contextual Menu Items/SCFinderPlugin.plugin
/Library/Receipts/SCPlugin.pkg
を削除して、ログアウトするか再起動する。

Subversionのインストールは別途必要。
scplugin: Installing SCPlugin

カテゴリー:

■サーバ側の設定

レポジトリのhooks/pre-revprop-change.tmplをpre-revprop-changeにコピーして、実行権限を与え、以下のように変更する。
REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" -a "$USER" = "HOGEHOGE" ]; then exit 0; fi

echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1

上記の例では、ユーザHOGEHOGEだけがログの変更が出来るようになる。

■クライアント側でログを編集するには

svn propset --revprop -r 25 svn:log "Journaled about trip to New York."

上記例では、リビジョン25のログメッセージをを変更しています。

svn propset svn:log --revprop -r 10 -F r10_log.txt svn://repo

上記例では、svn://repoにあるリポジトリのリビジョン10のログメッセージを「r10_log.txt」に書かれている内容に変更します。

Subversion - YImai's memo

カテゴリー:

sc create svnserve binpath= "\"D:\Program Files\Subversion\bin\svnserve.exe\" --service -r D:\svn\repos" DisplayName= "svnserve" depend= Tcpip

SubversionWindowsInstall - OBOE-GAKI - Trac

Subversion memo - PukiWiki

カテゴリー:

たとえば、Ruby on Railsアプリケーションのプロジェクトのtmpディレクトリ以下の全サブディレクトリ内のファイルを無視するには、tmpディレクトリにsvn:ignore属性で*を再帰的に適用する。

サブディレクトリ自体も無視する場合は、親ディレクトリにsvn:ignore属性で*を設定すればよい。
たとえばsymfonyプロジェクトのcacheディレクトリのように、cacheディレクトリ下のディレクトリは、自動的に作成されるため、ディレクトリ自体をソース管理する必要がない場合など。

svn propedit svn:ignore cache

で、環境変数SVN_EDITORで設定したエディタが開くので、
*
と入力して保存する。

カテゴリー:

カテゴリー:

http://develop.ddo.jp/tech/index/PHP/Symfony/documentation/Symfony101/%A5%D7%A5%ED%A5%B8%A5%A7%A5%AF%A5%C8%BA%EE%C0%AE#mfd81c7f

(以下引用、一部変更してます)

一度アプリケーションをセットアップしてしまえば、ソースのバージョン管理を始めることが推奨されます。Subversionが推奨されますが、 symfonyは本来CVSをサポートしています。次のサンプルはSubversionで管理するためのコマンドを示しています。そしてサーバーに Subversionがインストールされており、プロジェクトのための新しいリポジトリが作成されることを前提としています。Windowsユーザーに とってTortoiseSVNというSubversionクライアントが推奨されます。ソースバージョン管理とコマンドのより多くの情報のために、 Subversionのドキュメントを参照してください。

下記の例は$SVNREP_DIRという変数が環境変数として定義されていることを想定しています。もし定義していないのであれば$SVNREP_DIRの場所をリポジトリの確かなロケーションに置き換える必要があるでしょう。

$ svnadmin create $SVNREP_DIR/myproject

そして、リポジトリの基本構造(レイアウト)となるtrunk,tags,branchesが次のかなり長いコマンドで作成されます。

$ svn mkdir -m "layout creation" \
file:///$SVNREPOS/myproject/trunk \
file:///$SVNREPOS/myproject/tags \
file:///$SVNREPOS/myproject/branches

これは最初のリビジョンになります。そして、キャッシュとログなどのテンポラリファイルを除いたプロジェクトのファイルをimportしなくてはなりません。

$ cd /home/steve/myproject
$ rm -rf cache/*
$ rm -rf log/*
$ svn import -m "initial import" . file:///$SVNREPOS/myproject/trunk

次のように入力することでコミットしたファイルをチェックすることができます。

$ svn ls file:///$SVNREPOS/myproject/trunk/

どうやらよさそうです。さて、SVNリポジトリは全てのプロジェクトファイルのリファレンスバージョン(履歴)を持っています。これは /home/stece/myprojectディレクトリはリポジトリを参照する必要があるということです。最初にmyprojectディレクトリをリ ネームすることによって-全てがうまく動くのであればすぐに消してよいのですが-新しいディレクトリにリポジトリからcheckoutしましょう。

$ cd /home/steve
$ mv myproject myproject.origin
$ svn co file:///$SVNREPOS/myproject/trunk myproject
$ ls myproject

そうです。これで/home/steve/myproject/にあるファイルを動作させることができ、リポジトリに対してcommitすることができます。今となっては使わないmyproject.originディレクトリ(元のオリジナルのディレクトリ)は消してきれいにすることを忘れないでください。

もうひとつセットアップするためにすることが残っています。リポジトリに対してワーキングディレクトリのcommitを行ったときに、キャッシュや ログディレクトリなどの望まないいくつかのファイルがコピーされるかもしれません。それで、プロジェクトのためにSVN用の無視するファイルリストを指定 する必要があります。cache/やlog/ディレクトリに再び完全にアクセスすることができるように設定する必要があります。そしてSVNはアクセス権 限を保持していません。

$ cd /home/steve/myproject
$ svn propedit svn:ignore .
$ chmod 777 cache
$ chmod 777 log

SVN設定のための標準テキストエディタは起動されるべきである。もし、何も起こらないのであれば、次のように入力することによって好みのエディタをsubversionが使うように指定します。

$ export SVN_EDITOR=
$ svn propedit svn:ignore .

次にコミットするときにSVNが無視すべきmyprojectのサブディレクトリを単に追加するだけです。

cache
log

保存し終了します。これで完了です。

カテゴリー:

カテゴリー: