Mercurial > hg-stable
diff tests/test-mq-header-date @ 5788:4107e823dc2c
mq: add --currentdate and --date options to qnew and qrefresh
These options make qnew add and qrefresh update a "# Date "-style
header line. This allows proper recording of creation / last
modification dates of patches in patch queues.
Note that `qrefresh -D` only updates existing header lines. It never
adds them, and does not warn about this. This is because I expect
people to have `[default] qrefresh -D` in their .hgrc so patches with
tracked dates get updated, others are left unchanged. The suggested
setup in .hgrc is, in fact,
[default]
qnew = -D -U
qrefresh = -D
I tried to not mix header styles, so `qnew -D -U` now writes the user in
"# User "-style, while `qnew -U` still writes it "From: "-style. Also, if
`qrefresh -U` must add the user, it does so in "# User "-style if the
header contains a "# HG changeset patch" line. (This is caused by mq
not supporting the "Date: "-style header line at all - a reasonable choice
given its standard date format.)
author | Peter Arrenbrecht <peter.arrenbrecht@gmail.com> |
---|---|
date | Wed, 02 Jan 2008 16:24:13 +0100 |
parents | |
children | 38b592536a58 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-mq-header-date Wed Jan 02 16:24:13 2008 +0100 @@ -0,0 +1,178 @@ +#!/bin/sh + +echo "[extensions]" >> $HGRCPATH +echo "mq=" >> $HGRCPATH +echo "[diff]" >> $HGRCPATH +echo "nodates=true" >> $HGRCPATH + + +catpatch() { + cat .hg/patches/$1.patch | sed -e "s/^diff \-r [0-9a-f]* /diff -r ... /" +} + +catlog() { + catpatch $1 + hg log --template "{rev}: {desc} - {author}\n" +} + +catlogd() { + catpatch $1 + hg log --template "{rev}: {desc} - {author} - {date}\n" +} + +drop() { + hg qpop + hg qdel $1.patch +} + + +echo ==== init +hg init a +cd a +hg qinit + + +echo ==== qnew -d +hg qnew -d '3 0' 1.patch +catlogd 1 + +echo ==== qref +echo "1" >1 +hg add +hg qref +catlogd 1 + +echo ==== qref -d +hg qref -d '4 0' +catlogd 1 + + +echo ==== qnew +hg qnew 2.patch +echo "2" >2 +hg add +hg qref +catlog 2 + +echo ==== qref -d +hg qref -d '5 0' +catlog 2 + +drop 2 + + +echo ==== qnew -d -m +hg qnew -d '6 0' -m "Three" 3.patch +catlogd 3 + +echo ==== qref +echo "3" >3 +hg add +hg qref +catlogd 3 + +echo ==== qref -m +hg qref -m "Drei" +catlogd 3 + +echo ==== qref -d +hg qref -d '7 0' +catlogd 3 + +echo ==== qref -d -m +hg qref -d '8 0' -m "Three (again)" +catlogd 3 + + +echo ==== qnew -m +hg qnew -m "Four" 4.patch +echo "4" >4 +hg add +hg qref +catlog 4 + +echo ==== qref -d +hg qref -d '9 0' +catlog 4 + +drop 4 + + +echo ==== qnew with HG header +hg qnew 5.patch +hg qpop +echo "# HG changeset patch" >>.hg/patches/5.patch +echo "# Date 10 0" >>.hg/patches/5.patch +# Drop patch specific error line +hg qpush 2>&1 | grep -v garbage +catlogd 5 + +echo ==== hg qref +echo "5" >5 +hg add +hg qref +catlogd 5 + +echo ==== hg qref -d +hg qref -d '11 0' +catlogd 5 + + +echo ==== qnew -u +hg qnew -u jane 6.patch +echo "6" >6 +hg add +hg qref +catlog 6 + +echo ==== qref -d +hg qref -d '12 0' +catlog 6 + +drop 6 + + +echo ==== qnew -d +hg qnew -d '13 0' 7.patch +echo "7" >7 +hg add +hg qref +catlog 7 + +echo ==== qref -u +hg qref -u john +catlogd 7 + + +echo ==== qnew +hg qnew 8.patch +echo "8" >8 +hg add +hg qref +catlog 8 + +echo ==== qref -u -d +hg qref -u john -d '14 0' +catlog 8 + +drop 8 + + +echo ==== qnew -m +hg qnew -m "Nine" 9.patch +echo "9" >9 +hg add +hg qref +catlog 9 + +echo ==== qref -u -d +hg qref -u john -d '15 0' +catlog 9 + +drop 9 + + +echo ==== "qpop -a / qpush -a" +hg qpop -a +hg qpush -a +hg log --template "{rev}: {desc} - {author} - {date}\n"