Class: Buildr::Svn

Inherits:
Object show all
Defined in:
lib/buildr/core/build.rb

Class Method Summary collapse

Class Method Details

.commit(file, message) ⇒ Object



115
116
117
# File 'lib/buildr/core/build.rb', line 115

def commit(file, message)
  svn 'commit', '-m', message, file
end

.copy(dir, url, message) ⇒ Object



119
120
121
# File 'lib/buildr/core/build.rb', line 119

def copy(dir, url, message)
  svn 'copy', dir, url, '-m', message
end

.remove(url, message) ⇒ Object



128
129
130
# File 'lib/buildr/core/build.rb', line 128

def remove(url, message)
  svn 'remove', url, '-m', message
end

.repo_urlObject

Return the current SVN URL



124
125
126
# File 'lib/buildr/core/build.rb', line 124

def repo_url
  svn('info').scan(/URL: (.*)/)[0][0]
end

.svn(*args) ⇒ Object

:call-seq:

svn(*args)

Executes SVN command and returns the output.



141
142
143
144
145
# File 'lib/buildr/core/build.rb', line 141

def svn(*args)
  cmd = 'svn ' + args.map { |arg| arg[' '] ? %Q{"#{arg}"} : arg }.join(' ')
  trace cmd
  `#{cmd}`.tap { fail 'SVN command failed' unless $?.exitstatus == 0 }
end

.uncommitted_filesObject

Status check reveals modified files, but also SVN externals which we can safely ignore.



133
134
135
# File 'lib/buildr/core/build.rb', line 133

def uncommitted_files
  svn('status', '--ignore-externals').reject { |line| line =~ /^X\s/ }
end