changeset 662:43c61fd6fea4

Merge
author Chris Cannam
date Fri, 01 Mar 2013 09:20:11 +0000
parents b1ba156b66e6 (diff) 005b4530c6ee (current diff)
children f9b805d8cab4 cfe684675e81
files src/mainwindow.cpp
diffstat 85 files changed, 448 insertions(+), 233 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Fri Nov 09 14:48:02 2012 +0000
+++ b/.hgignore	Fri Mar 01 09:20:11 2013 +0000
@@ -26,3 +26,4 @@
 *.dmg
 *.xcodeproj
 *.bak
+*.msi
--- a/.hgtags	Fri Nov 09 14:48:02 2012 +0000
+++ b/.hgtags	Fri Mar 01 09:20:11 2013 +0000
@@ -21,3 +21,4 @@
 8bcf7ce9b1d209b94f71593545fc5de7c008f5a3 easyhg_v1.2_win32_2
 abfef4acceca78078fe0c3b7fa8794f9ec77a4d3 easyhg_v1.2.1
 aade37785eca08d98afa7d12a66a181e1a2f4e2c easyhg_v1.2.2
+4d39a93cab9e2ba6ca08b17781b2a37ab4938e89 easyhg_v1.3.0
--- a/CHANGELOG	Fri Nov 09 14:48:02 2012 +0000
+++ b/CHANGELOG	Fri Mar 01 09:20:11 2013 +0000
@@ -1,3 +1,14 @@
+
+Changes in v1.3.0 since v1.2.2:
+ * Some new preferences and adjustments to prefs layout (Sam Izzo)
+ * Some new keyboard shortcuts (Sam Izzo)
+ * Add "Show in Explorer" to context menu (platform-dependent) (Sam Izzo)
+ * Avoid reseeking history to bottom on closing a branch (Felipe Pozo)
+ * Add optional limit to number of items in graph (Mikel Fernandez)
+ * Use HKMU registry option for smoother install on Windows multi-user setup
+ * Show tag if present on merge commit
+ * Avoid issuing dire warning when closing only one head of default branch
+ * Fix toolbar layout when building with Qt 4.8
 
 Changes in v1.2.2 since v1.2.1:
  * Fix failure to provide IV arg to AES CBC constructor in PyCrypto
--- a/README.txt	Fri Nov 09 14:48:02 2012 +0000
+++ b/README.txt	Fri Mar 01 09:20:11 2013 +0000
@@ -44,8 +44,8 @@
 
 EasyMercurial is
 Copyright 2010 Jari Korhonen
-Copyright 2010-2012 Chris Cannam
-Copyright 2010-2012 Queen Mary, University of London
+Copyright 2010-2013 Chris Cannam
+Copyright 2010-2013 Queen Mary, University of London
 
 
 
--- a/easyhg.pro	Fri Nov 09 14:48:02 2012 +0000
+++ b/easyhg.pro	Fri Mar 01 09:20:11 2013 +0000
@@ -4,6 +4,9 @@
 TEMPLATE = app
 TARGET = EasyMercurial
 
+#QT += widgets
+#QMAKE_CXXFLAGS += -DQT_DISABLE_DEPRECATED_BEFORE=0x000000
+
 # We use the 10.5 SDK and Carbon for all 32-bit OS/X,
 # and 10.6 with Cocoa for all 64-bit. (Since EasyHg 1.2,
 # we can sadly no longer build for 10.4 because we need
--- a/easyhg.py	Fri Nov 09 14:48:02 2012 +0000
+++ b/easyhg.py	Fri Mar 01 09:20:11 2013 +0000
@@ -44,7 +44,7 @@
 #
 easyhg_pyqt_ok = True
 try:
-    from PyQt4 import Qt, QtCore, QtGui
+    from PyQt4 import QtCore, QtGui
 except ImportError:
     easyhg_pyqt_ok = False
 easyhg_qtapp = None
@@ -263,9 +263,7 @@
         if self.auth_store.passwd: passwd_field.setText(self.auth_store.passwd)
         layout.addWidget(QtGui.QLabel(_('Password:')), 2, 0)
         layout.addWidget(passwd_field, 2, 1)
-
-        user_field.connect(user_field, Qt.SIGNAL("textChanged(QString)"),
-                           passwd_field, Qt.SLOT("clear()"))
+        user_field.textChanged.connect(passwd_field.clear)
 
         remember_field = None
         if self.auth_store.use_auth_file:
