Update What's Cooking -- do not lose graduated topics

Junio C Hamano committed Jul 20, 2008 at 22:57 UTC 56210413e5cf6e4e7b561f2af4c722dbaf5ea481
1 file changed +13 -5
UWC
+13 -5
@@ -127,6 +127,7 @@ sub print_whats_cooking {
127 print "\n", "-" x 64, "\n";
128 print "[$group]\n";
129 for my $topic (@{$wc->{" $group"}}) {
130 + next if ($topic->{"head"} eq '');
131 print "\n", $topic->{"head"};
132 print $topic->{"names"};
133 if ($topic->{"text"} ne '') {
@@ -144,6 +145,7 @@ sub delete_topic {
145 sub merge_whats_cooking {
146 my ($old_wc, $new_wc) = @_;
147 my $group;
148 + my @gone = ();
149
150 for $group (@{$old_wc->{"group list"}}) {
151 for my $topic (@{$old_wc->{" $group"}}) {
@@ -151,12 +153,10 @@ sub merge_whats_cooking {
153 my $newtopic = delete $new_wc->{"topic hash"}{$name};
154
155 if (!defined $newtopic) {
154 - $topic->{"text"} = ("<<deleted\n" .
155 - $topic->{"head"} .
156 - $topic->{"names"} .
157 - ">>\n\n" .
158 - $topic->{"text"});
156 + push @gone, +{ @{[ %$topic ]} };
157 + $topic->{"text"} = "";
158 $topic->{"names"} = "";
159 + $topic->{"head"} = "";
160 next;
161 }
162 if (($newtopic->{"names"} ne $topic->{"names"}) ||
@@ -180,6 +180,14 @@ sub merge_whats_cooking {
180 }
181
182 if (%{$new_wc->{"topic hash"}}) {
183 + if (@gone) {
184 + $group = 'Graduated to "master"';
185 + if (!exists $old_wc->{" $group"}) {
186 + unshift @{$old_wc->{"group list"}}, $group;
187 + $old_wc->{" $group"} = [];
188 + }
189 + push @{$old_wc->{" $group"}}, @gone;
190 + }
191 $group = "New Topics";
192 if (!exists $old_wc->{" $group"}) {
193 unshift @{$old_wc->{"group list"}}, $group;