[PATCH] bundle: warn when update to revision existing only in a bundle (issue5004)
liscju
piotr.listkiewicz at gmail.com
Thu Mar 24 10:58:14 UTC 2016
# HG changeset patch
# User liscju <piotr.listkiewicz at gmail.com>
# Date 1458719722 -3600
# Wed Mar 23 08:55:22 2016 +0100
# Node ID 54c0e66ee49f08806488a591f32fa18581fde717
# Parent 78e4e558fa74aa4489609953328cbcecf1a8a428
bundle: warn when update to revision existing only in a bundle (issue5004)
Now its done silently, so unless user really knows what he is doing
will be suprised to find that after update 'hg status' doesn't work.
diff -r 78e4e558fa74 -r 54c0e66ee49f mercurial/bundlerepo.py
--- a/mercurial/bundlerepo.py Sat Mar 19 08:27:54 2016 -0700
+++ b/mercurial/bundlerepo.py Wed Mar 23 08:55:22 2016 +0100
@@ -32,6 +32,7 @@ from . import (
localrepo,
manifest,
mdiff,
+ node as nodemod,
pathutil,
phases,
revlog,
@@ -385,6 +386,18 @@ class bundlerepository(localrepo.localre
def getcwd(self):
return os.getcwd() # always outside the repo
+ def setparents(self, p1, p2=nullid):
+ c = changelog.changelog(self.svfs)
+ nodemap = c.nodemap
+ if p1 not in nodemap:
+ self.ui.warn(_("setting parent to node %s non-existing "
+ "in the local repository\n")
+ % nodemod.hex(p1))
+ if p2 and p2 not in nodemap:
+ self.ui.warn(_("setting parent to node %s non-existing "
+ "in the local repository\n")
+ % nodemod.hex(p2))
+ return localrepo.localrepository.setparents(self, p1, p2)
def instance(ui, path, create):
if create:
diff -r 78e4e558fa74 -r 54c0e66ee49f tests/test-bundle.t
--- a/tests/test-bundle.t Sat Mar 19 08:27:54 2016 -0700
+++ b/tests/test-bundle.t Wed Mar 23 08:55:22 2016 +0100
@@ -733,3 +733,29 @@ bundle single branch
$ hg bundle -r 'public()' no-output.hg
abort: no commits to bundle
[255]
+
+ $ cd ..
+
+When user updates to the revision existing only in the bundle,
+it should show warning
+
+ $ hg init updates_to_bundle_revision
+ $ cd updates_to_bundle_revision
+ $ cat <<EOF >> .hg/hgrc
+ > [extensions]
+ > strip =
+ > EOF
+ $ hg --config ui.allowemptycommit=true commit -m 0
+ $ hg --config ui.allowemptycommit=true commit -m 1
+ $ hg strip -r tip
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ saved backup bundle to $TESTTMP/updates_to_bundle_revision/.hg/strip-backup/49086794b4c6-62b96ebe-backup.hg (glob)
+ $ hg update -R .hg/strip-backup/*.hg -r 1
+ setting parent to node 49086794b4c611e893d89e1719072591c753019d non-existing in the local repository
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+When user updates to the revision existing in the local repository as well,
+the warning shouldn't be emitted
+
+ $ hg update -R .hg/strip-backup/*.hg -r 0
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
More information about the Mercurial-devel
mailing list