Re: PostgreSQL 8.4 development plan - Mailing list pgsql-hackers

From Mark Mielke
Subject Re: PostgreSQL 8.4 development plan
Date
Msg-id 47AB8554.5070507@mark.mielke.cc
Whole thread Raw
In response to Re: PostgreSQL 8.4 development plan  (Fabien COELHO <coelho@cri.ensmp.fr>)
List pgsql-hackers
Fabien COELHO wrote:
> ISTM that a decentralized or distributed SCM for PostgreSQL would be a 
> bad move, however great it would be at branching and merging.  For me 
> it is a philosophy question: if PGSQL is a "common work", then 
> everything should be open and shared, and a centralized systems make 
> sense to embodied this. Even if one can publish one's branch easily 
> with GIT, it's not the same, because it is still a personnal branch 
> somehow.

> I'm not sure I would be proud to use such a stupidly named tool for a 
> "common work". I really do not share Linus humor, and apparent 
> contempt for other people. GIT implements "I want to chose whom I work 
> with, and don't care about the others, and don't ever want to have to 
> look at their ugly patches", or at least it is what I understood from 
> his talk at Google last year. Would this be the future spirit of PG 
> devel? I hope not.

I don't particularly care what it is called or what Linus' intents were. 
Linus has changed his public face on git several times since its 
creation, and I think he is playing with people, manipulating them into 
launching Linux and GIT into open source history. From a political stand 
point, it's about attracting the right sort of people to donate their 
time to your project. Different types of honey attract different types 
of folk. :-)

Your points on centralization are ones that I mostly agree with and 
share. I think it depends on whether you believe that freedom of 
software needs to be enforced, or whether you trust that freedom of 
software will occur on its own as a natural result. Many of us, 
including me, are confused about where we sit on this. It's true that 
people should be encouraged to share their patches with others - as a 
centralized system would do, but should this be enforced on people as a 
centralized system would do?

What happens in PostgreSQL today with CVS?
From a pragmatic standpoint - there is no such thing as a centralized 
system, and there is no such thing as a de-centralized system. People 
work on their patches offline - whether they do this by downloading a 
tar file and patching a local copy, or whether they use CVS to keep up 
to date with HEAD, or whether they employ elaborate mirroring techniques 
to insulate themselves from CVS - they are not doing their actual work 
on a public centralized server. Only their final committed work - 
whatever they choose to commit - reaches the public centralized server. 
In many cases, patches are not welcome on the public centralized server 
because they are either immature, poorly designed, or contain 
unacceptable defects. If I want to work on a piece of PostgreSQL, I 
would probably work in private first, then share my changes on the list, 
and only once I was confident with my change, would I submit it for 
review and possible inclusion. Whether I use GIT or SVN or CVS or 
whether I use my local file system and diff between two directory 
hierarchies, these are merely tools to accomplish my ends. My process is 
basically the same no matter which tool I use. I might be more 
comfortable with one tool, and perhaps my productivity is artificially 
high on one over another because I am unwilling to invest time in 
learning the other - but it's all irrelevant from an open source / free 
software perspective. Some code is shared with the world and some is 
not. One hopes that the valuable code is shared. :-)

Do you have reason to believe that a de-centralized system would hurt 
the future of PostgreSQL? Are there any cases of existing open source 
projects that you are aware of, that have broken due to a switch to a 
de-centralized system? Or is this fear of the unknown? This is an honest 
question - and it is a question I have asked myself.

In my case, I see benefits to a de-centralized system, and benefits to a 
centralized system, but find neither to be compelling in terms of 
choosing a product. My focus has always been on tighter control of the 
changes, reliable merge techniques, and proper change set history 
storage and retrieval. I find it unfortunate that the open source / free 
software community has been unable to produce a "best of all worlds" 
solutions. There is no reason why SVN needs to suck at merging - except 
that the people who cared about merging didn't like the look of SVN and 
moved on to create other tools instead. :-(
From a PostgreSQL perspective - it is probable inevitable that people 
will choose their favourite tool to use, create or re-use existing 
mirror technology to have their way, and the side with the most 
resources will win and have their way in the end. One hopes for an 
overall improvement. :-)

Haha - that's my opinion.

Cheers,
mark

-- 
Mark Mielke <mark@mielke.cc>


pgsql-hackers by date:

Previous
From: "Heikki Linnakangas"
Date:
Subject: Re: PostgreSQL 8.4 development plan
Next
From: Bruce Momjian
Date:
Subject: Re: PostgreSQL 8.4 development plan