Submitter | Pierre-Yves David |
---|---|
Date | April 13, 2017, 2:40 p.m. |
Message ID | <dabd8890b002c3cf3ae5.1492094408@nodosa.octopoid.net> |
Download | mbox | patch |
Permalink | /patch/20164/ |
State | Accepted |
Headers | show |
Comments
Pierre-Yves David <pierre-yves.david@ens-lyon.org> writes: > # HG changeset patch > # User Pierre-Yves David <pierre-yves.david@ens-lyon.org> > # Date 1492093695 -7200 > # Thu Apr 13 16:28:15 2017 +0200 > # Node ID d106f22c0f397303727ce045698076a3dc4474ba > # Parent 6020bb1b76c86bf0b42b174c3348f98e5909e0b2 > # EXP-Topic push.checkheads > # Available At https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ > # hg pull https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ -r d106f22c0f39 > obsolescence: add test for the "branch replacement" logic during push, case D6 > > Mercurial checks for the introduction of new heads on push. Evolution comes > into play to detect if existing branches on the server are being replaced by > some of the new one we push. > > The current code for this logic is very basic (eg: issue4354) and was poorly > tested. We have a better implementation coming in the evolve extension fixing > these issues and with more serious tests coverage. In the process of upstreaming > this improved logic, we start with adding the test case that are already passing > with the current implementation. Once they are all in, we'll upstream the better > implementation and the extra test cases. > > See inline documentation for details about the test case added in this > changeset. Sure, seems fine to me again.
On Fri, 14 Apr 2017 11:38:35 -0700, Sean Farley wrote: > Pierre-Yves David <pierre-yves.david@ens-lyon.org> writes: > > > # HG changeset patch > > # User Pierre-Yves David <pierre-yves.david@ens-lyon.org> > > # Date 1492093695 -7200 > > # Thu Apr 13 16:28:15 2017 +0200 > > # Node ID d106f22c0f397303727ce045698076a3dc4474ba > > # Parent 6020bb1b76c86bf0b42b174c3348f98e5909e0b2 > > # EXP-Topic push.checkheads > > # Available At https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ > > # hg pull https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ -r d106f22c0f39 > > obsolescence: add test for the "branch replacement" logic during push, case D6 > > > > Mercurial checks for the introduction of new heads on push. Evolution comes > > into play to detect if existing branches on the server are being replaced by > > some of the new one we push. > > > > The current code for this logic is very basic (eg: issue4354) and was poorly > > tested. We have a better implementation coming in the evolve extension fixing > > these issues and with more serious tests coverage. In the process of upstreaming > > this improved logic, we start with adding the test case that are already passing > > with the current implementation. Once they are all in, we'll upstream the better > > implementation and the extra test cases. > > > > See inline documentation for details about the test case added in this > > changeset. > > Sure, seems fine to me again. Queued per review, thanks.
Patch
diff --git a/tests/testlib/push-checkheads-util.sh b/tests/testlib/push-checkheads-util.sh new file mode 100644 --- /dev/null +++ b/tests/testlib/push-checkheads-util.sh @@ -0,0 +1,44 @@ +# setup config and various utility to test new heads checks on push + +cat >> $HGRCPATH <<EOF +[ui] +# simpler log output +logtemplate ="{node|short} ({phase}): {desc}\n" + +[phases] +# non publishing server +publish=False + +[extensions] +# we need to strip some changeset for some test cases +strip= + +[experimental] +# enable evolution +evolution=all + +[alias] +# fix date used to create obsolete markers. +debugobsolete=debugobsolete -d '0 0' +EOF + +mkcommit() { + echo "$1" > "$1" + hg add "$1" + hg ci -m "$1" +} + +getid() { + hg log --hidden --template '{node}\n' --rev "$1" +} + +setuprepos() { + echo creating basic server and client repo + hg init server + cd server + mkcommit root + hg phase --public . + mkcommit A0 + cd .. + hg clone server client +}