@@ -67,10 +67,16 @@
67 67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
68 68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
method persist {} {
69 69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
70 70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
71 71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
method drop {} {
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ foreach {_ rev} [array get myrev] { $rev destroy }
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ foreach {_ branch} [array get mybranches] { $branch destroy }
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ foreach {_ taglist} [array get mytags] {
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ foreach tag $taglist { $tag destroy }
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return
72 78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
73 79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
74 80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# # ## ### ##### ######## #############
75 81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
## Implement the sink
76 82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -576,10 +582,20 @@
576 582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
577 583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} else {
578 584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return {}
579 585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
580 586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # General note: In the following methods we only modify the links
589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # between revisions and symbols to restructure the revision
590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # tree. We do __not__ destroy the objects. Given the complex links
591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # GC is difficult at this level. It is much easier to drop
592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # everything when we we are done. This happens in 'drop', using
593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # the state variable 'myrev', 'mybranches', and 'mytags'. What we
594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # have to persist, performed by 'persist', we know will be
595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # reachable through the revisions listed in 'myroots' and their
596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # children and symbols.
581 597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
582 598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
method AdjustNonTrunkDefaultBranch {revlist} {
583 599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set stop [$myroot child] ;# rev '1.2'
584 600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
585 601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
log write 5 file "Adjusting NTDB containing [nsp [llength $revlist] revision]"
@@ -640,11 +656,10 @@
640 656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
log write 3 file "Removing irrelevant revision [$rev11 revnr]"
641 657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
642 658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Cut out the old myroot revision.
643 659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
644 660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ldelete myroots $rev11 ; # Not a root any longer.
645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unset myrev([$rev11 revnr])
646 661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
647 662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
$first cutfromparent ; # Sever revision from parent revision.
648 663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {$stop ne ""} {
649 664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
$stop cutfromparent
650 665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
lappend myroots $stop ; # New root, after vendor branch
@@ -653,11 +668,10 @@
653 668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Cut out the vendor branch symbol
654 669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
655 670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set vendor [$first parentbranch]
656 671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {$vendor eq ""} { trouble internal "First NTDB revision has no branch" }
657 672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {[$vendor parent] eq $rev11} {
658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unset mybranches([$vendor branchnr])
659 673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
$rev11 removebranch $vendor
660 674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
$rev11 removechildonbranch $first
661 675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
$first cutfromparentbranch
662 676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
lappend myroots $first
663 677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -665,11 +679,10 @@
665 679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Change the type of first (typically from Change to Add):
666 680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
$first retype add
667 681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
668 682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Move any tags and branches from the old to the new root.
669 683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
$rev11 movesymbolsto $first
670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- $rev11 destroy
671 684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
672 685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
673 686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Mark all the special revisions as such
674 687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
foreach rev $revlist {
675 688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
log write 3 file "Revision on default branch: [$rev revnr]"
@@ -764,19 +777,15 @@
764 777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set branch [$root parentbranch]
765 778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set parent [$root parent]
766 779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set child [$root child]
767 780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
768 781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ldelete myroots $root
769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unset myrev([$root revnr])
770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- $child cutfromparent
771 782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
lappend myroots $child
772 783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- $parent removechildonbranch $root
784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ $child cutfromparent
774 785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
$parent removebranch $branch
775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- $branch destroy
777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- $root destroy
786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ $parent removechildonbranch $root
778 787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
779 788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return
780 789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
781 790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
782 791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
method LinesOfDevelopment {} {
@@ -847,12 +856,13 @@
847 856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
upvar 1 $nv ntdbroot
848 857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set ntdbroot $root
849 858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
850 859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set rev [$root child]
851 860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while {$rev ne ""} {
852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # See note [x].
853 861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
$rev removeallbranches
862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # See note [x].
863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
854 864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {[$rev isondefaultbranch]} {
855 865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set rev [$rev child]
856 866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} else {
857 867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set rev ""
858 868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -864,20 +874,17 @@
864 874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
865 875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {$rev ne ""} {
866 876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set lastntdb [$rev parent]
867 877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
$lastntdb cutfromchild
868 878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while {$rev ne ""} {
869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set next [$rev child]
870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unset myrev([$rev revnr])
871 879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
$rev removealltags
880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ $rev removeallbranches
872 881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Note [x]: We may still have had branches on the
873 882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# revision. Branches without revisions committed
874 883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# on them do not show up in the list of roots aka
875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # lines of development).
876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- $root removeallbranches
877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- $rev destroy
878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set rev $next
884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # lines of development.
885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set rev [$rev child]
879 886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
880 887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
881 888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return
882 889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
883 890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -884,27 +891,24 @@
884 891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# No NTDB stuff to deal with. First delete the branch object
885 892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# itself, after cutting all the various connections.
886 893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
887 894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set branch [$root parentbranch]
888 895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {$branch ne ""} {
889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set bparentrev [$branch parent]
890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- $bparentrev removebranch $branch
891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- $bparentrev removechildonbranch $root
892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- $branch destroy
896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set branchparent [$branch parent]
897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ $branchparent removebranch $branch
898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ $branchparent removechildonbranch $root
893 899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
894 900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
895 901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# The root is no such any longer either.
896 902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ldelete myroots $root
897 903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
898 904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Now go through the line and remove all its revisions.
899 905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
900 906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while {$root ne ""} {
901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set next [$root child]
902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unset myrev([$root revnr])
903 907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
$root removealltags
904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Note: See the note [x].
905 908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
$root removeallbranches
909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Note: See the note [x].
906 910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
907 911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# From cvs2svn: If this is the last default revision on a
908 912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# non-trunk default branch followed by a 1.2 revision,
909 913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# then the 1.2 revision depends on this one. FIXME: It is
910 914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# questionable whether this handling is correct, since the
@@ -921,12 +925,11 @@
921 925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {[$ntdbchild hasparent]} {
922 926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
lappend myroots [$ntdbchild parent]
923 927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
924 928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
925 929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- $root destroy
927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set root $next
930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set root [$root child]
928 931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
929 932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
930 933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return
931 934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
932 935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
933 936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!