Improve network-graph
This commit is contained in:
parent
743073ce5f
commit
5fd830f01c
|
@ -98,7 +98,7 @@ module Gitlab
|
||||||
if leaves.empty?
|
if leaves.empty?
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
space = find_free_space(leaves.last.time..leaves.first.time)
|
space = find_free_space(leaves, map)
|
||||||
leaves.each{|l| l.space = space}
|
leaves.each{|l| l.space = space}
|
||||||
# and mark it as reserved
|
# and mark it as reserved
|
||||||
min_time = leaves.last.time
|
min_time = leaves.last.time
|
||||||
|
@ -120,7 +120,7 @@ module Gitlab
|
||||||
|
|
||||||
# Visit branching chains
|
# Visit branching chains
|
||||||
leaves.each do |l|
|
leaves.each do |l|
|
||||||
parents = l.parents.collect.select{|p| map.include? p.id and map[p.id].space == 0}
|
parents = l.parents.collect.select{|p| map.include? p.id and map[p.id].space.zero?}
|
||||||
for p in parents
|
for p in parents
|
||||||
place_chain(map[p.id], map, l.time)
|
place_chain(map[p.id], map, l.time)
|
||||||
end
|
end
|
||||||
|
@ -133,18 +133,29 @@ module Gitlab
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_free_space(time_range)
|
def find_free_space(leaves, map)
|
||||||
|
time_range = leaves.last.time..leaves.first.time
|
||||||
reserved = []
|
reserved = []
|
||||||
for day in time_range
|
for day in time_range
|
||||||
reserved += @_reserved[day]
|
reserved += @_reserved[day]
|
||||||
end
|
end
|
||||||
space = 1
|
space = base_space(leaves, map)
|
||||||
while reserved.include? space do
|
while reserved.include? space do
|
||||||
space += 1
|
space += 1
|
||||||
end
|
end
|
||||||
space
|
space
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def base_space(leaves, map)
|
||||||
|
parents = []
|
||||||
|
leaves.each do |l|
|
||||||
|
parents.concat l.parents.collect.select{|p| map.include? p.id and map[p.id].space.nonzero?}
|
||||||
|
end
|
||||||
|
|
||||||
|
space = parents.map{|p| map[p.id].space}.max || 0
|
||||||
|
space += 1
|
||||||
|
end
|
||||||
|
|
||||||
# Takes most left subtree branch of commits
|
# Takes most left subtree branch of commits
|
||||||
# which don't have space mark yet.
|
# which don't have space mark yet.
|
||||||
#
|
#
|
||||||
|
@ -157,13 +168,13 @@ module Gitlab
|
||||||
leaves.push(commit) if commit.space.zero?
|
leaves.push(commit) if commit.space.zero?
|
||||||
|
|
||||||
while true
|
while true
|
||||||
parent = commit.parents.collect.select do |p|
|
return leaves if commit.parents.count.zero?
|
||||||
map.include? p.id and map[p.id].space == 0
|
return leaves unless map.include? commit.parents.first.id
|
||||||
end
|
|
||||||
|
|
||||||
return leaves if parent.count.zero?
|
commit = map[commit.parents.first.id]
|
||||||
|
|
||||||
|
return leaves unless commit.space.zero?
|
||||||
|
|
||||||
commit = map[parent.first.id]
|
|
||||||
leaves.push(commit)
|
leaves.push(commit)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue