34 |
34 |
|
35 |
35 |
def branches
|
36 |
36 |
branches = []
|
37 |
|
cmd = "cd #{target('')} && #{GIT_BIN} branch"
|
|
37 |
cmd = "#{GIT_BIN} --git-dir #{target('')} branch"
|
38 |
38 |
shellout(cmd) do |io|
|
39 |
39 |
io.each_line do |line|
|
40 |
40 |
branches << line.match('\s*\*?\s*(.*)$')[1]
|
... | ... | |
45 |
45 |
|
46 |
46 |
def tags
|
47 |
47 |
tags = []
|
48 |
|
cmd = "cd #{target('')} && #{GIT_BIN} tag"
|
|
48 |
cmd = "#{GIT_BIN} --git-dir #{target('')} tag"
|
49 |
49 |
shellout(cmd) do |io|
|
50 |
50 |
io.readlines.sort!.map{|t| t.strip}
|
51 |
51 |
end
|
... | ... | |
89 |
89 |
cmd << " #{shell_quote rev} " if rev
|
90 |
90 |
cmd << "-- #{path} " unless path.empty?
|
91 |
91 |
shellout(cmd) do |io|
|
92 |
|
id = io.gets.split[1]
|
93 |
|
author = io.gets.match('Author:\s+(.*)$')[1]
|
94 |
|
2.times { io.gets }
|
95 |
|
time = io.gets.match('CommitDate:\s+(.*)$')[1]
|
|
92 |
begin
|
|
93 |
id = io.gets.split[1]
|
|
94 |
author = io.gets.match('Author:\s+(.*)$')[1]
|
|
95 |
2.times { io.gets }
|
|
96 |
time = io.gets.match('CommitDate:\s+(.*)$')[1]
|
96 |
97 |
|
97 |
|
Revision.new({
|
98 |
|
:identifier => id,
|
99 |
|
:scmid => id,
|
100 |
|
:author => author,
|
101 |
|
:time => time,
|
102 |
|
:message => nil,
|
103 |
|
:paths => nil
|
104 |
|
})
|
|
98 |
Revision.new({
|
|
99 |
:identifier => id,
|
|
100 |
:scmid => id,
|
|
101 |
:author => author,
|
|
102 |
:time => time,
|
|
103 |
:message => nil,
|
|
104 |
:paths => nil
|
|
105 |
})
|
|
106 |
rescue NoMethodError => e
|
|
107 |
logger.error("The revision '#{path}' has a wrong format")
|
|
108 |
return nil
|
|
109 |
end
|
105 |
110 |
end
|
106 |
111 |
end
|
107 |
112 |
|
108 |
113 |
def num_revisions
|
109 |
114 |
cmd = "#{GIT_BIN} --git-dir #{target('')} log --all --pretty=format:'' | wc -l"
|
110 |
|
shellout(cmd) {|io| io.gets.chomp.to_i + 1 }
|
|
115 |
shellout(cmd) {|io| io.gets.chomp.to_i + 1}
|
111 |
116 |
end
|
112 |
117 |
|
113 |
118 |
def revisions(path, identifier_from, identifier_to, options={})
|
... | ... | |
183 |
188 |
|
184 |
189 |
if changeset[:commit]
|
185 |
190 |
revision = Revision.new({:identifier => changeset[:commit],
|
186 |
|
:scmid => changeset[:commit],
|
187 |
|
:author => changeset[:author],
|
188 |
|
:time => Time.parse(changeset[:date]),
|
189 |
|
:message => changeset[:description],
|
190 |
|
:paths => files
|
191 |
|
})
|
|
191 |
:scmid => changeset[:commit],
|
|
192 |
:author => changeset[:author],
|
|
193 |
:time => Time.parse(changeset[:date]),
|
|
194 |
:message => changeset[:description],
|
|
195 |
:paths => files
|
|
196 |
})
|
192 |
197 |
if block_given?
|
193 |
198 |
yield revision
|
194 |
199 |
else
|
195 |
200 |
|