subrepo: don't commit in subrepo if it's clean stable
authorKevin Bullock <kbullock@ringworld.org>
Tue, 19 Jul 2011 13:43:53 -0500
branchstable
changeset 14898 95ced9f5bf29
parent 14897 b9daa5b7a3af
child 14899 6d1d0b9c4ecc
child 14903 a934b9249574
subrepo: don't commit in subrepo if it's clean If a subrepo has changed relative to the outer repo's substate, but the subrepo itself is clean, we don't need to commit in the subrepo.
mercurial/subrepo.py
tests/test-mq-subrepo.t
--- a/mercurial/subrepo.py	Mon Jul 18 22:58:21 2011 +0200
+++ b/mercurial/subrepo.py	Tue Jul 19 13:43:53 2011 -0500
@@ -420,6 +420,10 @@
         return self._repo._checknested(self._repo.wjoin(path))
 
     def commit(self, text, user, date):
+        # don't bother committing in the subrepo if it's only been
+        # updated
+        if not self.dirty(True):
+            return self._repo['.'].hex()
         self._repo.ui.debug("committing subrepo %s\n" % subrelpath(self))
         n = self._repo.commit(text, user, date)
         if not n:
--- a/tests/test-mq-subrepo.t	Mon Jul 18 22:58:21 2011 +0200
+++ b/tests/test-mq-subrepo.t	Tue Jul 19 13:43:53 2011 -0500
@@ -348,3 +348,14 @@
   % debugsub should be empty
 
   $ cd ..
+
+
+correctly handle subrepos with patch queues
+  $ mkrepo repo-subrepo-with-queue
+  $ mksubrepo sub
+  adding a
+  $ hg -R sub qnew sub0.diff
+  $ echo sub = sub >> .hgsub
+  $ hg add .hgsub
+  $ hg qnew 0.diff
+  committing subrepository sub