# Get the commit hash for the upper bound
max_hash = nil
- IO.foreach("|git rev-list --max-count=1 #{maximum.shellescape}") do |line|
+ IO.foreach("|git rev-list --max-count=1 #{maximum.shellescape} --") do |line|
max_hash = line.strip
end
resolved_exclude = []
exclude.each do |e|
if git_check_ref_format(e)
- IO.foreach("|git rev-list --max-count=1 #{e.shellescape}") do |line|
+ IO.foreach("|git rev-list --max-count=1 #{e.shellescape} --") do |line|
resolved_exclude.push(line.strip)
end
else
if minimum
# Get the commit hash for the lower bound
min_hash = nil
- IO.foreach("|git rev-list --max-count=1 #{minimum.shellescape}") do |line|
+ IO.foreach("|git rev-list --max-count=1 #{minimum.shellescape} --") do |line|
min_hash = line.strip
end
next if !min_hash or !git_check_ref_format(min_hash)
# Now find all commits between them
- IO.foreach("|git rev-list #{min_hash.shellescape}..#{max_hash.shellescape}") do |line|
+ IO.foreach("|git rev-list #{min_hash.shellescape}..#{max_hash.shellescape} --") do |line|
hash = line.strip
commits.push(hash) if !resolved_exclude or !resolved_exclude.include? hash
end