diff -r 000000000000 -r 02cd6b52f378 synch_hg_p4/update_repos.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/synch_hg_p4/update_repos.pl Thu May 28 10:10:03 2009 +0100 @@ -0,0 +1,71 @@ +#! perl + +use strict; + +# update_repos.pl + +my %repos; + +foreach my $layer ("os", "mw", "app", "ostools") + { + opendir DIR, $layer; + my @packages = grep !/^\.\.?$/, readdir DIR; + closedir DIR; + foreach my $package (@packages) + { + next if (-f "$layer/$package"); + $repos{"$layer/$package"} = 1; + } + } + +print join("\n",sort keys %repos,"",""); + +my $tree = "d:/Mercurial/"; + +foreach my $layer ("os", "mw", "app", "ostools") + { + opendir DIR, "$tree$layer"; + my @packages = grep !/^\.\.?$/, readdir DIR; + closedir DIR; + foreach my $package (@packages) + { + next if (-f "$tree$package"); + if (defined $repos{"$layer/$package"}) + { + # this one is still relevant + next; + } + # package name has changed, I expect + print "Old package $layer/$package is now obsolete\n"; + rename "$tree$layer/$package", "$tree"."obsolete/".$package; + } + } + +foreach my $repo (sort keys %repos) + { + print "\n\nProcessing $repo\n"; + my ($layer,$package) = split /\//, $repo; + my $master = "$tree$repo/MCL_$package/.hg"; + + if (-d $master) + { + # repo already exists - move it into place + rename "$tree$repo/MCL_$package/.hg", "$repo/.hg"; + } + else + { + # New repo + print "New repository $repo\n"; + mkdir "$tree$layer"; + mkdir "$tree$layer/$package"; + mkdir "$tree$layer/$package/MCL_$package"; + } + + chdir $repo; + system("hg init") if (!-d ".hg"); + system("hg", "commit", "--addremove", "-m", "add wk04 Nokia source"); + chdir "../.."; + rename "$repo/.hg", "$tree$repo/MCL_$package/.hg"; + } + + \ No newline at end of file