[darcs-devel] [darcs #435] "darcs changes --pipe -pPATHNAME", inverse of "darcs record --pipe"

Zooko via RT bugs at darcs.net
Thu Jun 9 09:15:08 PDT 2005


Thu Jun 09 12:15:06 2005: New ticket: 435.
Transaction: Ticket created by zooko
       Queue: Darcs
     Subject: "darcs changes --pipe -pPATHNAME", inverse of "darcs record --pipe"
       Owner: Nobody
  Requestors: zooko at zooko.com
      Status: new
 Ticket <URL: http://bugs.darcs.net/.//Ticket/Display.html?id=435 >

I wish that darcs had a switch so that "darcs changes -pPATCHNAME" would
emit metadata that would be understood if piped into "darcs record
--pipe".  Therefore the following bash script would textually apply a
patch from one darcs repo to another:

cd repo1; darcs diff -u pPATCHNAME | ( cd ../repo2 ; patch -p0 ) ; darcs
changes --pipe -pPATCHNAME | ( cd ../repos2 ; darcs record --pipe --all )

This would be limited by the limits of "patch", of course, for example
file names wouldn't work (thanks to Ian Lynagh for pointing that out).

The reason to do a textual application instread of a real darcs pull is
that repo1 and repo2 contain doppleganger patches, so darcs pull will
hang (until new-conflict-magic works).

This might also facilitate other kinds of scripting.  (I've just spent
some time struggling to parse the output of "darcs changes -pPATCHNAME"
with bash and/or Python, and I've given up.  It's clearly possible, but
it's just too much hassle for quick scripting jobs.)

Judging from my own, admittedly anecdotal, experience, and from
darcs-users mailing list, this sort of hack is frequently needed.




More information about the darcs-devel mailing list