2013年5月29日水曜日

[SVN]Subversionのコマンドで一括コミット・一括削除

Subversionのコミットを、コマンドでやろうとすると凄くいろんなことが面倒臭い。

WindowsならGUIソフト使えばいいんけど、Macには有料のばかりなので、コンソールからコマンドで叩いたほうが早いわけなん。
けど面倒臭い。

そもそも何でMacでSVNを使おうと思ったかというと、Unityをチーム開発したかったから。それについて注意点もあるんけど、それはどっかのサイトで調べるといいw

とりあえずメモっとく。

一括コミット・一括削除(Unity用) 

commit.sh
#!/bin/bash
svn st hoge/Assets/ | grep "^\?"|cut -d ' ' -f 8-|sed "s/^\(.*\)$/'\1'/g"|xargs svn add
svn st 
hoge/Assets/ | grep "^\!"|cut -d ' ' -f 8-|sed "s/^\(.*\)$/'\1'/g"|xargs svn rm
svn ci 
hoge/Assets/
svn st 
hoge/ProjectSettings | grep "^\?"|cut -d ' ' -f 8-|sed "s/^\(.*\)$/'\1'/g"|xargs svn add
svn st 
hoge/ProjectSettings | grep "^\!"|cut -d ' ' -f 8-|sed "s/^\(.*\)$/'\1'/g"|xargs svn rm
svn ci 
hoge/ProjectSettings
Unityでhogeプロジェクトをコミットしたかった訳だけど、コマンドで一括追加が面倒くさい。
そこで以下のサイトを参考にさせて頂いて、上のスクリプトを作ってみました。
Subversionでaddremove — ディノオープンラボラトリ

-f 7 を -f 8- に変更しました。
私の環境のMacだと、7だと文字が取れなかったんです。
使う人の環境によって調整しないといけないかもしれない。
8- にしたのは、8番目以降も文字がある場合があるんで。スペースのあるファイル名とか。
あと sed "s/^\(.*\)$/'\1'/g" も追加しました。
頭と後ろに ' を付けないと、スペースのあるファイル名のせいでコミットが成功しないんですよ。

んでもって、Unity用なのは、例えばhogeプロジェクトだと Assets と ProjectSettings だけコミットすればよくて、それ以外はコミットする必要はないらしい。
ということで、このコミットスクリプトを使えばUnityをMacで開発するときにSVN管理しやすいですよん。

わかりやすいコマンド一覧のサイト

バージョン管理ツールSubversionで使えるsvnコマンドのまとめ

SVNのドキュメント

Subversion によるバージョン管理

0 件のコメント:

コメントを投稿