2001-05-01 Conrad Canterford <conrad@mail.watersprite.com.au>

* make-gnucash-patch.in: add --file option to allow single file
	patches to be made.

	* README.patches (new file): Moved patch instructions from README
	file into this new file, and added detailed descriptions of all
	the options for make-gnucash-patch.

        * README: see above


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4098 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Dave Peticolas
2001-05-01 20:58:00 +00:00
parent 73277fb3df
commit bc69db7765
6 changed files with 249 additions and 90 deletions

89
README
View File

@@ -473,91 +473,10 @@ Before you start developing GnuCash, you should do the following:
Submitting a Patch:
Once you have done some work that you would like to submit, you need
to send a patch. There is a perl script called make-gnucash-patch
provided with the distribution that you can use to create the
patch. Here is how to use that perl script.
This section has been removed to the file README.patches
There are two methods.
Please consult that file for details on using the script provided to make
patches suitable for submitting to the gnucash development team.
1) Run ./make-gnucash-patch in your source directory. The script
will then create two directories ../diff and ../tmp. In ../tmp
it will then do a checkout of the cvs sources. If gnucash has
already been checked out into this directory then only an update
will occur. As a consequence of this you should make sure you
are merged with current CVS before running make-gnucash-patch or
you will find parts of the patch are reversing recent changes in
CVS.
make-gnucash-patch will then use makepatch to create a patch
between the original directory and ../tmp/gnucash. makepatch
will ask you for a description of the patch. And then the diff
will be written to the diff file
../diffs/gnucash-YYYYMMDD-hhmmss-<username>.diff.gz where Y=year,
M=month, D=day, h=hour, m=minute, and s=second.
make-gnucash-patch will then uuencode the diff to
../diffs/<samefilename>.uue.
There are two vars you can set in a ~/.gnucash-patch.rc file.
The file should look like this
----------------------------------------------------------------------
# -*- perl -*-
$::should_uuencode = 0;
$::ask_description = 0;
1;
----------------------------------------------------------------------
This is basically a perl file that is sourced by the script. If
you don't want the diff to be uuencoded (say you'll send the
patch in email using mime and don't need it double encoded). Set
$::should_uuencode to 0. If you don't want makepatch to ask you
for the patch description (so the process is more automated
possibly) set $::ask_description to 0.
2) The second method is basically described below but it also
includes the vars you can set from above. This method gives you
more control over which directories are used.
First, set up your development directories as follows:
< GnuCash home development directory >
|
|---- < directory containing original GnuCash sources >
|
|---- < directory containing your modified GnuCash sources >
A concrete example of those directories might be:
/home/me/gnucash
|
|---- /home/me/gnucash/gnucash.pristine (original sources)
|
|---- /home/me/gnucash/gnucash.mywork (original sources + my edits)
Copy the make-gnucash-patch script to the home development
directory (/home/me/gnucash above). Now set three environment
variables to reflect the names of your directories. Given the
names above, you would use:
export GNC_MAKEPATCH_OLD_DIR=gnucash.pristine
export GNC_MAKEPATCH_NEW_DIR=gnucash.mywork
export GNC_MAKEPATCH_HOME_DIR=/home/me/gnucash
Right before you make your patch, make sure *both* your working
and your pristine directories are in sync with cvs. Run 'cvs -z3
update -dP' in both directories to ensure that is the
case. Updating from cvs in your working directory may cause
conficts in a file. You must resolve those conficts before making
a patch.
Now run the script. Note that this script requires the programs
'makepatch', 'gzip', 'diff', and 'uuencode' (and, of course,
'perl') to run.
The same files will be generated for this method as the last
(../diffs/*.diff.gz and ../diffs/*.diff.gz.uue).
Thanks in advance for your contribution!
Thank you.