it-swarm-ja.com

SVNを直接tarに

SVN隠しファイルなしでSVNフォルダーの最新バージョンを直接tarする方法はありますか? SVNファイルなしでtarアーカイブを作成したいと思います。 SVNトラッキングファイルで最新のものを入手できることは知っていますが、情報をアーカイブに直接送信するライナーは1つありますか?

13
monksy

たぶん、tarのバージョン1.23では、コマンドラインからすべてのバージョン管理ファイルを除外できますが、残念ながら、私の1.20バージョンでは機能しません。

tar --exclude-vcs -cvzf archive.tar.gz directory/
10
Deverne

私も見る:

tar cvfz archive.tar.gz directory/  --exclude='*/.svn'

タールありがとう。

3
Deverne

私が正しく理解していれば、svnチェックアウトの結果をtarしたいですか?

したがって、擬似コードでは、次のようになります。

svn export branch; find branch | grep -v '/.' | xargs cp tarbranch ; tar -zcf tarbranch.tgz tarbranch
2
warren

これは私が書いたワンライナーを元にしています。 〜/ tmpディレクトリがあることを前提としています。最初の2つのステップで、PROJ変数とURL変数を変更する必要があります。残りは機能するはずです。

簡単にコピーするには:

PROJ='yourproj' && URL='http://svn.example.com/svn/repo/$PROJ' && REV=`svn info $URL | fgrep Revision | cut -d ' ' -f 2` &&  cd ~/tmp &&  svn export $URL $PROJ && tar czv -f $PROJ.r$REV.tar.gz $PROJ && rm -r $PROJ.r$REV

見やすくするために:

PROJ='yourproj' && 
URL='http://svn.example.com/svn/repo/$PROJ' && 
REV=`svn info $URL | fgrep Revision | cut -d ' ' -f 2` &&  
cd ~/tmp && 
svn export $URL $PROJ && 
tar czv -f $PROJ.r$REV.tar.gz $PROJ && 
rm -r $PROJ.r$REV
0
np trivial