252 l = [] # build a list in forward order for efficiency |
252 l = [] # build a list in forward order for efficiency |
253 for i in range(start, end): |
253 for i in range(start, end): |
254 n = cl.node(i) |
254 n = cl.node(i) |
255 changes = cl.read(n) |
255 changes = cl.read(n) |
256 hn = hex(n) |
256 hn = hex(n) |
257 p1, p2 = cl.parents(n) |
|
258 t = float(changes[2].split(' ')[0]) |
257 t = float(changes[2].split(' ')[0]) |
259 |
258 |
260 l.insert(0, self.t( |
259 l.insert(0, self.t( |
261 'changelogentry', |
260 'changelogentry', |
262 parity = parity, |
261 parity = parity, |
263 author = changes[1], |
262 author = changes[1], |
264 parent = self.parents("changelogparent", |
263 parent = self.parents("changelogparent", |
265 cl.parents(n), cl.rev), |
264 cl.parents(n), cl.rev), |
266 changelogtag = self.showtag("changelogtag",n), |
265 changelogtag = self.showtag("changelogtag",n), |
267 p1 = hex(p1), p2 = hex(p2), |
|
268 p1rev = cl.rev(p1), p2rev = cl.rev(p2), |
|
269 manifest = hex(changes[0]), |
266 manifest = hex(changes[0]), |
270 desc = changes[4], |
267 desc = changes[4], |
271 date = t, |
268 date = t, |
272 files = self.listfilediffs(changes[3], n), |
269 files = self.listfilediffs(changes[3], n), |
273 rev = i, |
270 rev = i, |
318 break |
315 break |
319 if miss: continue |
316 if miss: continue |
320 |
317 |
321 count += 1 |
318 count += 1 |
322 hn = hex(n) |
319 hn = hex(n) |
323 p1, p2 = cl.parents(n) |
|
324 t = float(changes[2].split(' ')[0]) |
320 t = float(changes[2].split(' ')[0]) |
325 |
321 |
326 yield self.t( |
322 yield self.t( |
327 'searchentry', |
323 'searchentry', |
328 parity = count & 1, |
324 parity = count & 1, |
329 author = changes[1], |
325 author = changes[1], |
330 parent = self.parents("changelogparent", |
326 parent = self.parents("changelogparent", |
331 cl.parents(n), cl.rev), |
327 cl.parents(n), cl.rev), |
332 changelogtag = self.showtag("changelogtag",n), |
328 changelogtag = self.showtag("changelogtag",n), |
333 p1 = hex(p1), p2 = hex(p2), |
|
334 p1rev = cl.rev(p1), p2rev = cl.rev(p2), |
|
335 manifest = hex(changes[0]), |
329 manifest = hex(changes[0]), |
336 desc = changes[4], |
330 desc = changes[4], |
337 date = t, |
331 date = t, |
338 files = self.listfilediffs(changes[3], n), |
332 files = self.listfilediffs(changes[3], n), |
339 rev = i, |
333 rev = i, |
354 |
348 |
355 def changeset(self, nodeid): |
349 def changeset(self, nodeid): |
356 n = bin(nodeid) |
350 n = bin(nodeid) |
357 cl = self.repo.changelog |
351 cl = self.repo.changelog |
358 changes = cl.read(n) |
352 changes = cl.read(n) |
359 p1, p2 = cl.parents(n) |
353 p1 = cl.parents(n)[0] |
360 p1rev, p2rev = cl.rev(p1), cl.rev(p2) |
|
361 t = float(changes[2].split(' ')[0]) |
354 t = float(changes[2].split(' ')[0]) |
362 |
355 |
363 files = [] |
356 files = [] |
364 mf = self.repo.manifest.read(changes[0]) |
357 mf = self.repo.manifest.read(changes[0]) |
365 for f in changes[3]: |
358 for f in changes[3]: |
377 rev = cl.rev(n), |
370 rev = cl.rev(n), |
378 node = nodeid, |
371 node = nodeid, |
379 parent = self.parents("changesetparent", |
372 parent = self.parents("changesetparent", |
380 cl.parents(n), cl.rev), |
373 cl.parents(n), cl.rev), |
381 changesettag = self.showtag("changesettag",n), |
374 changesettag = self.showtag("changesettag",n), |
382 p1 = hex(p1), p2 = hex(p2), |
|
383 p1rev = cl.rev(p1), p2rev = cl.rev(p2), |
|
384 manifest = hex(changes[0]), |
375 manifest = hex(changes[0]), |
385 author = changes[1], |
376 author = changes[1], |
386 desc = changes[4], |
377 desc = changes[4], |
387 date = t, |
378 date = t, |
388 files = files) |
379 files = files) |
400 |
391 |
401 n = fl.node(i) |
392 n = fl.node(i) |
402 lr = fl.linkrev(n) |
393 lr = fl.linkrev(n) |
403 cn = cl.node(lr) |
394 cn = cl.node(lr) |
404 cs = cl.read(cl.node(lr)) |
395 cs = cl.read(cl.node(lr)) |
405 p1, p2 = fl.parents(n) |
|
406 t = float(cs[2].split(' ')[0]) |
396 t = float(cs[2].split(' ')[0]) |
407 |
397 |
408 l.insert(0, self.t("filelogentry", |
398 l.insert(0, self.t("filelogentry", |
409 parity = parity, |
399 parity = parity, |
410 filenode = hex(n), |
400 filenode = hex(n), |
411 filerev = i, |
401 filerev = i, |
412 file = f, |
402 file = f, |
413 node = hex(cn), |
403 node = hex(cn), |
414 author = cs[1], |
404 author = cs[1], |
415 date = t, |
405 date = t, |
416 desc = cs[4], |
406 parent = self.parents("filelogparent", |
417 p1 = hex(p1), p2 = hex(p2), |
407 fl.parents(n), fl.rev, file=f), |
418 p1rev = fl.rev(p1), p2rev = fl.rev(p2))) |
408 desc = cs[4])) |
419 parity = 1 - parity |
409 parity = 1 - parity |
420 |
410 |
421 yield l |
411 yield l |
422 |
412 |
423 yield self.t("filelog", |
413 yield self.t("filelog", |
434 text = fl.read(n) |
424 text = fl.read(n) |
435 changerev = fl.linkrev(n) |
425 changerev = fl.linkrev(n) |
436 cl = self.repo.changelog |
426 cl = self.repo.changelog |
437 cn = cl.node(changerev) |
427 cn = cl.node(changerev) |
438 cs = cl.read(cn) |
428 cs = cl.read(cn) |
439 p1, p2 = fl.parents(n) |
|
440 t = float(cs[2].split(' ')[0]) |
429 t = float(cs[2].split(' ')[0]) |
441 mfn = cs[0] |
430 mfn = cs[0] |
442 |
431 |
443 def lines(): |
432 def lines(): |
444 for l, t in enumerate(text.splitlines(1)): |
433 for l, t in enumerate(text.splitlines(1)): |
458 manifest = hex(mfn), |
447 manifest = hex(mfn), |
459 author = cs[1], |
448 author = cs[1], |
460 date = t, |
449 date = t, |
461 parent = self.parents("filerevparent", |
450 parent = self.parents("filerevparent", |
462 fl.parents(n), fl.rev, file=f), |
451 fl.parents(n), fl.rev, file=f), |
463 p1 = hex(p1), p2 = hex(p2), |
452 permissions = self.repo.manifest.readflags(mfn)[f]) |
464 permissions = self.repo.manifest.readflags(mfn)[f], |
|
465 p1rev = fl.rev(p1), p2rev = fl.rev(p2)) |
|
466 |
453 |
467 def fileannotate(self, f, node): |
454 def fileannotate(self, f, node): |
468 bcache = {} |
455 bcache = {} |
469 ncache = {} |
456 ncache = {} |
470 fl = self.repo.file(f) |
457 fl = self.repo.file(f) |
525 manifest = hex(mfn), |
511 manifest = hex(mfn), |
526 author = cs[1], |
512 author = cs[1], |
527 date = t, |
513 date = t, |
528 parent = self.parents("fileannotateparent", |
514 parent = self.parents("fileannotateparent", |
529 fl.parents(n), fl.rev, file=f), |
515 fl.parents(n), fl.rev, file=f), |
530 p1 = hex(p1), p2 = hex(p2), |
516 permissions = self.repo.manifest.readflags(mfn)[f]) |
531 permissions = self.repo.manifest.readflags(mfn)[f], |
|
532 p1rev = fl.rev(p1), p2rev = fl.rev(p2)) |
|
533 |
517 |
534 def manifest(self, mnode, path): |
518 def manifest(self, mnode, path): |
535 mf = self.repo.manifest.read(bin(mnode)) |
519 mf = self.repo.manifest.read(bin(mnode)) |
536 rev = self.repo.manifest.rev(bin(mnode)) |
520 rev = self.repo.manifest.rev(bin(mnode)) |
537 node = self.repo.changelog.node(rev) |
521 node = self.repo.changelog.node(rev) |
626 filenode = hex(mf.get(file, nullid)), |
610 filenode = hex(mf.get(file, nullid)), |
627 node = changeset, |
611 node = changeset, |
628 rev = self.repo.changelog.rev(n), |
612 rev = self.repo.changelog.rev(n), |
629 parent = self.parents("filediffparent", |
613 parent = self.parents("filediffparent", |
630 cl.parents(n), cl.rev), |
614 cl.parents(n), cl.rev), |
631 p1rev = self.repo.changelog.rev(p1), |
|
632 diff = diff) |
615 diff = diff) |
633 |
616 |
634 # add tags to things |
617 # add tags to things |
635 # tags -> list of changesets corresponding to tags |
618 # tags -> list of changesets corresponding to tags |
636 # find tag, changeset, file |
619 # find tag, changeset, file |