[darcs-users] Re: Executing a program when applying patches

Dustin Sallings dustin at spy.net
Tue Nov 9 04:07:59 UTC 2004

On Nov 8, 2004, at 17:50, Stephane Bortzmeyer wrote:

> Much more operations are possible in a CVS "commitinfo" besides
> compiling everything and running the regression test suite. Checking
> the well-formedness or the validity of XML files, checking the syntax
> of Perl scripts with -c, running C programs through indent to be sure
> they were properly indented, etc.
> These operations are typically much lighter.

	CVS commits files, darcs commits changesets.  You have to think bigger 
than that.

	When I checkin a tree in darcs, it validates that, after my changes 
were applied, my files still make sense to my project.  I.e. my xml 
files still work correctly against the xml schema definitions that were 
modified in a separate directory.  My java code still compiles against 
the jaxb generated java code from that xsd.  My unit tests still run 
after I changed an xsl file that is used to generate code for the core 
of my application.  Or even something as simple as the file I modified 
still compiles just fine, but it's missing a symbol needed by another 
file.  Whatever I define it to be.

	The first time I did a darcs checkin in one of my branches and it ran 
the full test suite before going, it was rather unpleasant.  It took me 
a half an hour to record my changes.  I've disabled the test for some 
things I knew wouldn't break anything (and then ran them again later 
when I was done with whatever I was doing and wanted to make sure).  
Such a test suite has been very valuable for me many times in the past 
where single-file commitinfo kind of stuff has not.

SPY                      My girlfriend asked me which one I like better.
pub  1024/3CAE01D5 1994/11/03 Dustin Sallings <dustin at spy.net>
|    Key fingerprint =  87 02 57 08 02 D0 DA D6  C8 0F 3E 65 51 98 D8 BE
L_______________________ I hope the answer won't upset her. ____________

More information about the darcs-users mailing list