class ProjMgr::Svn
A parent class for interacting with a source code repository
@author Jacob Hammack <jacob.hammack@hammackj.com>
Public Instance Methods
checkout()
click to toggle source
Checks out a svn repo and places it, in the path specified by the @path variable
@return [String] The results from the ‘svn checkout’ command
# File lib/projmgr/svn.rb, line 15 def checkout if path_exists? == true return "path exists, cannot checkout onto an existing repo" else parent = project_parent_directory results = `cd #{parent} && svn checkout #{@url} #{@project} && cd #{@root}` if results =~ /Could not resolve hostname/ return "unable to resolve hostname" else return "project checked out to #{parent}/#{@project}" end end end
has_local_changes?()
click to toggle source
Checks for local changes in the target repository
@return [Boolean] if there is local changes or not
# File lib/projmgr/svn.rb, line 51 def has_local_changes? if path_exists? == false return false, "Path does not exists, please check the path or check it out" else results = `cd #{@path} && svn stat && cd #{@root}` if results.length > 0 return true, "has local changes" else return false, "has no local changes" end end end
update()
click to toggle source
Checks for updates in the target repo
@return [String] the results of ‘git pull’ on the target repository
# File lib/projmgr/svn.rb, line 34 def update if path_exists? == true results = `cd #{@path} && svn stat && svn update && cd #{@root}` else return "path does not exists, cannot update repository" end if results.split("\n").size == 1 return results.chomp else return "\n" + results end end