Add breakdeps\origins.txt to record the original location of modified files
Add tools\check_for_mercurial_updates.pl which reads origins.txt and looks to see if the originals have changed in Mercurial
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/breakdeps/origins.txt Wed Nov 10 17:16:02 2010 +0000
@@ -0,0 +1,47 @@
+breakdeps /sf/os/ossrv genericopenlibs/openenvcore/backend/group backend.mmp
+breakdeps /sf/os/ossrv genericopenlibs/openenvcore/backend/src/corebackend usocket.cpp
+
+breakdeps /sf/mw/classicui uifw/AvKon/group avkon.mmp
+breakdeps /sf/mw/classicui uifw/AvKon/src AknEcs.cpp
+
+breakdeps /sf/mw/classicui lafagnosticuifoundation/cone/group CONE.MMP
+breakdeps /sf/mw/classicui lafagnosticuifoundation/cone/src coesndpy.cpp
+
+breakdeps/DRMEngine /sf/mw/drm omadrm/drmengine/drmclock/Src DRMClock.cpp
+breakdeps/DRMEngine /sf/mw/drm omadrm/drmengine/drmclock/Inc DRMClock.h
+breakdeps/DRMEngine /sf/mw/drm omadrm/drmengine/server/src DRMRightsServer.cpp
+breakdeps/DRMEngine /sf/mw/drm omadrm/drmengine/keystorage/src DrmStdKeyStorage.cpp
+breakdeps/DRMEngine /sf/mw/drm omadrm/drmengine/group DrmStdKeyStorage.mmp
+breakdeps/DRMEngine /sf/mw/drm omadrm/drmengine/group RightsServer.mmp
+breakdeps/DRMEngine /sf/mw/drm omadrm/drmengine/roap/src RoapEng.cpp
+breakdeps/DRMEngine /sf/mw/drm omadrm/drmengine/group ROAPHandler.mmp
+
+breakdeps /sf/mw/classicui uifw/EikStd/srvuisrc EIKSRVUI.MMP
+breakdeps /sf/mw/classicui uifw/EikStd/srvuisrc eikkeysoundserver.cpp
+
+breakdeps/java_stubs /sf/app/jrt java_stubs/javadebugapi/build javadebugapi.mmp
+breakdeps/java_stubs /sf/app/jrt java_stubs/javaenvinfo/build javaenvinfo.mmp
+breakdeps/java_stubs /sf/app/jrt java_stubs/javaregistry/clientserver/client/build javaregclient.mmp
+
+breakdeps/MCSSatHandler /sf/mw/homescreensrv menucontentsrv/extsrc mcssathandler.cpp
+breakdeps/MCSSatHandler /sf/mw/homescreensrv menucontentsrv/extinc mcssathandler.h
+breakdeps/MCSSatHandler /sf/mw/homescreensrv menucontentsrv/group mcssathandler.mmp
+
+breakdeps /sf/mw/svgt svgtopt/SVG/SVGEngine/group SVGEngine.mmp
+breakdeps /sf/mw/svgt svgtopt/SVG/SVGEngine/src Svgdecoder.cpp
+breakdeps /sf/mw/svgt svgtopt/SVG/SVGImpl/src SVGDocumentImpl.cpp
+breakdeps /sf/mw/svgt svgtopt/SVG/SVGEngine/src SVGEngineImpl.cpp
+
+startup /sf/os/devicesrv sysstatemgmt/systemstatereferenceplugins/custcmd/group customcmds.mmp
+startup /sf/os/devicesrv sysstatemgmt/systemstatereferenceplugins/custcmd/eabi customcmdsu.def
+startup /sf/os/devicesrv sysstatemgmt/ssmcmdlists/group ssmcmdlists.mmp
+startup /sf/os/devicesrv sysstatemgmt/systemstatereferenceplugins/custcmd/src ssmcustomcmdfactory.cpp
+startup /sf/os/devicesrv sysstatemgmt/ssmcmdlists/inc ssmdlldatadefs.rh
+startup /sf/os/devicesrv sysstatemgmt/ssmpolicyplugins/ssmstartuppolicy/src ssmstartuppolicy.cpp
+startup /sf/os/devicesrv sysstatemgmt/ssmpolicyplugins/ssmstartuppolicy/group ssmstartuppolicy.mmp
+
+perfopts /sf/os/graphics openvg/openvgrefimplementation/sfopenvg/openvg openvg.cpp
+perfopts /sf/os/graphics openvg/openvgrefimplementation/sfopenvg/group openvg.mmp
+perfopts /sf/os/graphics openvg/openvgrefimplementation/sfopenvg/group openvgu.mmp
+perfopts /sf/os/graphics openvg/openvgrefimplementation/sfopenvg/group sfopenvg.mmp
+perfopts /sf/os/graphics openvg/openvgrefimplementation/sfopenvg/openvgu vgu.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/check_for_mercurial_updates.pl Wed Nov 10 17:16:02 2010 +0000
@@ -0,0 +1,54 @@
+# Copyright (c) 2010 Symbian Foundation Ltd.
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Symbian Foundation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Check in Mercurial for updates to files branched to make stem versions
+
+use strict;
+use Getopt::Long;
+
+my $old_rev = "PDK_3.0.2";
+my $new_rev = "PDK_3.0.4";
+my $mercurial_tree = "Q:";
+GetOptions(
+ "old=s" => \$old_rev, # revision which is the current basis for modified files
+ "new=s" => \$new_rev, # new revision we need to catch up to
+ "hgtree=s" => \$mercurial_tree, # location of a tree of mercurial repositories
+ );
+
+sub do_system(@)
+ {
+ my @args = @_;
+ my $cmd = join(" ", @args);
+ # print STDERR "* $cmd\n";
+ my @lines = `$cmd`;
+ # print STDERR join(" ", "", @lines);
+ return @lines;
+ }
+
+my $line;
+while ($line = <>)
+ {
+ chomp $line;
+ my ($localdir,$repo,$path,$file) = split /\t/, $line;
+ next if (!defined $file);
+
+ my @output = do_system ("hg", "--cwd", "$mercurial_tree$repo", "status", "--rev", $old_rev, "--rev", $new_rev, "$path/$file");
+ next if (!@output); # must be unchanged
+
+ # what's the difference?
+ my @diff_output = do_system ("hg", "--cwd", "$mercurial_tree$repo", "diff", "--rev", $old_rev, "--rev", $new_rev, "$path/$file");
+ next if (!@diff_output); # none
+
+ print "\n$localdir/$file might need updating\n", @diff_output;
+ }
+