Class: Git::Si::SvnControl
- Inherits:
-
Object
- Object
- Git::Si::SvnControl
- Defined in:
- lib/git/si/svn-control.rb
Constant Summary collapse
- @@default_svn_binary =
'svn'
- @@svn_binary =
'svn'
Class Method Summary collapse
- .add_command(*files) ⇒ Object
- .blame_command(*files) ⇒ Object
- .commit_command(*args) ⇒ Object
- .diff_command(*args) ⇒ Object
- .info_command ⇒ Object
- .list_file_command ⇒ Object
- .parse_conflicted_files(svn_update_output) ⇒ Object
- .parse_deleted_files(svn_update_output) ⇒ Object
- .parse_external_repos(status_string) ⇒ Object
- .parse_file_list(list_output) ⇒ Object
- .parse_last_revision(svn_info) ⇒ Object
- .parse_root_path(svn_info) ⇒ Object
- .parse_svn_status(status_string) ⇒ Object
- .parse_unknown_files(svn_update_output) ⇒ Object
- .parse_updated_files(svn_update_output) ⇒ Object
- .revert_command(*args) ⇒ Object
- .status_command(*args) ⇒ Object
- .svn_binary=(binary) ⇒ Object
- .update_command ⇒ Object
Class Method Details
.add_command(*files) ⇒ Object
75 76 77 78 |
# File 'lib/git/si/svn-control.rb', line 75 def self.add_command(*files) raise GitSiError.new("Add command requires filenames") if ( files.length == 0 ) "#{@@svn_binary} add " + files.join(' ') end |
.blame_command(*files) ⇒ Object
80 81 82 83 |
# File 'lib/git/si/svn-control.rb', line 80 def self.blame_command(*files) raise GitSiError.new("Blame command requires filenames") if ( files.length == 0 ) "#{@@svn_binary} blame " + files.join(' ') end |
.commit_command(*args) ⇒ Object
99 100 101 102 103 104 105 |
# File 'lib/git/si/svn-control.rb', line 99 def self.commit_command(*args) command = "#{@@svn_binary} commit" if ( args.length > 0 ) command += " " + args.join(' ') end command end |
.diff_command(*args) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/git/si/svn-control.rb', line 23 def self.diff_command(*args) command = "#{@@svn_binary} diff" if ( args.length > 0 ) command += " " + args.join(' ') end command end |
.info_command ⇒ Object
19 20 21 |
# File 'lib/git/si/svn-control.rb', line 19 def self.info_command "#{@@svn_binary} info" end |
.list_file_command ⇒ Object
107 108 109 |
# File 'lib/git/si/svn-control.rb', line 107 def self.list_file_command "#{@@svn_binary} list -R" end |
.parse_conflicted_files(svn_update_output) ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/git/si/svn-control.rb', line 59 def self.parse_conflicted_files(svn_update_output) svn_update_output.split(/\r?\n/).collect do |line| line.strip.match(Regexp.union(/^\s*C\s+(\S.+)/, /^Resolved conflicted state of '(.+)'/)) do |pattern| pattern.to_a.compact.last end end.compact end |
.parse_deleted_files(svn_update_output) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/git/si/svn-control.rb', line 51 def self.parse_deleted_files(svn_update_output) svn_update_output.split(/\r?\n/).collect do |line| line.strip.match(Regexp.union(/^\s*D\s+(\S.+)/)) do |pattern| pattern.to_a.compact.last end end.compact end |
.parse_external_repos(status_string) ⇒ Object
124 125 126 127 128 129 130 |
# File 'lib/git/si/svn-control.rb', line 124 def self.parse_external_repos(status_string) status_string.split(/\r?\n/).collect do |line| line.strip.match(/^\s*X\s+(\S.+)/) do |pattern| pattern.to_a.compact.last end end.compact end |
.parse_file_list(list_output) ⇒ Object
111 112 113 114 115 |
# File 'lib/git/si/svn-control.rb', line 111 def self.parse_file_list(list_output) list_output.split(/\r?\n/).collect do |filename| filename.strip if filename.strip !~ Regexp.union( /\/$/, /^\./, /\/\./ ) and not filename.empty? end.compact end |
.parse_last_revision(svn_info) ⇒ Object
31 32 33 34 35 |
# File 'lib/git/si/svn-control.rb', line 31 def self.parse_last_revision(svn_info) results = svn_info.match(/^Revision:\s+(\d+)/) return results[1] if results return nil end |
.parse_root_path(svn_info) ⇒ Object
37 38 39 40 41 |
# File 'lib/git/si/svn-control.rb', line 37 def self.parse_root_path(svn_info) results = svn_info.match(/Root Path:\s+(.+)/) return results[1] if results return nil end |
.parse_svn_status(status_string) ⇒ Object
117 118 119 120 121 122 |
# File 'lib/git/si/svn-control.rb', line 117 def self.parse_svn_status(status_string) return '' unless status_string status_string.split(/\r?\n/).select do |line| line.strip !~ /(^X|\.git|\.swp$)/ end end |
.parse_unknown_files(svn_update_output) ⇒ Object
67 68 69 70 71 72 73 |
# File 'lib/git/si/svn-control.rb', line 67 def self.parse_unknown_files(svn_update_output) svn_update_output.split(/\r?\n/).collect do |line| line.strip.match(/^\s*\?\s+(\S.+)/) do |pattern| pattern.to_a.compact.last end end.compact end |
.parse_updated_files(svn_update_output) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/git/si/svn-control.rb', line 43 def self.parse_updated_files(svn_update_output) svn_update_output.split(/\r?\n/).collect do |line| line.strip.match(Regexp.union(/^\s*[AGU]\s+(\S.+)/, /^Restored '(.+)'/, /^Resolved conflicted state of '(.+)'/)) do |pattern| pattern.to_a.compact.last end end.compact end |
.revert_command(*args) ⇒ Object
89 90 91 92 93 94 95 96 97 |
# File 'lib/git/si/svn-control.rb', line 89 def self.revert_command(*args) command = "#{@@svn_binary} revert -R" if ( args.length > 0 ) command += " " + args.join(' ') else command += " ." end command end |
.status_command(*args) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/git/si/svn-control.rb', line 11 def self.status_command(*args) command = "#{@@svn_binary} status --ignore-externals" if ( args.length > 0 ) command += " " + args.join(' ') end command end |
.svn_binary=(binary) ⇒ Object
7 8 9 |
# File 'lib/git/si/svn-control.rb', line 7 def self.svn_binary=(binary) @@svn_binary = binary && binary.length > 0 ? binary : @@default_svn_binary end |
.update_command ⇒ Object
85 86 87 |
# File 'lib/git/si/svn-control.rb', line 85 def self.update_command "#{@@svn_binary} up --accept theirs-full --ignore-externals" end |