Patchwork [2,of,5,STABLE,REGRESSION,V2] push: test the checks preventing pushing orphaness to a server

login
register
mail settings
Submitter Pierre-Yves David
Date July 24, 2020, 1:03 p.m.
Message ID <ac128543063466eae7d6.1595595780@nodosa.octobus.net>
Download mbox | patch
Permalink /patch/46863/
State New
Headers show

Comments

Pierre-Yves David - July 24, 2020, 1:03 p.m.
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david@octobus.net>
# Date 1595514223 -7200
#      Thu Jul 23 16:23:43 2020 +0200
# Branch stable
# Node ID ac128543063466eae7d6c9c8859154360580879a
# Parent  69b4a3b9262e822047bb143b864687b27cfbd00e
# EXP-Topic push-obscheck
# Available At https://foss.heptapod.net/octobus/mercurial-devel/
#              hg pull https://foss.heptapod.net/octobus/mercurial-devel/ -r ac1285430634
push: test the checks preventing pushing orphaness to a server

This is introduce a simple example, more are coming. See inline documentation
for details.

Patch

diff --git a/tests/test-obsolete-check-push.t b/tests/test-obsolete-check-push.t
new file mode 100644
--- /dev/null
+++ b/tests/test-obsolete-check-push.t
@@ -0,0 +1,123 @@ 
+=======================================================
+Test check for obsolescence and instability during push
+=======================================================
+
+  $ . $TESTDIR/testlib/obsmarker-common.sh
+
+  $ cat >> $HGRCPATH << EOF
+  > [phases]
+  > publish=false
+  > [experimental]
+  > evolution = all
+  > EOF
+
+
+Tests that pushing orphaness to the server is detected
+======================================================
+
+initial setup
+
+  $ mkdir base
+  $ cd base
+  $ hg init server
+  $ cd server
+  $ mkcommit root
+  $ hg phase --public .
+  $ mkcommit commit_A0_
+  $ mkcommit commit_B0_
+  $ cd ..
+  $ hg init client
+  $ cd client
+  $ echo '[paths]' >> .hg/hgrc
+  $ echo 'default=../server' >> .hg/hgrc
+  $ hg pull
+  pulling from $TESTTMP/base/server
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 3 changesets with 3 changes to 3 files
+  new changesets 1e4be0697311:c09d8ab29fda (2 drafts)
+  (run 'hg update' to get a working copy)
+  $ hg up 'desc("root")'
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+(having some unrelated change affects discovery result, we should ideally test both case)
+  $ hg branch unrelated --quiet
+  $ mkcommit unrelated
+  $ hg up null
+  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+  $ hg log -G
+  o  changeset:   3:16affbe0f986
+  |  branch:      unrelated
+  |  tag:         tip
+  |  parent:      0:1e4be0697311
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     unrelated
+  |
+  | o  changeset:   2:c09d8ab29fda
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     commit_B0_
+  | |
+  | o  changeset:   1:37624bf21024
+  |/   user:        test
+  |    date:        Thu Jan 01 00:00:00 1970 +0000
+  |    summary:     commit_A0_
+  |
+  o  changeset:   0:1e4be0697311
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     root
+  
+  $ cd ..
+  $ cd ..
+
+
+Orphan from pruning
+-------------------
+
+Setup
+
+  $ cp -R base check-pruned
+  $ cd check-pruned/client
+  $ hg debugobsolete --record-parents `getid 'desc("commit_A0_")'`
+  1 new obsolescence markers
+  obsoleted 1 changesets
+  1 new orphan changesets
+  $ hg log -G
+  o  changeset:   3:16affbe0f986
+  |  branch:      unrelated
+  |  tag:         tip
+  |  parent:      0:1e4be0697311
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     unrelated
+  |
+  | *  changeset:   2:c09d8ab29fda
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  instability: orphan
+  | |  summary:     commit_B0_
+  | |
+  | x  changeset:   1:37624bf21024
+  |/   user:        test
+  |    date:        Thu Jan 01 00:00:00 1970 +0000
+  |    obsolete:    pruned
+  |    summary:     commit_A0_
+  |
+  o  changeset:   0:1e4be0697311
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     root
+  
+
+Pushing the result is prevented with a message
+
+  $ hg push --new-branch
+  pushing to $TESTTMP/check-pruned/server
+  searching for changes
+  abort: push includes orphan changeset: c09d8ab29fda!
+  [255]
+
+  $ cd ../..