Thread: Contributing

Contributing

From
"Ansley, Michael"
Date:
What is the ideal setup to have when contributing to PG development?  I can
always just download the latest CVS tree, and then presumably run diff when
I want to send something in.
However, my understanding is that using CVSup allows me to replicate the cvs
tree into my own repository, which I then check out/update/commit from/to.
Then, when I wish to send a patch in, I get cvs to produce a diff on the
pgsql module.  And CVSup allows me to manage changes from the main PG
repository into my own repository, right?


Is this right?

MikeA



Re: [HACKERS] Contributing

From
Bruce Momjian
Date:
[Charset iso-8859-1 unsupported, filtering to ASCII...]
> What is the ideal setup to have when contributing to PG development?  I can
> always just download the latest CVS tree, and then presumably run diff when
> I want to send something in.
> However, my understanding is that using CVSup allows me to replicate the cvs
> tree into my own repository, which I then check out/update/commit from/to.
> Then, when I wish to send a patch in, I get cvs to produce a diff on the
> pgsql module.  And CVSup allows me to manage changes from the main PG
> repository into my own repository, right?

Yes, CVS can easily produced the diff for you.

We only allow a few people cvs commmit privs.  Others send patches to
the patches list, and we apply them, usually in a few days.

--  Bruce Momjian                        |  http://www.op.net/~candle maillist@candle.pha.pa.us            |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: [HACKERS] Contributing

