1229 dag = graphmod.dagwalker(web.repo, smartset.baseset(revs)) |
1229 dag = graphmod.dagwalker(web.repo, smartset.baseset(revs)) |
1230 # As we said one line above... not lazy. |
1230 # As we said one line above... not lazy. |
1231 tree = list(item for item in graphmod.colored(dag, web.repo) |
1231 tree = list(item for item in graphmod.colored(dag, web.repo) |
1232 if item[1] == graphmod.CHANGESET) |
1232 if item[1] == graphmod.CHANGESET) |
1233 |
1233 |
1234 def graphdata(usetuples): |
1234 def jsdata(): |
1235 data = [] |
1235 return [{'node': pycompat.bytestr(ctx), |
1236 |
1236 'vertex': vtx, |
1237 row = 0 |
1237 'edges': edges} |
1238 for (id, type, ctx, vtx, edges) in tree: |
1238 for (id, type, ctx, vtx, edges) in tree] |
1239 if usetuples: |
1239 |
1240 node = pycompat.bytestr(ctx) |
1240 def nodes(): |
1241 data.append({'node': node, 'vertex': vtx, 'edges': edges}) |
1241 for row, (id, type, ctx, vtx, edges) in enumerate(tree): |
1242 else: |
1242 entry = webutil.commonentry(web.repo, ctx) |
1243 entry = webutil.commonentry(web.repo, ctx) |
1243 edgedata = [{'col': edge[0], |
1244 edgedata = [{'col': edge[0], 'nextcol': edge[1], |
1244 'nextcol': edge[1], |
1245 'color': (edge[2] - 1) % 6 + 1, |
1245 'color': (edge[2] - 1) % 6 + 1, |
1246 'width': edge[3], 'bcolor': edge[4]} |
1246 'width': edge[3], |
1247 for edge in edges] |
1247 'bcolor': edge[4]} |
1248 |
1248 for edge in edges] |
1249 entry.update( |
1249 |
1250 {'col': vtx[0], |
1250 entry.update({'col': vtx[0], |
1251 'color': (vtx[1] - 1) % 6 + 1, |
1251 'color': (vtx[1] - 1) % 6 + 1, |
1252 'edges': edgedata, |
1252 'edges': edgedata, |
1253 'row': row, |
1253 'row': row, |
1254 'nextrow': row + 1}) |
1254 'nextrow': row + 1}) |
1255 |
1255 |
1256 data.append(entry) |
1256 yield entry |
1257 |
|
1258 row += 1 |
|
1259 |
|
1260 return data |
|
1261 |
1257 |
1262 rows = len(tree) |
1258 rows = len(tree) |
1263 |
1259 |
1264 return tmpl('graph', rev=rev, symrev=symrev, revcount=revcount, |
1260 return tmpl('graph', rev=rev, symrev=symrev, revcount=revcount, |
1265 uprev=uprev, |
1261 uprev=uprev, |
1266 lessvars=lessvars, morevars=morevars, downrev=downrev, |
1262 lessvars=lessvars, morevars=morevars, downrev=downrev, |
1267 rows=rows, |
1263 rows=rows, |
1268 bg_height=bg_height, |
1264 bg_height=bg_height, |
1269 changesets=count, |
1265 changesets=count, |
1270 jsdata=lambda **x: graphdata(True), |
1266 jsdata=lambda **x: jsdata(), |
1271 nodes=lambda **x: graphdata(False), |
1267 nodes=lambda **x: nodes(), |
1272 node=ctx.hex(), changenav=changenav) |
1268 node=ctx.hex(), changenav=changenav) |
1273 |
1269 |
1274 def _getdoc(e): |
1270 def _getdoc(e): |
1275 doc = e[0].__doc__ |
1271 doc = e[0].__doc__ |
1276 if doc: |
1272 if doc: |