@@ -276,8 +274,7 @@
             warning_field = QtGui.QLabel()
             warning_field.setText(_('<qt><i><small>Do not use this option if anyone else has access to your computer!</small></i><br></qt>'))
             warning_field.hide()
-            remember_field.connect(remember_field, Qt.SIGNAL("clicked()"),
-                                   warning_field, Qt.SLOT("show()"))
+            remember_field.clicked.connect(warning_field.show)
             layout.addWidget(warning_field, 4, 1, QtCore.Qt.AlignRight)
 
         bb = QtGui.QDialogButtonBox()
@@ -286,8 +283,8 @@
         cancel.setDefault(False)
         cancel.setAutoDefault(False)
         ok.setDefault(True)
-        bb.connect(ok, Qt.SIGNAL("clicked()"), dialog, Qt.SLOT("accept()"))
-        bb.connect(cancel, Qt.SIGNAL("clicked()"), dialog, Qt.SLOT("reject()"))
+        ok.clicked.connect(dialog.accept)
+        cancel.clicked.connect(dialog.reject)
         layout.addWidget(bb, 5, 0, 1, 2)
 
         dialog.setWindowTitle(_('EasyMercurial: Login'))
--- a/easyhg.wxs	Fri Nov 09 14:48:02 2012 +0000
+++ b/easyhg.wxs	Fri Mar 01 09:20:11 2013 +0000
@@ -5,7 +5,7 @@
       Id="*"
       Language="1033"
       Codepage="1252" 
-      Version="1.2.2" 
+      Version="1.3.0" 
       UpgradeCode="B82DFDA9-B9DE-49BC-93E5-0B96F9DEB04B"
       Manufacturer="Queen Mary, University of London">
     
@@ -133,9 +133,9 @@
                   KeyPath="yes"/>
               <File
                   Id="pydll"
-                  Name="python26.dll"
+                  Name="python27.dll"
                   DiskId="1"
-                  Source="d:\easyhg-bundle-dependencies\python26.dll"/>
+                  Source="d:\easyhg-bundle-dependencies\python27.dll"/>
               <File
                   Id="hglib"
                   Name="library.zip"
@@ -146,6 +146,131 @@
                   Name="TortoisePlink.exe"
                   DiskId="1"
                   Source="d:\easyhg-bundle-dependencies\TortoisePlink.exe"/>
+              <File
+                  Id="ctypes"
+                  Name="_ctypes.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\_ctypes.pyd"/>
+              <File
+                  Id="ctypestest"
+                  Name="_ctypes_test.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\_ctypes_test.pyd"/>
+              <File
+                  Id="elementtree"
+                  Name="_elementtree.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\_elementtree.pyd"/>
+              <File
+                  Id="hashlib"
+                  Name="_hashlib.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\_hashlib.pyd"/>
+              <File
+                  Id="socket"
+                  Name="_socket.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\_socket.pyd"/>
+              <File
+                  Id="ssl"
+                  Name="_ssl.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\_ssl.pyd"/>
+              <File
+                  Id="winsysloader"
+                  Name="_win32sysloader.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\_win32sysloader.pyd"/>
+              <File
+                  Id="bz"
+                  Name="bz2.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\bz2.pyd"/>
+              <File
+                  Id="dulwichobjects"
+                  Name="dulwich._objects.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\dulwich._objects.pyd"/>
+              <File
+                  Id="dulwichpack"
+                  Name="dulwich._pack.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\dulwich._pack.pyd"/>
+              <File
+                  Id="libsvncore"
+                  Name="libsvn._core.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\libsvn._core.pyd"/>
+              <File
+                  Id="libsvnclient"
+                  Name="libsvn._client.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\libsvn._client.pyd"/>
+              <File
+                  Id="libsvndelta"
+                  Name="libsvn._delta.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\libsvn._delta.pyd"/>
+              <File
+                  Id="libsvnra"
+                  Name="libsvn._ra.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\libsvn._ra.pyd"/>
+              <File
+                  Id="libsvnwc"
+                  Name="libsvn._wc.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\libsvn._wc.pyd"/>
+              <File
+                  Id="mercurialbase"
+                  Name="mercurial.base85.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\mercurial.base85.pyd"/>
+              <File
+                  Id="mercurialbdiff"
+                  Name="mercurial.bdiff.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\mercurial.bdiff.pyd"/>
+              <File
+                  Id="mercurialdiffhelpers"
+                  Name="mercurial.diffhelpers.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\mercurial.diffhelpers.pyd"/>
+              <File
+                  Id="mercurialmpatch"
+                  Name="mercurial.mpatch.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\mercurial.mpatch.pyd"/>
+              <File
+                  Id="mercurialosutil"
+                  Name="mercurial.osutil.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\mercurial.osutil.pyd"/>
+              <File
+                  Id="mercurialparsers"
+                  Name="mercurial.parsers.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\mercurial.parsers.pyd"/>
+              <File
+                  Id="pyexpat"
+                  Name="pyexpat.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\pyexpat.pyd"/>
+              <File
+                  Id="unicodedata"
+                  Name="unicodedata.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\unicodedata.pyd"/>
+              <File
+                  Id="QtCorepy"
+                  Name="PyQt4.QtCore.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\PyQt4.QtCore.pyd" />
+              <File
+                  Id="QtGuipy"
+                  Name="PyQt4.QtGui.pyd"
+                  DiskId="1"
+                  Source="d:\easyhg-bundle-dependencies\PyQt4.QtGui.pyd" />
             </Component>		  
 
             <Component
