diff mercurial/subrepo.py @ 17895:17c030014ddf stable

subrepo: only do clean update when overwrite is set (issue3276) Files in a subrepo were overwritten on update. But this should only happen on a clean update (example: -C is specified). Use the overwrite parameter introduced for svn subrepos in c19b9282d3a7 to decide whether to merge changes (as update) or remove them (as clean). The new function hg.updaterepo is intruduced to keep all update calls in hg. test-subrepo.t is extended to test if an untracked file is overwritten (issue3276). (Update -C is already tested in many places.) The first two chunks are debugging output which has changed. (Because overwrite is not always true anymore for subrepos) All other tests still pass without any change.
author Simon Heimberg <simohe@besonet.ch>
date Wed, 24 Oct 2012 18:45:22 +0200
parents f4ee2e959696
children a9f4a6076740 0c10cf819146
line wrap: on
line diff
--- a/mercurial/subrepo.py	Wed Oct 31 03:59:28 2012 +0900
+++ b/mercurial/subrepo.py	Wed Oct 24 18:45:22 2012 +0200
@@ -523,7 +523,7 @@
         self._get(state)
         source, revision, kind = state
         self._repo.ui.debug("getting subrepo %s\n" % self._path)
-        hg.clean(self._repo, revision, False)
+        hg.updaterepo(self._repo, revision, overwrite)
 
     def merge(self, state):
         self._get(state)