An approximate method to merge from upstream is: # Fetch latest from upstream (we also include some compat stuff) $ CVS_RSH=ssh; export CVS_RSH $ CVSROOT="anoncvs@stripped:/cvsroot" $ cvs co -d libedit -P src/lib/libedit $ mkdir libedit/np $ for f in src/common/lib/libc/string/strlcat.c \ > src/common/lib/libc/string/strlcpy.c \ > src/include/vis.h \ > src/lib/libc/gen/unvis.c \ > src/lib/libc/gen/vis.c \ > src/tools/compat/fgetln.c > do > cvs co -P ${f} > mv ${f} libedit/np > done $ rm -rf src $ cd libedit # Remove files we don't need/use $ rm -rf CVS TEST Makefile shlib_version *.[0-9] $ (cd readline; rm -rf CVS Makefile) # Rename files to match our naming $ mv makelist makelist.sh $ mv term.h el_term.h # Remove NetBSD-specific bits $ for file in $(find . -type f) > do > cp ${file} ${file}.orig > sed -e 's/#include "term.h"/#include "el_term.h"/g' \ > -e 's/sig_handler/el_sig_handler/g' \ > -e 's/isprint/el_isprint/g' \ > -e '/^__RCSID/d' \ > ${file}.orig >${file} > rm ${file}.orig > done then merge remaining bits by hand. All MySQL-specific changes should be marked with XXXMYSQL to make them easier to identify and merge. To generate a 'clean' diff against upstream you can use the above commands but use cvs co -D "2009/02/06 20:09:00" [..] to fetch the baseline of most recent merge. Please feed any fixes to Jonathan Perkin who will endeavour to merge them upstream and keep diffs minimal.