applying patches



> > Yes, such a more-or-less automatic patching system could be useful. I
> > wonder if it would know about Git or just patches. I wouldn't be
> > surprised if such a thing has already been created for Python or Lisp.

Git has git-am(1) which applies patches directly from mailbox, 
furthermore git uses patches compatible with patch(1), thus one can 
just cd to the directory with sources (not necessary git-cloned) and 
do

$ patch -p1 < patch-file-to-apply


> Here is the kind of thing that would be useful.  You come up with
> a good idea that other people might want to try out without
> recompiling maxima etc etc.   Create a file that can be read in
> like this:
> 
> ;;; file defining new feature  xxx
> ;;; written by <author> <date>
> ;;; tested in Maxima <version>
>
> (in-package :maxima)
> 
> ;;; redefine two functions in file simp.lisp

The problem with this approach is that unless the format is 
standardized and the tools are written, it requires a human 
intervention "to apply such a patch" -- tedious and error-prone. 

By the way, just file name is not enough, one also needs to mention 
where to put the functions in each file when the patch is "applied".

> I continue to object generally to patches and files whose authorship 
> can be discerned only by examining the separate change logs, so any 
> alterations to pre-existing functions should have comments 
> identifying authors, too.

Why do manually what a program can do? Git has git-blame(1) if one 
wants to know who to blame for each line.

By the way, some open source projects keep AUTHORS [1] file that 
mention which files each person modified (if I understand correctly, 
this is done to prevent a single person from changing too many files), 
but, of course, this file is automatically generated.

[1] <http://bzr.savannah.gnu.org/lh/emacs/trunk/annotate/head:/etc/AUTHORS>;

-- 
Regards,
ASK