diff -r b75d2e8f5ce2 src/SConscript
--- a/src/SConscript	Fri Aug 31 22:28:07 2007 -0700
+++ b/src/SConscript	Sun Sep 02 19:25:42 2007 -0400
@@ -183,6 +183,7 @@ for opt in env.ExportOptions:
 #
 sim_objects_fixed = True
 
+
 ########################################################################
 #
 # Manually turn python/generate.py into a python module and import it
@@ -198,6 +199,27 @@ exec file(generate_file.srcnode().abspat
 #
 from generate import Generate
 optionDict = dict([(opt, env[opt]) for opt in env.ExportOptions])
+
+try:
+    import  mercurial.hg, mercurial.ui, mercurial.util, mercurial.node
+    sconstruct_dir = str(SCons.Node.FS.default_fs.SConstruct_dir)
+    if not exists(sconstruct_dir) or not isdir(sconstruct_dir) or \
+            not exists(os.path.join(sconstruct_dir, ".hg")):
+        raise ValueError
+    repo = mercurial.hg.repository(mercurial.ui.ui(), sconstruct_dir)
+    rev = mercurial.node.nullrev + repo.changelog.count()
+    changenode = repo.changelog.node(rev)
+    changes = repo.changelog.read(changenode)
+    date = mercurial.util.datestr(changes[2])
+    optionDict['HG_REV'] = "%s:%s" % (rev, mercurial.node.hex(changenode))
+    optionDict['HG_USER'] = changes[1]
+    optionDict['HG_DATE'] = date
+    mercurial.demandimport.disable()
+except ImportError:
+    pass
+except:
+    mercurial.demandimport.disable()
+   
 generate = Generate(py_sources, sim_object_modfiles, optionDict)
 m5 = generate.m5
 
diff -r b75d2e8f5ce2 src/python/m5/main.py
--- a/src/python/m5/main.py	Fri Aug 31 22:28:07 2007 -0700
+++ b/src/python/m5/main.py	Sun Sep 02 19:25:42 2007 -0400
@@ -269,6 +269,12 @@ def main():
         print "M5 compiled %s" % internal.core.cvar.compileDate;
         print "M5 started %s" % datetime.datetime.now().ctime()
         print "M5 executing on %s" % socket.gethostname()
+
+        hg_def = defines.m5_build_env
+        if 'HG_REV' in hg_def:
+            print 'Merucrial Revision %s [%s] %s' % (hg_def['HG_REV'],
+                    hg_def['HG_USER'], hg_def['HG_DATE'])
+
         print "command line:",
         for argv in sys.argv:
             print argv,
