Working with PostgreSQL source tree (was Re: Not ready for 8.3) - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Working with PostgreSQL source tree (was Re: Not ready for 8.3)
Date
Msg-id 464D70EC.1090507@enterprisedb.com
Whole thread Raw
In response to Re: Not ready for 8.3  (Greg Smith <gsmith@gregsmith.com>)
Responses Re: Working with PostgreSQL source tree (was Re: Not ready for 8.3)
List pgsql-hackers
Greg Smith wrote:
> On Thu, 17 May 2007, David Fetter wrote:
> 
>> Would you be interested in providing this meat?  You're uniquely
>> qualified because your shins still smart from all the things you
>> barked them on :)
> 
> Unfortunately I'm temporarily on the other side of this problem; all the 
> time I have to spare right now is going to into reviewing other people's 
> patches.
> 
> Even more unfortunately, I'm not 100% happy with what I'm doing, and 
> certainly wouldn't want to present the shoddy techniques I'm using as 
> recommended.  If anyone else has useful info on this subject (keeping a 
> local repository in sync with HEAD via rsync while working on branches) 
> they'd like to pass along, please drop me a message with whatever level 
> of documentation you might have--even rough notes would be a help.  Once 
> I'm finished with the reviews I'm trying to contribute, I will sort 
> through any suggestions I get and turn that into formal documentation.  
> This has left enough shin damage that I'd enjoy completely slaying the 
> cause.

Let me describe my method. It's not ideal by any means, but I've been 
satisfied:

First of all, having a local CVS repository is a must. I used to use 
cvsup until a couple of months ago, but it suddenly stopped working, so 
I switched to rsync and I haven't looked back. I have a one line shell 
script to update it:

rsync --progress -avzCH --delete anoncvs.postgresql.org::pgsql-cvs 
/home/hlinnaka/pgcvsrepository

When I start working on a subject, I make a new checkout from the local 
repository to a designated directory under "pg_sandbox"-directory. For 
example, when I started working on the mvcc-safe cluster patch:

~/pg_sandbox$ cvs -d /home/hlinnaka/pgcvsrepository cvs co pgsql
~/pg_sandbox$ mv pgsql pgsql.cluster
~/pg_sandbox$ cd pgsql.cluster
~/pg_sandbox/pgsql.cluster$ cvs update -dP   # Remove empty dirs. 
There's a checkout-flag for that as well, but I never remember it...
~/pg_sandbox/pgsql.cluster$ ./configure --enable-depend --enable-cassert 
--enable-debug --prefix=/home/hlinnaka/pgsql.cluster

For primitive version control, I make a diff after any significant changes:

~/pg_sandbox/pgsql.cluster$ cvs diff -cN > cluster-mvcc-1.patch

The last number is a revision number, increment by one after each diff.

That's it!

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


pgsql-hackers by date:

Previous
From: "Simon Riggs"
Date:
Subject: Re: pg_standby question (solved)
Next
From: Zdenek Kotala
Date:
Subject: Re: Lack of urgency in 8.3 reviewing