Commit dd4d124832c387ddfc694fdcdae694dc5289cb6c

Authored by randx
1 parent f082c8ae

remove accidently created file

Showing 1 changed file with 0 additions and 165 deletions   Show diff stats
lib/gitlab/graph/'
@@ -1,165 +0,0 @@ @@ -1,165 +0,0 @@
1 -require "grit"  
2 -  
3 -module Gitlab  
4 - module Graph  
5 - class JsonBuilder  
6 - attr_accessor :max_count, :days, :commits  
7 -  
8 - def initialize project  
9 - @project = project  
10 - @repo = project.repo  
11 - @commits = collect_commits(@repo).dup  
12 - @ref_cache = {}  
13 -  
14 - @commits.map! { |commit| Graph::Commit.new(Commit.new(commit))}  
15 - @commits.each { |commit| commit.add_refs(ref_cache, @repo) }  
16 -  
17 - days = Graph::Commit.index_commits(@commits)  
18 -  
19 - return @days_json, @commits_json  
20 - end  
21 -  
22 - def collect_commits  
23 - end  
24 -  
25 - def days_json  
26 - @days_json = @days.compact.map { |d| [d.day, d.strftime("%b")] }.to_json  
27 - end  
28 -  
29 - def commits_json  
30 - @commits_json = @commits.map(&:to_graph_hash).to_json  
31 - end  
32 -  
33 - # Get commits from repository  
34 - #  
35 - def collect_commits repo  
36 - Grit::Commit.find_all(repo, nil, {max_count: self.max_count})  
37 - end  
38 -  
39 - def max_count  
40 - @max_count ||= 650  
41 - end  
42 -  
43 - # Method is adding time and space on the  
44 - # list of commits. As well as returns date list  
45 - # corelated with time set on commits.  
46 - #  
47 - # @param [Array<Graph::Commit>] comits to index  
48 - #  
49 - # @return [Array<TimeDate>] list of commit dates corelated with time on commits  
50 - def index_commits(commits)  
51 - days, heads = [], []  
52 - map = {}  
53 -  
54 - commits.reverse.each_with_index do |c,i|  
55 - c.time = i  
56 - days[i] = c.committed_date  
57 - map[c.id] = c  
58 - heads += c.refs unless c.refs.nil?  
59 - end  
60 -  
61 - heads.select!{|h| h.is_a? Grit::Head or h.is_a? Grit::Remote}  
62 - # sort heads so the master is top and current branches are closer  
63 - heads.sort! do |a,b|  
64 - if a.name == "master"  
65 - -1  
66 - elsif b.name == "master"  
67 - 1  
68 - else  
69 - b.commit.committed_date <=> a.commit.committed_date  
70 - end  
71 - end  
72 -  
73 - @_reserved = {}  
74 - days.each_index do |i|  
75 - @_reserved[i] = []  
76 - end  
77 -  
78 - heads.each do |h|  
79 - if map.include? h.commit.id then  
80 - place_chain(map[h.commit.id], map)  
81 - end  
82 - end  
83 - days  
84 - end  
85 -  
86 - # Add space mark on commit and its parents  
87 - #  
88 - # @param [Graph::Commit] the commit object.  
89 - # @param [Hash<String,Graph::Commit>] map of commits  
90 - def place_chain(commit, map, parent_time = nil)  
91 - leaves = take_left_leaves(commit, map)  
92 - if leaves.empty? then  
93 - return  
94 - end  
95 - space = find_free_space(leaves.last.time..leaves.first.time)  
96 - leaves.each{|l| l.space = space}  
97 - # and mark it as reserved  
98 - min_time = leaves.last.time  
99 - parents = leaves.last.parents.collect  
100 - parents.each do |p|  
101 - if map.include? p.id then  
102 - parent = map[p.id]  
103 - if parent.time < min_time then  
104 - min_time = parent.time  
105 - end  
106 - end  
107 - end  
108 - if parent_time.nil? then  
109 - max_time = leaves.first.time  
110 - else  
111 - max_time = parent_time - 1  
112 - end  
113 - mark_reserved(min_time..max_time, space)  
114 - # Visit branching chains  
115 - leaves.each do |l|  
116 - parents = l.parents.collect  
117 - .select{|p| map.include? p.id and map[p.id].space == 0}  
118 - for p in parents  
119 - place_chain(map[p.id], map, l.time)  
120 - end  
121 - end  
122 - end  
123 -  
124 - def mark_reserved(time_range, space)  
125 - for day in time_range  
126 - @_reserved[day].push(space)  
127 - end  
128 - end  
129 -  
130 - def find_free_space(time_range)  
131 - reserved = []  
132 - for day in time_range  
133 - reserved += @_reserved[day]  
134 - end  
135 - space = 1  
136 - while reserved.include? space do  
137 - space += 1  
138 - end  
139 - space  
140 - end  
141 -  
142 - # Takes most left subtree branch of commits  
143 - # which don't have space mark yet.  
144 - #  
145 - # @param [Graph::Commit] the commit object.  
146 - # @param [Hash<String,Graph::Commit>] map of commits  
147 - #  
148 - # @return [Array<Graph::Commit>] list of branch commits  
149 - def take_left_leaves(commit, map)  
150 - leaves = []  
151 - leaves.push(commit) if commit.space == 0  
152 - while true  
153 - parent = commit.parents.collect  
154 - self.select{|p| map.include? p.id and map[p.id].space == 0}  
155 - if parent.count == 0 then  
156 - return leaves  
157 - else  
158 - commit = map[parent.first.id]  
159 - leaves.push(commit)  
160 - end  
161 - end  
162 - end  
163 - end  
164 - end  
165 -end