@@ -169,38 +294,62 @@
                   KeyPath="yes"/>
             </Component>		  
 
-            <Directory Id="PyQt4" Name="PyQt4">
-              <Component
-                  Id="PyQt4"
-                  Guid="5EE2BE01-3D91-44C5-869A-5E8167079AA0">
-                <File
-                    Id="init"
-                    Name="__init__.py"
-                    DiskId="1"
-                    Source="d:\easyhg-bundle-dependencies\PyQt4\__init__.py"
-                    KeyPath="yes"/>
-                <File
-                    Id="inito"
-                    Name="__init__.pyo"
-                    DiskId="1"
-                    Source="d:\easyhg-bundle-dependencies\PyQt4\__init__.pyo" />
-                <File
-                    Id="Qtpy"
-                    Name="Qt.pyd"
-                    DiskId="1"
-                    Source="d:\easyhg-bundle-dependencies\PyQt4\Qt.pyd" />
-                <File
-                    Id="QtCorepy"
-                    Name="QtCore.pyd"
-                    DiskId="1"
-                    Source="d:\easyhg-bundle-dependencies\PyQt4\QtCore.pyd" />
-                <File
-                    Id="QtGuipy"
-                    Name="QtGui.pyd"
-                    DiskId="1"
-                    Source="d:\easyhg-bundle-dependencies\PyQt4\QtGui.pyd" />
-              </Component>
-            </Directory>
+	    <Directory Id="Crypto" Name="Crypto">
+	      <Directory Id="Cipher" Name="Cipher">
+		<Component
+		    Id="cryptocipher"
+		    Guid="FB7C7C7E-FC62-4024-9E7E-47034B416286">
+		  <File
+		      Id="cipherinit"
+		      Name="__init__.py"
+		      DiskId="1"
+		      Source="d:\easyhg-bundle-dependencies\Crypto\Cipher\__init__.py" />
+		  <File
+		      Id="cipheraesd"
+		      Name="_AES.pyd"
+		      DiskId="1"
+		      Source="d:\easyhg-bundle-dependencies\Crypto\Cipher\_AES.pyd" />
+		  <File
+		      Id="cipheraes"
+		      Name="AES.py"
+		      DiskId="1"
+		      Source="d:\easyhg-bundle-dependencies\Crypto\Cipher\AES.py" />
+		  <File
+		      Id="cipherblockalgo"
+		      Name="blockalgo.py"
+		      DiskId="1"
+		      Source="d:\easyhg-bundle-dependencies\Crypto\Cipher\blockalgo.py" />
+		</Component>
+	      </Directory>
+	      <Directory Id="Util" Name="Util">
+		
+		<Component
+		    Id="cryptoutil"
+		    Guid="9B5FB64F-B5B3-4E36-A4E6-1EC648470557">
+		  <File
+		      Id="utilinit"
+		      Name="__init__.py"
+		      DiskId="1"
+		      Source="d:\easyhg-bundle-dependencies\Crypto\Util\__init__.py" />
+		  <File
+		      Id="utilpy3compat"
+		      Name="py3compat.py"
+		      DiskId="1"
+		      Source="d:\easyhg-bundle-dependencies\Crypto\Util\py3compat.py" />
+		</Component>
+	      </Directory>
+	      
+	      <Component
+		  Id="crypto"
+		  Guid="AB5D6864-6D47-4C51-A132-5E0EC5BE1EF8">
+		<File
+		    Id="cryptoinit"
+		    Name="__init__.py"
+		    DiskId="1"
+		    Source="d:\easyhg-bundle-dependencies\Crypto\__init__.py" />
+	      </Component>
+
+	    </Directory>
 
         </Directory>
       </Directory>
