Patchwork D5364: narrow: don't resurrect old commits when narrowing (don't strip obsmarkers)

login
register
mail settings
Submitter phabricator
Date Dec. 5, 2018, 11:57 a.m.
Message ID <1ee96c93050a3a65bc94b02d5586b52b@localhost.localdomain>
Download mbox | patch
Permalink /patch/36970/
State Not Applicable
Headers show

Comments

phabricator - Dec. 5, 2018, 11:57 a.m.
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG77173267878b: narrow: don&#039;t resurrect old commits when narrowing (don&#039;t strip obsmarkers) (authored by martinvonz, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D5364?vs=12689&id=12706

REVISION DETAIL
  https://phab.mercurial-scm.org/D5364

AFFECTED FILES
  hgext/narrow/narrowcommands.py
  tests/test-narrow.t

CHANGE DETAILS




To: martinvonz, durin42, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/tests/test-narrow.t b/tests/test-narrow.t
--- a/tests/test-narrow.t
+++ b/tests/test-narrow.t
@@ -214,6 +214,29 @@ 
   000000000000
   $ cd ..
 
+Narrowing doesn't resurrect old commits (unlike what regular `hg strip` does)
+  $ hg clone --narrow ssh://user@dummy/master narrow-obsmarkers --include d0 --include d3 -q
+  $ cd narrow-obsmarkers
+  $ echo a >> d0/f2
+  $ hg add d0/f2
+  $ hg ci -m 'modify d0/'
+  $ echo a >> d3/f2
+  $ hg add d3/f2
+  $ hg commit --amend -m 'modify d0/ and d3/'
+  $ hg log -T "{rev}: {desc}\n"
+  5: modify d0/ and d3/
+  3: add d10/f
+  2: add d3/f
+  1: add d2/f
+  0: add d0/f
+  $ hg tracked --removeinclude d3 --force-delete-local-changes -q
+  $ hg log -T "{rev}: {desc}\n"
+  3: add d10/f
+  2: add d3/f
+  1: add d2/f
+  0: add d0/f
+  $ cd ..
+
 Can remove last include, making repo empty
   $ hg clone --narrow ssh://user@dummy/master narrow-empty --include d0 -r 5
   adding changesets
diff --git a/hgext/narrow/narrowcommands.py b/hgext/narrow/narrowcommands.py
--- a/hgext/narrow/narrowcommands.py
+++ b/hgext/narrow/narrowcommands.py
@@ -215,7 +215,9 @@ 
                 urev = max(repo.revs('(::%n) - %ln + null',
                                      repo['.'].node(), visibletostrip))
                 hg.clean(repo, urev)
-            repair.strip(ui, unfi, tostrip, topic='narrow')
+            overrides = {('devel', 'strip-obsmarkers'): False}
+            with ui.configoverride(overrides, 'narrow'):
+                repair.strip(ui, unfi, tostrip, topic='narrow')
 
         todelete = []
         for f, f2, size in repo.store.datafiles():