[darcs-devel] [issue1272] amend-record not the same as unrecord + record

Simon Marlow bugs at darcs.net
Fri Dec 19 15:24:38 UTC 2008


New submission from Simon Marlow <marlowsd at gmail.com>:

I would naively expect that amend-record is just a convenient way to do 
unrecord followed by record.  However, as the following sequence 
demonstrates, it's possible to get different results.  I can understand (at 
a high level) how this might happen, but I think it ought to be classed as 
a bug.  The impact of the current behaviour is that the amend-recorded 
patch has extra junk in it, and is more likely to conflict with other 
patches.  So to get "clean" patches I find myself using unrecord/record 
instead of amend-record, and that's bad.

Ideally:

   * recording a change A and then amend-recording it to B, should give
     the same patch as just recording B in the first place.

   * amend-recording a patch should give the same results as unrecord
     followed by record.

   * If I amend-record a patch, then unrecord+record on that patch should
     be a no-op.

In all cases, by "the same patch" I mean the same set of hunks.

simple script to demonstrate the difference:

#! /bin/sh
mkdir test
cd test
darcs init
printf "a\nb\nc\nd\n" >x
darcs add x
darcs rec -a -m "add x"

# First the amend-record sequence
printf "AAA\nBBB\nCCC\nDDD\n" >x
darcs rec -a -m patch
printf "AAA\nb\nc\nDDD\n" >x
yes | darcs amend-record -a -p patch
echo "PATCH AFTER AMEND-RECORD:"
darcs changes --no-summary -v -p patch

yes | darcs unpull -p patch

# Now just recording the patch:
printf "AAA\nb\nc\nDDD\n" >x
darcs rec -a -m patch
echo "PATCH AFTER RECORD:"
darcs changes --no-summary -v -p patch

----------
messages: 6834
nosy: dmitry.kurochkin, igloo, kowey, marlowsd, simon, simonpj, thorkilnaur
status: unread
title: amend-record not the same as unrecord + record

__________________________________
Darcs bug tracker <bugs at darcs.net>
<http://bugs.darcs.net/issue1272>
__________________________________


More information about the darcs-devel mailing list