Show More
@@ -585,8 +585,40 b' def successorsandmarkers(repo, ctx):' | |||||
585 |
|
585 | |||
586 | ssets = successorssets(repo, ctx.node(), closest=True) |
|
586 | ssets = successorssets(repo, ctx.node(), closest=True) | |
587 |
|
587 | |||
|
588 | # closestsuccessors returns an empty list for pruned revisions, remap it | |||
|
589 | # into a list containing an empty list for future processing | |||
|
590 | if ssets == []: | |||
|
591 | ssets = [[]] | |||
|
592 | ||||
|
593 | # Try to recover pruned markers | |||
|
594 | succsmap = repo.obsstore.successors | |||
|
595 | fullsuccessorsets = [] # successor set + markers | |||
|
596 | for sset in ssets: | |||
|
597 | if sset: | |||
|
598 | fullsuccessorsets.append(sset) | |||
|
599 | else: | |||
|
600 | # successorsset return an empty set() when ctx or one of its | |||
|
601 | # successors is pruned. | |||
|
602 | # In this case, walk the obs-markers tree again starting with ctx | |||
|
603 | # and find the relevant pruning obs-makers, the ones without | |||
|
604 | # successors. | |||
|
605 | # Having these markers allow us to compute some information about | |||
|
606 | # its fate, like who pruned this changeset and when. | |||
|
607 | ||||
|
608 | # XXX we do not catch all prune markers (eg rewritten then pruned) | |||
|
609 | # (fix me later) | |||
|
610 | foundany = False | |||
|
611 | for mark in succsmap.get(ctx.node(), ()): | |||
|
612 | if not mark[1]: | |||
|
613 | foundany = True | |||
|
614 | sset = _succs() | |||
|
615 | sset.markers.add(mark) | |||
|
616 | fullsuccessorsets.append(sset) | |||
|
617 | if not foundany: | |||
|
618 | fullsuccessorsets.append(_succs()) | |||
|
619 | ||||
588 | values = [] |
|
620 | values = [] | |
589 | for sset in ssets: |
|
621 | for sset in fullsuccessorsets: | |
590 | values.append({'successors': sset, 'markers': sset.markers}) |
|
622 | values.append({'successors': sset, 'markers': sset.markers}) | |
591 |
|
623 | |||
592 | return values |
|
624 | return values |
@@ -12,7 +12,7 b' Global setup' | |||||
12 | > [experimental] |
|
12 | > [experimental] | |
13 | > stabilization=all |
|
13 | > stabilization=all | |
14 | > [templates] |
|
14 | > [templates] | |
15 | > obsfatesuccessors = " as {join(successors, ", ")}" |
|
15 | > obsfatesuccessors = "{if(successors, " as ")}{join(successors, ", ")}" | |
16 | > obsfateverb = "{obsfateverb(successors)}" |
|
16 | > obsfateverb = "{obsfateverb(successors)}" | |
17 | > obsfateusers = "{if(obsfateusers(markers), " by {join(obsfateusers(markers), ", ")}")}" |
|
17 | > obsfateusers = "{if(obsfateusers(markers), " by {join(obsfateusers(markers), ", ")}")}" | |
18 | > obsfatedate = "{if(obsfatedate(markers), "{ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), " (at {min(obsfatedate(markers))|isodate})", " (between {min(obsfatedate(markers))|isodate} and {max(obsfatedate(markers))|isodate})")}")}" |
|
18 | > obsfatedate = "{if(obsfatedate(markers), "{ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), " (at {min(obsfatedate(markers))|isodate})", " (between {min(obsfatedate(markers))|isodate} and {max(obsfatedate(markers))|isodate})")}")}" | |
@@ -165,7 +165,7 b' with --hidden' | |||||
165 | | @ a468dc9b3633 |
|
165 | | @ a468dc9b3633 | |
166 | |/ Obsfate: rewritten as 4:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000); |
|
166 | |/ Obsfate: rewritten as 4:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000); | |
167 | | x f137d23bb3e1 |
|
167 | | x f137d23bb3e1 | |
168 | | | |
|
168 | | | Obsfate: pruned by test1 (at 2009-02-13 23:31 +0000); | |
169 | | x 471f378eab4c |
|
169 | | x 471f378eab4c | |
170 | |/ Obsfate: rewritten as 3:a468dc9b3633 by test1 (at 2009-02-13 23:31 +0000); |
|
170 | |/ Obsfate: rewritten as 3:a468dc9b3633 by test1 (at 2009-02-13 23:31 +0000); | |
171 | o ea207398892e |
|
171 | o ea207398892e | |
@@ -214,7 +214,7 b' visible.' | |||||
214 | | x a468dc9b3633 |
|
214 | | x a468dc9b3633 | |
215 | |/ Obsfate: rewritten as 4:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000); |
|
215 | |/ Obsfate: rewritten as 4:d004c8f274b9 by test2 (at 2001-04-19 04:25 +0000); | |
216 | | x f137d23bb3e1 |
|
216 | | x f137d23bb3e1 | |
217 | | | |
|
217 | | | Obsfate: pruned by test1 (at 2009-02-13 23:31 +0000); | |
218 | | x 471f378eab4c |
|
218 | | x 471f378eab4c | |
219 | |/ Obsfate: rewritten as 3:a468dc9b3633 by test1 (at 2009-02-13 23:31 +0000); |
|
219 | |/ Obsfate: rewritten as 3:a468dc9b3633 by test1 (at 2009-02-13 23:31 +0000); | |
220 | o ea207398892e |
|
220 | o ea207398892e | |
@@ -225,7 +225,7 b' visible.' | |||||
225 | | x a468dc9b3633 |
|
225 | | x a468dc9b3633 | |
226 | |/ Obsfate: [{"markers": [["a468dc9b36338b14fdb7825f55ce3df4e71517ad", ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], 0, [["user", "test2"]], [987654321.0, 0], null]], "successors": ["d004c8f274b9ec480a47a93c10dac5eee63adb78"]}] |
|
226 | |/ Obsfate: [{"markers": [["a468dc9b36338b14fdb7825f55ce3df4e71517ad", ["d004c8f274b9ec480a47a93c10dac5eee63adb78"], 0, [["user", "test2"]], [987654321.0, 0], null]], "successors": ["d004c8f274b9ec480a47a93c10dac5eee63adb78"]}] | |
227 | | x f137d23bb3e1 |
|
227 | | x f137d23bb3e1 | |
228 | | | |
|
228 | | | Obsfate: [{"markers": [["f137d23bb3e11dc1daeb6264fac9cb2433782e15", [], 0, [["user", "test1"]], [1234567890.0, 0], ["471f378eab4c5e25f6c77f785b27c936efb22874"]]], "successors": []}] | |
229 | | x 471f378eab4c |
|
229 | | x 471f378eab4c | |
230 | |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], 0, [["user", "test1"]], [1234567890.0, 0], null]], "successors": ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]}] |
|
230 | |/ Obsfate: [{"markers": [["471f378eab4c5e25f6c77f785b27c936efb22874", ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"], 0, [["user", "test1"]], [1234567890.0, 0], null]], "successors": ["a468dc9b36338b14fdb7825f55ce3df4e71517ad"]}] | |
231 | o ea207398892e |
|
231 | o ea207398892e | |
@@ -1218,7 +1218,7 b' Check templates' | |||||
1218 | o f897c6137566 |
|
1218 | o f897c6137566 | |
1219 | | |
|
1219 | | | |
1220 | | @ 471f378eab4c |
|
1220 | | @ 471f378eab4c | |
1221 | |/ |
|
1221 | |/ Obsfate: pruned; | |
1222 | o ea207398892e |
|
1222 | o ea207398892e | |
1223 |
|
1223 | |||
1224 |
|
1224 | |||
@@ -1635,11 +1635,11 b' Check output' | |||||
1635 |
|
1635 | |||
1636 | $ hg fatelog |
|
1636 | $ hg fatelog | |
1637 | @ 471f378eab4c |
|
1637 | @ 471f378eab4c | |
1638 | | |
|
1638 | | Obsfate: pruned by test (at 1970-01-01 00:00 +0000); | |
1639 | o ea207398892e |
|
1639 | o ea207398892e | |
1640 |
|
1640 | |||
1641 | $ hg fatelog -v |
|
1641 | $ hg fatelog -v | |
1642 | @ 471f378eab4c |
|
1642 | @ 471f378eab4c | |
1643 | | |
|
1643 | | Obsfate: pruned by test (at 1970-01-01 00:00 +0000); | |
1644 | o ea207398892e |
|
1644 | o ea207398892e | |
1645 |
|
1645 |
General Comments 0
You need to be logged in to leave comments.
Login now