Mercurial > hg
view tests/test-simplemerge-cmd @ 10397:8cb81d75730c
mq: add parent node IDs to MQ patches on qrefresh/qnew
The goal of this patch is to add the IDs of the parents of applied MQ patches
into the patch file headers whenever qnew or qrefresh are run.
This will serve as a reminder of when the patches last applied cleanly and
will let us do more intelligent things in the future, such as:
* Resolve conflicts found when qpushing to a new location by merging
instead of simply showing rejects.
* Display better diffs of versioned MQ patches because we can tell how the
patched files have changed in the meantime.
Here are the new rules this patch introduces. They are checked in this order:
* If a patch currently has old, plain-style patch headers ("From:" and
"Date:") do not change the style or add any new headers.
* If the 'mq.plain' configuration setting is true, only plain-style
headers will be used for all MQ patches.
* qnew will initialize new patches with HG-style headers and fill in the
"# Parent" header with the appropriate parent node.
* qrefresh will refresh the "# Parent" header with the current parent of
the current patch.
author | Steve Losh <steve@stevelosh.com> |
---|---|
date | Sun, 07 Feb 2010 10:47:54 -0500 |
parents | 0eb8c4df61bd |
children |
line wrap: on
line source
#!/bin/sh cp "$TESTDIR"/../contrib/simplemerge . echo base > base echo local > local cat base >> local cp local orig cat base > other echo other >> other echo '% changing local directly' python simplemerge local base other && echo "merge succeeded" cat local cp orig local echo '% printing to stdout' python simplemerge -p local base other echo ' local:' cat local echo '% conflicts' cp base conflict-local cp other conflict-other echo not other >> conflict-local echo end >> conflict-local echo end >> conflict-other python simplemerge -p conflict-local base conflict-other || echo "merge failed" echo '% --no-minimal' python simplemerge -p --no-minimal conflict-local base conflict-other echo '% 1 label' python simplemerge -p -L foo conflict-local base conflict-other echo '% 2 labels' python simplemerge -p -L foo -L bar conflict-local base conflict-other echo '% too many labels' python simplemerge -p -L foo -L bar -L baz conflict-local base conflict-other echo '% binary file' python -c "f = file('binary-local', 'w'); f.write('\x00'); f.close()" cat orig >> binary-local python simplemerge -p binary-local base other echo '% binary file --text' python simplemerge -a -p binary-local base other 2>&1 | $TESTDIR/printrepr.py echo '% help' python simplemerge --help echo '% wrong number of arguments' python simplemerge echo '% bad option' python simplemerge --foo -p local base other exit 0