From
"Ross J. Reedstrom"
Date:
I think it depends on the level of changes you intend to implement
(and your 'net access speed). If you just want to tweak some code,
pulling the latest cvs, hacking it up, doing a 'cvs update' and resolve
any conflicts, then doing 'cvs diff' will give you a nice patch to send
in. (Any recomendations on parameters for cvs diff?)

If your planning some major development, where you want to be able to 
hack and slash and not worry about losing your own changes, a local CVSup
mirror may be preferable.

Note that if you're behind a slow link, even the first scenario can be slow
(the cvs diff requires 'net access to the repository)

Ross

On Fri, Jul 16, 1999 at 06:10:38PM +0200, Ansley, Michael wrote:
> What is the ideal setup to have when contributing to PG development?  I can
> always just download the latest CVS tree, and then presumably run diff when
> I want to send something in.
> However, my understanding is that using CVSup allows me to replicate the cvs
> tree into my own repository, which I then check out/update/commit from/to.
> Then, when I wish to send a patch in, I get cvs to produce a diff on the
> pgsql module.  And CVSup allows me to manage changes from the main PG
> repository into my own repository, right?
> 
> 
> Is this right?
> 
> MikeA
> 

-- 
Ross J. Reedstrom, Ph.D., <reedstrm@rice.edu> 
NSBRI Research Scientist/Programmer
Computer and Information Technology Institute
Rice University, 6100 S. Main St.,  Houston, TX 77005


Re: [HACKERS] Contributing

From
Tom Lane
Date:
"Ansley, Michael" <Michael.Ansley@intec.co.za> writes:
> What is the ideal setup to have when contributing to PG development?  I can
> always just download the latest CVS tree, and then presumably run diff when
> I want to send something in.
> However, my understanding is that using CVSup allows me to replicate the cvs
> tree into my own repository, which I then check out/update/commit from/to.

AFAIK, the main advantage of CVSup is that you have a complete copy of
the CVS archive on your own machine, which means you can examine cvs
commit log messages, pull old versions, and so forth without having
to contact hub.org.  If you just use "cvs update" periodically then
you only have the current sources, and have to use remote cvs to do
things like checking log messages.

If you've got the disk space to spare for the full archives, and have
a fairly slow link to hub.org, then a local archive is worthwhile.

I am not sure of the implications of trying to commit into your own
copy of the archive when you are using CVSup.  I would think that
the commits might get lost at next CVSup run ... can anyone who uses
CVSup clarify?

Personally I use the "cvs update" method because I don't have a lot
of disk space to spare for Postgres work, and I don't mind using
remote cvs operations to get at the logs...

cvs update is pretty good about merging changes from the repository
into files that you have changed locally.  Dunno how well that works
with CVSup.  Probably you have to do a local "cvs update" into your
working files after each CVSup run, and the net result on the work
files is just the same.
        regards, tom lane


Re: [HACKERS] Contributing

From
Bruce Momjian
Date:
> I think it depends on the level of changes you intend to implement
> (and your 'net access speed). If you just want to tweak some code,
> pulling the latest cvs, hacking it up, doing a 'cvs update' and resolve
> any conflicts, then doing 'cvs diff' will give you a nice patch to send
> in. (Any recomendations on parameters for cvs diff?)
pgcvs diff -c

> 
> If your planning some major development, where you want to be able to 
> hack and slash and not worry about losing your own changes, a local CVSup
> mirror may be preferable.

You can use our src/tools/make_diff tools to help.



--  Bruce Momjian                        |  http://www.op.net/~candle maillist@candle.pha.pa.us            |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: [HACKERS] Contributing

From
Thomas Lockhart
Date:
> > What is the ideal setup to have when contributing to PG development?
> AFAIK, the main advantage of CVSup is that you have a complete copy of
> the CVS archive on your own machine, which means you can examine cvs
> commit log messages, pull old versions, and so forth without having
> to contact hub.org.  If you just use "cvs update" periodically then
> you only have the current sources, and have to use remote cvs to do
> things like checking log messages.

The other principle advantage to CVSup is its efficiency in bringing
over updates. It is very fast and really minimizes the bandwidth.

> If you've got the disk space to spare for the full archives, and have
> a fairly slow link to hub.org, then a local archive is worthwhile.

Or find that hub.org disappears occasionally, or...

> I am not sure of the implications of trying to commit into your own
> copy of the archive when you are using CVSup.  I would think that
> the commits might get lost at next CVSup run ... can anyone who uses
> CVSup clarify?

CVSup guarantees that the parts of your cvs tree which are in common
with the server are the same. So it is probably not such a good idea
to use it to replicate a checked-out tree if you plan on making any
changes, because it will wipe them out on the next update. It does
allow you to make branches in your local repository, but I don't use
this feature.

> cvs update is pretty good about merging changes from the repository
> into files that you have changed locally.  Dunno how well that works
> with CVSup.  Probably you have to do a local "cvs update" into your
> working files after each CVSup run, and the net result on the work
> files is just the same.

Yes. As you can tell, I'm a big fan of CVSup...
                  - Thomas

-- 
Thomas Lockhart                lockhart@alumni.caltech.edu
South Pasadena, California


Re: [HACKERS] Contributing

From
The Hermit Hacker
Date:
On Sat, 17 Jul 1999, Thomas Lockhart wrote:

> > > What is the ideal setup to have when contributing to PG development?
> > AFAIK, the main advantage of CVSup is that you have a complete copy of
> > the CVS archive on your own machine, which means you can examine cvs
> > commit log messages, pull old versions, and so forth without having
> > to contact hub.org.  If you just use "cvs update" periodically then
> > you only have the current sources, and have to use remote cvs to do
> > things like checking log messages.
> 
> The other principle advantage to CVSup is its efficiency in bringing
> over updates. It is very fast and really minimizes the bandwidth.

Is this less then when using the -z option for CVS?

> > If you've got the disk space to spare for the full archives, and have
> > a fairly slow link to hub.org, then a local archive is worthwhile.
> 
> Or find that hub.org disappears occasionally, or...

We think we just licked that problem...FreeBSD 3.x and earlier has
a problem with VM fragmentation when you start swapping heavily, so we
just upgraded Hub to 768Meg of RAM from the 384Meg it was...where it used
to die once every 24hrs, its been up ~5days now...

Marc G. Fournier                   ICQ#7615664               IRC Nick: Scrappy
Systems Administrator @ hub.org 
primary: scrappy@hub.org           secondary: scrappy@{freebsd|postgresql}.org 



Re: [HACKERS] Contributing

From
Thomas Lockhart
Date:
The Hermit Hacker wrote:
> 
> On Sat, 17 Jul 1999, Thomas Lockhart wrote:
> 
> > > > What is the ideal setup to have when contributing to PG development?
> > > AFAIK, the main advantage of CVSup is that you have a complete copy of
> > > the CVS archive on your own machine, which means you can examine cvs
> > > commit log messages, pull old versions, and so forth without having
> > > to contact hub.org.  If you just use "cvs update" periodically then
> > > you only have the current sources, and have to use remote cvs to do
> > > things like checking log messages.
> >
> > The other principle advantage to CVSup is its efficiency in bringing
> > over updates. It is very fast and really minimizes the bandwidth.
> 
> Is this less then when using the -z option for CVS?

I believe so. I'm just guessing at CVS's behavior, but I *know* that
CVSup only sends compressed diffs of the changes to update a cvs
repository or a checked-out tree. afaik CVS sends the entire file,
compressing it for transmission much as does CVSup.

> > Or find that hub.org disappears occasionally, or...
> We think we just licked that problem...

Not entirely, unless you can guarantee uptime on Internet routing. I
see outages on occasion which I don't think are local to hub.org.
That's no news to anyone, but it does seem relevant when discussing
the merits of local vs remote repositories.
                   - Thomas

-- 
Thomas Lockhart                lockhart@alumni.caltech.edu
South Pasadena, California


Re: [HACKERS] Contributing

From
Tom Lane
Date:
Thomas Lockhart <lockhart@alumni.caltech.edu> writes:
> The Hermit Hacker wrote:
>> Is this less then when using the -z option for CVS?

> I believe so. I'm just guessing at CVS's behavior, but I *know* that
> CVSup only sends compressed diffs of the changes to update a cvs
> repository or a checked-out tree. afaik CVS sends the entire file,
> compressing it for transmission much as does CVSup.

No, CVS will send either a whole file or a diff (the U or P code in its
printout tells you which way it updated the file, ie, Update whole thing
or Patch).  Either way, it's compressed if you've specified -z.

It looks like cvs has some semi-intelligent algorithm for choosing
which to do ... probably, it produces the diff and then looks to see
if the diff is bigger than the file.

I would expect CVSup to require more total net traffic just because
it has to transfer more info --- log entries, intermediate versions
(with CVS, if foo.c has been checked in three times since your last
update, you are sent one diff covering all the changes), etc.
I have not tried to time it however.  In any case, I suspect other
considerations are going to drive each hacker's choice of which way
to run.
        regards, tom lane