| 47 |
47 |
|
| 48 |
48 |
# Get info about the svn repository
|
| 49 |
49 |
def info
|
| 50 |
|
cmd = "#{SVN_BIN} info --xml #{target('')}"
|
|
50 |
cmd = "#{SVN_BIN} info --xml #{target}"
|
| 51 |
51 |
cmd << credentials_string
|
| 52 |
52 |
info = nil
|
| 53 |
53 |
shellout(cmd) do |io|
|
| ... | ... | |
| 77 |
77 |
path ||= ''
|
| 78 |
78 |
identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
|
| 79 |
79 |
entries = Entries.new
|
| 80 |
|
cmd = "#{SVN_BIN} list --xml #{target(URI.escape(path))}@#{identifier}"
|
|
80 |
cmd = "#{SVN_BIN} list --xml #{target(path)}@#{identifier}"
|
| 81 |
81 |
cmd << credentials_string
|
| 82 |
82 |
shellout(cmd) do |io|
|
| 83 |
83 |
output = io.read
|
| ... | ... | |
| 116 |
116 |
return nil unless self.class.client_version_above?([1, 5, 0])
|
| 117 |
117 |
|
| 118 |
118 |
identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
|
| 119 |
|
cmd = "#{SVN_BIN} proplist --verbose --xml #{target(URI.escape(path))}@#{identifier}"
|
|
119 |
cmd = "#{SVN_BIN} proplist --verbose --xml #{target(path)}@#{identifier}"
|
| 120 |
120 |
cmd << credentials_string
|
| 121 |
121 |
properties = {}
|
| 122 |
122 |
shellout(cmd) do |io|
|
| ... | ... | |
| 142 |
142 |
cmd << credentials_string
|
| 143 |
143 |
cmd << " --verbose " if options[:with_paths]
|
| 144 |
144 |
cmd << " --limit #{options[:limit].to_i}" if options[:limit]
|
| 145 |
|
cmd << ' ' + target(URI.escape(path))
|
|
145 |
cmd << ' ' + target(path)
|
| 146 |
146 |
shellout(cmd) do |io|
|
| 147 |
147 |
output = io.read
|
| 148 |
148 |
begin
|
| ... | ... | |
| 180 |
180 |
cmd = "#{SVN_BIN} diff -r "
|
| 181 |
181 |
cmd << "#{identifier_to}:"
|
| 182 |
182 |
cmd << "#{identifier_from}"
|
| 183 |
|
cmd << " #{target(URI.escape(path))}@#{identifier_from}"
|
|
183 |
cmd << " #{target(path)}@#{identifier_from}"
|
| 184 |
184 |
cmd << credentials_string
|
| 185 |
185 |
diff = []
|
| 186 |
186 |
shellout(cmd) do |io|
|
| ... | ... | |
| 194 |
194 |
|
| 195 |
195 |
def cat(path, identifier=nil)
|
| 196 |
196 |
identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
|
| 197 |
|
cmd = "#{SVN_BIN} cat #{target(URI.escape(path))}@#{identifier}"
|
|
197 |
cmd = "#{SVN_BIN} cat #{target(path)}@#{identifier}"
|
| 198 |
198 |
cmd << credentials_string
|
| 199 |
199 |
cat = nil
|
| 200 |
200 |
shellout(cmd) do |io|
|
| ... | ... | |
| 207 |
207 |
|
| 208 |
208 |
def annotate(path, identifier=nil)
|
| 209 |
209 |
identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
|
| 210 |
|
cmd = "#{SVN_BIN} blame #{target(URI.escape(path))}@#{identifier}"
|
|
210 |
cmd = "#{SVN_BIN} blame #{target(path)}@#{identifier}"
|
| 211 |
211 |
cmd << credentials_string
|
| 212 |
212 |
blame = Annotate.new
|
| 213 |
213 |
shellout(cmd) do |io|
|
| ... | ... | |
| 243 |
243 |
end
|
| 244 |
244 |
end
|
| 245 |
245 |
end
|
|
246 |
|
|
247 |
def target(path = '')
|
|
248 |
base = path.match(/^\//) ? root_url : url
|
|
249 |
uri = "#{base}/#{path}"
|
|
250 |
uri = URI.escape(URI.escape(uri), '[]')
|
|
251 |
shell_quote(uri.gsub(/[?<>\*]/, ''))
|
|
252 |
end
|
| 246 |
253 |
end
|
| 247 |
254 |
end
|
| 248 |
255 |
end
|