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;