tests/test-releasenotes-merging.t
author Phil Cohen <phillco@fb.com>
Sun, 25 Jun 2017 16:56:49 -0700
changeset 33093 6582dc01aca3
parent 33028 5814db57941c
child 33724 3748098d072a
permissions -rw-r--r--
merge: pass wctx to batchremove and batchget We would like to migrate direct calls of repo.wvfs/wwrite/wread/etc to a call on the relevant workingfilectx, both as a cleanup (to reduce the number of working copy functions on `repo`), and also to facilitate an in-memory merge that doesn't write to the working copy. In order to do that, the first step is to ensure we pass the target wctx around and perform our writes and reads on it. Later, this object might become a memctx.

  $ 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.