I have made a small script that makes a backup of
a subversion repository.. with outputfiles formatted as:
backup20050722_rev68.gz
But I wonder if there is a smarter way to determine what
the last revision?
···
--
Simon Strandgaard
require 'open3'
task :default => :svnbackup
task :svnbackup do
repos = '/Users/simonstrandgaard/code/svnrepos'
dummyfile = 'backuptmp'
cmd = "svnadmin dump #{repos} | gzip -9 > #{dummyfile}"
si, so, se = Open3.popen3(cmd) #do |stdin, stdout, stderr|
si.close
se_res = ''
so_res = ''
t1 = Thread.start do
while line=so.gets
so_res << line
puts "stdout: #{line}"
end
end
t2 = Thread.start do
while line=se.gets
se_res << line
puts "stderr: #{line}"
end
end
t1.join
t2.join
so.close
se.close
#p so_res, se_res
ary = se_res.scan(/Dumped\srevision\s(\d+)\./m)
rev = '_rev' + ary.flatten.last
#p rev
filename = 'backup' + Time.now.strftime('%Y%m%d')
filename += rev
filename += '.gz'
mv(dummyfile, filename)
end
Hmm.. my svnadmin does not support 'youngest'..
my svn+svnadmin versions is 1.1.3 (r12730).
however I just discovered svnlook..
svnlook youngest repos
10x Thanks
···
On 7/22/05, Cristi BALAN <mental@gmail.com> wrote:
On 7/22/05, Simon Strandgaard <neoneye@gmail.com> wrote:
> I have made a small script that makes a backup of
> a subversion repository.. with outputfiles formatted as:
> backup20050722_rev68.gz
>
> But I wonder if there is a smarter way to determine what
> the last revision?
>
> --
> Simon Strandgaard
>
svnadmin youngest repos
--
Simon Strandgaard
Code got reduced into this.
···
On 7/22/05, Simon Strandgaard <neoneye@gmail.com> wrote:
On 7/22/05, Cristi BALAN <mental@gmail.com> wrote:
>
> svnadmin youngest repos
Hmm.. my svnadmin does not support 'youngest'..
my svn+svnadmin versions is 1.1.3 (r12730).
however I just discovered svnlook..
svnlook youngest repos
10x Thanks
--
Simon Strandgaard
require 'open3'
task :default => :svnbackup
task :svnbackup do
repos = '/Users/simonstrandgaard/code/svnrepos'
revstr = `svnlook youngest #{repos}`
rev = '_rev' + revstr.match(/\d+/).to_s
#p rev
filename = 'backup' + Time.now.strftime('%Y%m%d')
filename += rev
filename += '.gz'
p filename
sh "svnadmin dump #{repos} | gzip -9 > #{filename}"
end