2011-11-05 15 views
0

私はファイル名ダンプを作成する自動svndumpを作成するバックアップスクリプト(バッチとbashの両方)を作成する必要があります<repository_name>_<repository_rev>.zipSvndump with repository version

例: 私のリポジトリ名はMySpliceで、それはrevです。 234(私は知らないし、リポジトリのパスをチェックしたくない)ので、スクリプトbackup.batまたはbackup.shを実行し、ファイルmysplice_r234.zipを作成します。これは、私のリポジトリのダンプです。

どうすればいいですか?ありがとう。

+1

svndumpが分かっているので、ダンプファイルを作成し、7zまたはzipで圧縮して名前を変更して名前を変更できます。あなたは今まで何をしようとしましたか?どの部分が失敗するのですか? – jeb

答えて

5

をあなたはそれをこのように行うことができます:

REPO=/path/to/repository 
r=$(svnlook youngest "$REPO") 
name=$(basename "$REPO")-r$r 
svnadmin dump "$REPO" > "$name.svndump" 
zip "$name.zip" "$name.svndump" 

ご注意:私が思うに、ダンプが常にexectly一つのファイルではなく、ファイルの束になりますので、zipファイルには、リポジトリに適していないと判断。だから、代わりにgzipまたはbzip2を使用してください。

+0

+1。 ** svnlook最年少の$ REPO/subproj **は動作しませんが、** svn info file:// $ REPO/subproj ** do job ...これは、単一REPOのマルチプロジェクト階層に便利です。 – gavenkoa

+0

ありがとうございました。あなたの提案は私のリポジトリに対して完璧に機能します。私はWindowsを使っていますが、cygwinがアクティブなので、私はそれを打ち破ることができます。私はgzipの提案も感謝しています。私は最終的なスクリプトのバージョンも投稿しました。 – Rego

0

SubWCRev(Windowsのみ、TSVNから)は、WCからRevisionInfo を抽出して(一部のマクロを使用して)ファイルに書き込むことができます。 バットファイルのテンプレートを持っていて、SubWCRevは最終形式のバットファイルに変換し、このファイルを実行します。

 
$ rev=`svn info file:///srv/svn/proj | sed -n '/Last Changed Rev:/{s=.*: ==;p;q;}'` 
$ svnadmin dump /srv/svn/proj >proj-r$rev.dump 

証明のために:

は、私が名前に改正-タイムスタンプを持つディレクトリに(WC)をエクスポートするためにこの方法を使用

+0

私はTortoiseSVNのこのfuctionalityを知らなかった。それを知ってよかったら、私はもっと早くそれを勉強します。ありがとうございました。 – Rego

2

これは、適切なソリューションは、(-1に、これまでのAH downvote答え)ですAH彼が欠場することを:Linuxの

 
desktop+bash# svnadmin.exe create g 
desktop+bash# svn co file://$PWD/g w 
Checked out revision 0. 
desktop+bash# cd w 
/home/user/tmp/gg/w 
desktop+bash# echo XXX >>README 
desktop+bash# svn add README 
A   README 
desktop+bash# svn ci -m up 
Adding   README 
Transmitting file data . 
Committed revision 1. 
desktop+bash# cd .. 
desktop+bash# svn info file://$PWD/g 
Path: g 
URL: file:///home/user/tmp/gg/g 
Repository Root: file:///home/user/tmp/gg/g 
Repository UUID: 38434ae0-ea0a-41ac-9891-55099858d224 
Revision: 1 
Node Kind: directory 
Last Changed Author: user 
Last Changed Rev: 1 
Last Changed Date: 2011-11-05 16:30:27 +0200 (Сб, 05 ноя 2011) 
+0

'svn info'はリポジトリではなく、作業コピー上でしか動作できないため動作しません。 –

+0

@ A.H。私は頭から答えを書く時に間違いをする...もう一度見てください。 SVNバージョン1.7。 ** file:// ** – gavenkoa

+0

リポジトリパスをリポジトリURLに固定してくれてありがとう。 –

1

ありがとうございました。 @ A.Hに基づいて以下のスクリプトを使用することにしました。ソリューション:

#backup_repos.sh 
#!/usr/bin/bash 
export REPO=$1 
export r=$(svnlook youngest "$REPO") 
export name=$(basename "$REPO")-r$r-`date +%Y.%m.%d` 

svnadmin dump "$REPO" > "$name-dump" 
gzip -f "$name-dump"