@@ -209,7 +358,7 @@
         <Directory Id="ProgramMenuDir" Name="EasyMercurial">
           <Component Id="ProgramMenuDir" Guid="2E8BDEA0-A6E4-4607-854D-E317A23A535B">
             <RemoveFolder Id="ProgramMenuDir" On="uninstall"/>
-            <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes"/>
+            <RegistryValue Root="HKMU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes"/>
           </Component>
         </Directory>
       </Directory>
@@ -225,8 +374,10 @@
       <ComponentRef Id="Qt4"/>
       <ComponentRef Id="hg"/>
       <ComponentRef Id="sip"/>
+      <ComponentRef Id="crypto"/>
+      <ComponentRef Id="cryptocipher"/>
+      <ComponentRef Id="cryptoutil"/>
       <ComponentRef Id="kdiff3"/>
-      <ComponentRef Id="PyQt4"/>
       <ComponentRef Id="ProgramMenuDir"/>
     </Feature>
 
--- a/src/annotatedialog.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/annotatedialog.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/annotatedialog.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/annotatedialog.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/changeset.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/changeset.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/changeset.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/changeset.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/changesetdetailitem.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/changesetdetailitem.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/changesetdetailitem.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/changesetdetailitem.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/changesetitem.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/changesetitem.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
@@ -578,6 +578,21 @@
         paint->restore();
     }
 
+    QStringList tags = m_changeset->tags();
+    if (!tags.empty()) {
+        QStringList nonTipTags;
+        foreach (QString t, tags) {
+            if (t != "tip") nonTipTags.push_back(t);
+        }
+        if (!nonTipTags.empty()) {
+            QString tagText = nonTipTags.join(" ").trimmed();
+            int tw = fm.width(tagText);
+            paint->fillRect(QRectF(x0 + size/2 + 2, 0, tw + 4, fh - 1),
+                            QBrush(Qt::yellow));
+            paint->drawText(x0 + size/2 + 4, fm.ascent() - 1, tagText);
+        }
+    }
+
     if (m_current && showProperLines) {
         paint->setRenderHint(QPainter::SmoothPixmapTransform, true);
         int starSize = fh * 1.5;
--- a/src/changesetitem.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/changesetitem.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/changesetscene.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/changesetscene.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/changesetscene.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/changesetscene.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/changesetview.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/changesetview.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/changesetview.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/changesetview.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/clickablelabel.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/clickablelabel.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/colourset.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/colourset.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/colourset.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/colourset.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/common.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/common.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/common.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/common.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/confirmcommentdialog.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/confirmcommentdialog.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/confirmcommentdialog.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/confirmcommentdialog.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/connectionitem.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/connectionitem.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/connectionitem.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/connectionitem.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/debug.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/debug.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/debug.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/debug.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/filestates.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/filestates.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/filestates.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/filestates.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/filestatuswidget.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/filestatuswidget.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/filestatuswidget.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/filestatuswidget.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/findwidget.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/findwidget.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/findwidget.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/findwidget.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/fswatcher.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/fswatcher.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
@@ -154,7 +154,9 @@
     FsWatcher *watcher = reinterpret_cast<FsWatcher *>(clientCallBackInfo);
     const char *const *cpaths = reinterpret_cast<const char *const *>(paths);
     for (size_t i = 0; i < numEvents; ++i) {
+#ifdef DEBUG_FSWATCHER
         std::cerr << "path " << i << " = " << cpaths[i] << std::endl;
+#endif
         watcher->fsDirectoryChanged(QString::fromLocal8Bit(cpaths[i]));
     }
 }
