summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSato Hiroyuki <sathiroyuki@gmail.com>2013-02-27 23:43:33 +0900
committerSato Hiroyuki <sathiroyuki@gmail.com>2013-02-28 11:46:17 +0900
commit00d0e57e859454c62084893a74fad71c26d5c50c (patch)
treef66f04ce2c16e59a78ad9dbc56fabfa6b1284d64
parent14c2a37da218ca5ca23918d4787113644e1fd1cc (diff)
downloadgitlab-ce-00d0e57e859454c62084893a74fad71c26d5c50c.tar.gz
Commits are arranged below their first parent.
-rw-r--r--app/models/graph/json_builder.rb21
1 files changed, 19 insertions, 2 deletions
diff --git a/app/models/graph/json_builder.rb b/app/models/graph/json_builder.rb
index 5237ccfe081..013d15fb754 100644
--- a/app/models/graph/json_builder.rb
+++ b/app/models/graph/json_builder.rb
@@ -181,7 +181,8 @@ module Graph
end
time_range = leaves.last.time..leaves.first.time
- space = find_free_space(time_range, 2)
+ space_base = get_space_base(leaves, map)
+ space = find_free_space(time_range, 2, space_base)
leaves.each do |l|
l.spaces << space
# Also add space to parent
@@ -223,13 +224,29 @@ module Graph
end
end
+ def get_space_base(leaves, map)
+ space_base = 1
+ if leaves.last.parents.size > 0
+ first_parent = leaves.last.parents.first
+ if map.include?(first_parent.id)
+ first_p = map[first_parent.id]
+ if first_p.space > 0
+ space_base = first_p.space
+ end
+ end
+ end
+ space_base
+ end
+
def mark_reserved(time_range, space)
for day in time_range
@_reserved[day].push(space)
end
end
- def find_free_space(time_range, space_step, space_base = 1, space_default = 1)
+ def find_free_space(time_range, space_step, space_base = 1, space_default = nil)
+ space_default ||= space_base
+
reserved = []
for day in time_range
reserved += @_reserved[day]