Mercurial > hg-stable
view tests/test-releasenotes-merging.t @ 33704:855a1856466d
tests: demonstrate crash when trying to rebase merge without its parents
As the test case shows, when "hg rebase -d G -r 'B + D + F'" is run on
the following graph, we crash with traceback. It's reasonable to fail
because we can not easily produce a correct rebased F. The problem is
what diff to apply to either the rebased B or the rebased D. We could
potentially produce the result by e.g. applying the (F-D) diff to the
rebased B and then applying the reverse (E-D) diff on top, but that
could result in merge conflicts in each of those steps, which we don't
have a way of dealing with. So for now, let's just add a test case to
demonstrate that we crash (i.e. the AssertionError is clearly
incorrect since the user can run into it).
F
/|
C E
| |
B D G
\|/
A
Differential Revision: https://phab.mercurial-scm.org/D212
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 14 Jul 2017 14:30:55 -0700 |
parents | 5814db57941c |
children | 3748098d072a |
line wrap: on
line source
$ cat >> $HGRCPATH << EOF > [extensions] > releasenotes= > EOF $ hg init simple-repo $ cd simple-repo A fix directive from commit message is added to release notes $ touch fix1 $ hg -q commit -A -l - << EOF > commit 1 > > .. fix:: > > Fix from commit message. > EOF $ cat >> $TESTTMP/single-fix-bullet << EOF > Bug Fixes > ========= > > * Fix from release notes. > EOF $ hg releasenotes -r . $TESTTMP/single-fix-bullet $ cat $TESTTMP/single-fix-bullet Bug Fixes ========= * Fix from release notes. * Fix from commit message. Processing again ignores the already added bullet. $ hg releasenotes -r . $TESTTMP/single-fix-bullet $ cat $TESTTMP/single-fix-bullet Bug Fixes ========= * Fix from release notes. * Fix from commit message. $ cd .. Sections are unioned $ hg init subsections $ cd subsections $ touch fix1 $ hg -q commit -A -l - << EOF > Commit 1 > > .. feature:: Commit Message Feature > > This describes a feature from a commit message. > EOF $ cat >> $TESTTMP/single-feature-section << EOF > New Features > ============ > > Notes Feature > ------------- > > This describes a feature from a release notes file. > EOF $ hg releasenotes -r . $TESTTMP/single-feature-section $ cat $TESTTMP/single-feature-section New Features ============ Notes Feature ------------- This describes a feature from a release notes file. Commit Message Feature ---------------------- This describes a feature from a commit message. Doing it again won't add another section $ hg releasenotes -r . $TESTTMP/single-feature-section Commit Message Feature already exists in feature section; ignoring $ cat $TESTTMP/single-feature-section New Features ============ Notes Feature ------------- This describes a feature from a release notes file. Commit Message Feature ---------------------- This describes a feature from a commit message. $ cd .. Bullets from rev merge with those from notes file. $ hg init bullets $ cd bullets $ touch fix1 $ hg -q commit -A -l - << EOF > commit 1 > > .. fix:: > > this is fix1. > EOF $ touch fix2 $ hg -q commit -A -l - << EOF > commit 2 > > .. fix:: > > this is fix2. > EOF $ hg releasenotes -r 'all()' $TESTTMP/relnotes-bullet-problem $ cat $TESTTMP/relnotes-bullet-problem Bug Fixes ========= * this is fix1. * this is fix2. $ touch fix3 $ hg -q commit -A -l - << EOF > commit 3 > > .. fix:: > > this is fix3. > EOF $ hg releasenotes -r . $TESTTMP/relnotes-bullet-problem $ cat $TESTTMP/relnotes-bullet-problem Bug Fixes ========= * this is fix1. * this is fix2. * this is fix3.