@@ -371,7 +373,9 @@
 bool
 FsWatcher::manuallyCheckTrackedFiles()
 {
+#ifdef DEBUG_FSWATCHER
     std::cerr << "FsWatcher::manuallyCheckTrackedFiles" << std::endl;
+#endif
     bool foundChanges = false;
 
     for (PathTimeMap::iterator i = m_trackedFileUpdates.begin();
--- a/src/fswatcher.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/fswatcher.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/grapher.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/grapher.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/grapher.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/grapher.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/hgaction.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/hgaction.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/hgignoredialog.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/hgignoredialog.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/hgignoredialog.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/hgignoredialog.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/hgrunner.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/hgrunner.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/hgrunner.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/hgrunner.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/hgtabwidget.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/hgtabwidget.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/hgtabwidget.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/hgtabwidget.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/historywidget.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/historywidget.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/historywidget.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/historywidget.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/incomingdialog.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/incomingdialog.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/incomingdialog.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/incomingdialog.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/logparser.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/logparser.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/logparser.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/logparser.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/main.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/main.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
@@ -18,13 +18,33 @@
 #include "mainwindow.h"
 #include "common.h"
 #include "debug.h"
+#include "version.h"
 
 #include <QApplication>
 #include <QTranslator>
 #include <QDir>
 
+using std::cout;
+using std::endl;
+
 int main(int argc, char *argv[])
 {
+    if (argc == 2 &&
+        (!strcmp(argv[1], "-v") ||
+         !strcmp(argv[1], "--version"))) {
+        cout << "EasyMercurial v" << EASYHG_VERSION << "\n"
+             << "Copyright (c) 2010 Jari Korhonen\n"
+             << "Copyright (c) 2013 Chris Cannam\n"
+             << "Copyright (c) 2013 Queen Mary, University of London\n"
+             << "This program is free software; you can redistribute it and/or\n"
+             << "modify it under the terms of the GNU General Public License as\n"
+             << "published by the Free Software Foundation; either version 2 of the\n"
+             << "License, or (at your option) any later version.  See the file\n"
+             << "COPYING included with this distribution for more information."
+             << endl;
+        return 0;
+    }
+
     QApplication app(argc, argv);
 
     QApplication::setOrganizationName("easymercurial");
--- a/src/mainwindow.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/mainwindow.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
@@ -121,7 +121,6 @@
     connect(m_hgTabs, SIGNAL(showAllChanged()),
             this, SLOT(showAllChanged()));
 
-    setUnifiedTitleAndToolBarOnMac(true);
     connectActions();
     clearState();
     enableDisableActions();
@@ -194,9 +193,9 @@
                          "<p>EasyMercurial is based on HgExplorer by "
                          "Jari Korhonen, with thanks.</p>"
                          "<p style=\"margin-left: 2em;\">"
-                         "Copyright &copy; 2012 Queen Mary, University of London.<br>"
+                         "Copyright &copy; 2013 Queen Mary, University of London.<br>"
                          "Copyright &copy; 2010 Jari Korhonen.<br>"
-                         "Copyright &copy; 2012 Chris Cannam."
+                         "Copyright &copy; 2013 Chris Cannam."
                          "</p>"
                          "<p style=\"margin-left: 2em;\">"
                          "This program requires Mercurial, by Matt Mackall and others.<br>"
@@ -572,14 +571,22 @@
 
     QString defaultWarning;
 
+    bool haveSprouts = (m_hgMergeAct->isEnabled());
+
     QString branchText;
     if (m_currentBranch == "" || m_currentBranch == "default") {
         branchText = tr("the default branch");
-        defaultWarning = tr("<p><b>Warning:</b> you are asking to close the default branch. This is not usually a good idea!</p>");
+        if (!haveSprouts) {
+            defaultWarning = tr("<p><b>Warning:</b> you are asking to close the default branch. This is not usually a good idea!</p>");
+        }
     } else {
         branchText = tr("branch \"%1\"").arg(m_currentBranch);
     }
 
+    if (haveSprouts) {
+        branchText = tr("a sub-branch of %1").arg(branchText);
+    }
+
     if (ConfirmCommentDialog::confirmAndGetLongComment
         (this,
          cf,
@@ -3086,24 +3093,44 @@
 {
     int sz = 32;
 
+    QString spacerBefore, spacerAfter;
+
+    spacerBefore = spacerAfter = " ";
+
+#ifdef Q_OS_MAC
+    spacerAfter = "";
+#endif
+
+#ifdef Q_OS_WIN32
+    spacerBefore = spacerAfter = "  ";
+#endif
+
     bool spacingReqd = false;
     QString spacer = "";
-#ifndef Q_OS_MAC
-    spacingReqd = true;
-    spacer = " ";
-#ifdef Q_OS_WIN32
-    spacer = "  ";
-#endif
-#endif
+
+    m_repoToolBar = addToolBar(tr("Remote"));
+    m_repoToolBar->setIconSize(QSize(sz, sz));
+    if (spacerBefore != "") {
+        m_repoToolBar->addWidget(new QLabel(spacerBefore));
+    }
+    m_repoToolBar->addAction(m_openAct);
+    if (spacerAfter != "") {
+        m_repoToolBar->addWidget(new QLabel(spacerAfter));
+    }
+    m_repoToolBar->addSeparator();
+    m_repoToolBar->addAction(m_hgIncomingAct);
+    m_repoToolBar->addAction(m_hgPullAct);
+    m_repoToolBar->addAction(m_hgPushAct);
+    m_repoToolBar->setMovable(false);
 
     m_workFolderToolBar = new QToolBar(tr("Work"));
     addToolBar(Qt::LeftToolBarArea, m_workFolderToolBar);
     m_workFolderToolBar->setIconSize(QSize(sz, sz));
-    if (spacingReqd) {
-        QWidget *w = new QWidget;
-        w->setFixedHeight(6);
-        m_workFolderToolBar->addWidget(w);
-    }
+
+    QWidget *w = new QWidget;
+    w->setFixedHeight(6);
+    m_workFolderToolBar->addWidget(w);
+
     m_workFolderToolBar->addAction(m_hgFolderDiffAct);
     m_workFolderToolBar->addSeparator();
     m_workFolderToolBar->addAction(m_hgRevertAct);
@@ -3115,21 +3142,6 @@
     m_workFolderToolBar->addAction(m_hgRemoveAct);
     m_workFolderToolBar->setMovable(false);
 
-    m_repoToolBar = addToolBar(tr("Remote"));
-    m_repoToolBar->setIconSize(QSize(sz, sz));
-    if (spacingReqd) {
-        m_repoToolBar->addWidget(new QLabel(spacer));
-    }
-    m_repoToolBar->addAction(m_openAct);
-    if (spacingReqd) {
-        m_repoToolBar->addWidget(new QLabel(spacer));
-    }
-    m_repoToolBar->addSeparator();
-    m_repoToolBar->addAction(m_hgIncomingAct);
-    m_repoToolBar->addAction(m_hgPullAct);
-    m_repoToolBar->addAction(m_hgPushAct);
-    m_repoToolBar->setMovable(false);
-
     updateToolBarStyle();
 }
 
--- a/src/mainwindow.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/mainwindow.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/moreinformationdialog.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/moreinformationdialog.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/moreinformationdialog.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/moreinformationdialog.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/multichoicedialog.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/multichoicedialog.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/multichoicedialog.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/multichoicedialog.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/panned.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/panned.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/panned.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/panned.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/panner.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/panner.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/panner.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/panner.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/recentfiles.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/recentfiles.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/recentfiles.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/recentfiles.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/repositorydialog.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/repositorydialog.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/repositorydialog.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/repositorydialog.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
 
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/selectablelabel.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/selectablelabel.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/selectablelabel.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/selectablelabel.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/settingsdialog.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/settingsdialog.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/settingsdialog.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/settingsdialog.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/squeezedlabel.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/squeezedlabel.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/squeezedlabel.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/squeezedlabel.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/startupdialog.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/startupdialog.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/startupdialog.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/startupdialog.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/textabbrev.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/textabbrev.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/textabbrev.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/textabbrev.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/uncommitteditem.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/uncommitteditem.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/uncommitteditem.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/uncommitteditem.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/version.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/version.h	Fri Mar 01 09:20:11 2013 +0000
@@ -1,1 +1,1 @@
-#define EASYHG_VERSION "1.2.2"
+#define EASYHG_VERSION "1.3"
--- a/src/versiontester.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/versiontester.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/versiontester.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/versiontester.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on hgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/workstatuswidget.cpp	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/workstatuswidget.cpp	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as
--- a/src/workstatuswidget.h	Fri Nov 09 14:48:02 2012 +0000
+++ b/src/workstatuswidget.h	Fri Mar 01 09:20:11 2013 +0000
@@ -5,8 +5,8 @@
 
     Based on HgExplorer by Jari Korhonen
     Copyright (c) 2010 Jari Korhonen
-    Copyright (c) 2012 Chris Cannam
-    Copyright (c) 2012 Queen Mary, University of London
+    Copyright (c) 2013 Chris Cannam
+    Copyright (c) 2013 Queen Mary, University of London
     
     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License as