RE: Subversion vs other source control systems

2008-02-17 Thread Noel J. Bergman
Santiago Gala wrote:

 Noel J. Bergman escribió:
  No project was allowed to stay with CVS.  No project will be allowed to
  use another source control system unless it is adopted at the ASF
  level.  Source code is a critical, shared, public resource maintained
  by the Foundation, not something whose storage is managed on a project
  by project basis.  The Infrastructure Team maintains and protects that
  shared resource on behalf of the Foundation.

 If I remember correctly, the policy was not to impose subversion, but to
 mandate end of life for CVS.

You remember incorrectly.  The mandate was to migrate from 
Infrastructure-managed CVS to Infrastructure-managed Subversion, not from CVS 
to the SCM of your choice.

 If I remember correctly, this was due to security concerns, CVS requiring
 user accounts in the machine where the repository is stored while subversion
 does not. Also functionality. Also that having a lengthy transition was
 stressing infrastructure. I have been looking into mail archives but have
 not found a pointer yet.

There were a variety of reasons, including the above, but none of that 
addresses your apparent belief that the ASF should support ad hoc and arbitrary 
selections of critical infrastructure by individual projects.

 - you are no longer considering the Foundation as an umbrella for the
   projects, but as an entity with a life that, I see from your reaction,
   needs to protect itself from the (some?) projects

That is an extreme interpretation.  I could as easily say that you are in favor 
of each project being able to maintain its own critical infrastructure on any 
servers anywhere with arbitrary security and community practices.  I don't 
believe that is your actual view, but I could take your words to say so.

 - The infrastructure team is a Police body (to serve and protect)

Saying that ensuring availability and safety (from loss and/or tampering) is 
one of the goals we have with respect to our data is hardly the same as your 
claim.

 Information can be copied and still stays the same, trying to restrict
 it to a server is really futile and wasting.

I have no idea what you're talking about here.

 I don't think centralization has ever been part of the Apache way.

But visibility of the content and process very much IS part of the Apache Way.

Most of the use cases mentioned so far for git, including some where people are 
using it on top of SVN with ASF projects, run counter to ASF principles.  It is 
*NOT* in our best interests and practices for people to work in private on bulk 
code, and periodically submit big changes.  We want those changes made in 
public view in Subversion branches where the Community can see the work in 
progress, not when it is complete.  We need to reeducate people who believe 
otherwise.

That said, I am not saying that people can't use whatever SVN client(s) they 
want to use.  I am saying that (a) the ASF has a uniform source control 
infrastructure, which is currently based on SVN servers, and (b) our practices 
mean that development is done in public, not done in private and submitted en 
masse as a fait accompli.  These statements are independent of the SCM 
technology used by the ASF.

--- Noel



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Subversion vs other source control systems

2008-02-17 Thread Noel J. Bergman
Dirk-Willem van Gulik wrote:
 Ross Gardler wrote:
  I understand that GiT can be used locally as a layer on top of SVN.
  I believe this gives you most of the perceived benefits of GiT
  locally without the need for a project itself to switch to GiT.

The issue isn't git as an SVN client.  No one (as far as I know) cares what
SVN client(s) you use, so long as they don't abuse our SVN server.

 I am a bit lost here as well -- what does GiT add to the processes/
 workflows common in the ASF ?

 One of the great things about GiT is that you can can have lots of
 parallel and non-linear merges (every developer their own branch;

 However in the ASF most groups work roughly along fairly linear lines;
 with 'one' or just a 'few' points at which a patch is accepted - and
 essentially few, or just one, merge point (or a single line of merge
 points when backported). Rarely do we merge multiple 'HEAD's.

And most importantly, we want our development to be visible to the
Community, not done in private and committed when finished.  Developers can
always make more or less transient branches to work on code, still in public
view, and merge back to shared locations.  The key point here that I believe
you, I, William and others are all making isn't about technology, it is
about practice.

Now, if there is an SCM that substantially improves the ASF's ability to
perform *our* practices, that is a separate discussion item.

--- Noel



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Subversion vs other source control systems

2008-02-17 Thread Justin Erenkrantz
On Feb 17, 2008 7:51 AM, Noel J. Bergman [EMAIL PROTECTED] wrote:
 But visibility of the content and process very much IS part of the Apache 
 Way.

 Most of the use cases mentioned so far for git, including some where people 
 are using it on top of SVN with ASF projects, run counter to ASF principles.  
 It is *NOT* in our best interests and practices for people to work in private 
 on bulk code, and periodically submit big changes.  We want those changes 
 made in public view in Subversion branches where the Community can see the 
 work in progress, not when it is complete.  We need to reeducate people who 
 believe otherwise.

 That said, I am not saying that people can't use whatever SVN client(s) they 
 want to use.  I am saying that (a) the ASF has a uniform source control 
 infrastructure, which is currently based on SVN servers, and (b) our 
 practices mean that development is done in public, not done in private and 
 submitted en masse as a fait accompli.  These statements are independent of 
 the SCM technology used by the ASF.

+1.  -- justin

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Subversion vs other source control systems

2008-02-17 Thread Leo Simons

On Feb 17, 2008, at 4:51 PM, Noel J. Bergman wrote:
Most of the use cases mentioned so far for git, including some  
where people are using it on top of SVN with ASF projects, run  
counter to ASF principles.


Let me fix that:

  Use case: work on apache project while on plane
  ---
  * export list of jiras of your favorite ASF project into spreadsheet
  * sync project repo to your laptop
  * get on a plane for 14 hours
  * slave away at the bug list, fixing a bunch
* create one patch per bug, with a good commit message, referring
  to the bug report, and commit locally
  * get off the plane
  * get online
  * sync project repo to your laptop
* resolve any conflicts
  * for each bug report
* submit and commit the fix
* close the bug report

This is easy to do with git. It's a small nightmare with SVN,  
especially if your project is a million lines of code.


(you could substitute while on plane with even if network craps  
out at hackathon or with at a customer site with big firewall)


I am saying that (a) the ASF has a uniform source control  
infrastructure, which is currently based on SVN servers, and (b)  
our practices mean that development is done in public, not done in  
private and submitted en masse as a fait accompli.  These  
statements are independent of the SCM technology used by the ASF.


Exactly!


cheers,


- Leo


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



xmlbeanscxx project revival

2008-02-17 Thread Rafal Rusin
Hello,

There is an ongoing development of xmlbeanscxx at TouK side, because of
needs for this project. We are willing to provide our recently released
version to Apache. We are also aiming at releasing version 1.0. There are
2 things left to implement to version 1.0: XPath evaluation and XmlCursor
support. Those are partially implemented now. There is also a support for
Microsoft Visual Studio compiler done using CMake build tool.

Is it possible to revive this project at Apache Incubator?

The latest version is currently released at sourceforge
(http://sourceforge.net/project/showfiles.php?group_id=118556) due to
closing down at Apache Incubator.

Regards,
-- 
Rafał Rusin
www.mimuw.edu.pl/~rrusin


Re: Subversion vs other source control systems

2008-02-17 Thread Santiago Gala

El dom, 17-02-2008 a las 19:12 +0100, Leo Simons escribió:
 On Feb 17, 2008, at 4:51 PM, Noel J. Bergman wrote:
  Most of the use cases mentioned so far for git, including some  
  where people are using it on top of SVN with ASF projects, run  
  counter to ASF principles.
 
 Let me fix that:
 
Use case: work on apache project while on plane
---
* export list of jiras of your favorite ASF project into spreadsheet
* sync project repo to your laptop
* get on a plane for 14 hours
* slave away at the bug list, fixing a bunch
  * create one patch per bug, with a good commit message, referring
to the bug report, and commit locally
* get off the plane
* get online
* sync project repo to your laptop
  * resolve any conflicts
* for each bug report
  * submit and commit the fix
  * close the bug report
 
 This is easy to do with git. It's a small nightmare with SVN,  
 especially if your project is a million lines of code.
 

A big +1 on this use case. Have you tried this one?

Also: you keep a long term branch for doing some refactoring, and you
fix small bugs both in HEAD and in a release branch, merging and
backporting/forwardporting as you go. Again, something like git makes
the work simpler and keeps the disk requirements under control.


 (you could substitute while on plane with even if network craps  
 out at hackathon or with at a customer site with big firewall)
 
  I am saying that (a) the ASF has a uniform source control  
  infrastructure, which is currently based on SVN servers, and (b)  
  our practices mean that development is done in public, not done in  
  private and submitted en masse as a fait accompli.  These  
  statements are independent of the SCM technology used by the ASF.
 
 Exactly!
 

Agreed too.

 
 cheers,
 
 
 - Leo
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Subversion vs other source control systems

2008-02-17 Thread Santiago Gala

El dom, 17-02-2008 a las 10:58 -0500, Noel J. Bergman escribió:
 Dirk-Willem van Gulik wrote:
  Ross Gardler wrote:
   I understand that GiT can be used locally as a layer on top of SVN.
   I believe this gives you most of the perceived benefits of GiT
   locally without the need for a project itself to switch to GiT.
 
 The issue isn't git as an SVN client.  No one (as far as I know) cares what
 SVN client(s) you use, so long as they don't abuse our SVN server.
 

I think git-svn abuses the server a lot, as the subversion server is not
designed for copying of the whole history. 

I agree that exporting svn to git/bazaar/mercurial, etc is a way
forward, but it will cause strain to the svn server, for sure. As seen
elsewhere, Jason took this path, and I'm actually using this technique
in a number of places, both with git-svn and bzr-svn. I will keep
reporting.

  I am a bit lost here as well -- what does GiT add to the processes/
  workflows common in the ASF ?
 

I already answered to this one in the thread. 

- faster commits, branch switching, pulls and pushs
- merges, good and persistent merges
- offline work, offline history diffs
- rebasing is not such a feature, but it can be useful sometimes
- publishing lots of repositories helps surfacing patches that are
currently hidden until ready for sending/committing

I hope helping each and every developer/contributor counts as helping
the ASF.

  One of the great things about GiT is that you can can have lots of
  parallel and non-linear merges (every developer their own branch;
 
  However in the ASF most groups work roughly along fairly linear lines;
  with 'one' or just a 'few' points at which a patch is accepted - and
  essentially few, or just one, merge point (or a single line of merge
  points when backported). Rarely do we merge multiple 'HEAD's.
 

huh? every vendor keeping patches against apache repositories is
merging often. I don't follow your reasoning, anybody keeping patches is
merging repeatedly against a moving HEAD (for active projects). In my
view, every developer that maintains patches is in effect having a
*private, unpublished* branch. With git and a setup like the one in
kernel.org, all those patches are suddenly public, visible. Think about
it.

 And most importantly, we want our development to be visible to the
 Community, not done in private and committed when finished.  Developers can
 always make more or less transient branches to work on code, still in public
 view, and merge back to shared locations.  The key point here that I believe
 you, I, William and others are all making isn't about technology, it is
 about practice.
 

The inability of subversion to remember merged results makes working in
a branch unpractical. Been there, done that, very tricky.

Personal repositories can be kept in public, you just can look into the
different branches in http://git.kernel.org/?p=linux/kernel to see how a
number of those are updated a lot.

Turning your key poing upside down: We should not try to impose our
practices using a technological tool, specially when doing so impairs
development.

 Now, if there is an SCM that substantially improves the ASF's ability to
 perform *our* practices, that is a separate discussion item.
 

I'm quite sure currently any one of git, bazaar, mercurial or even darcs
would improve our practices.

Just to make sure, my view of the discussion: 

people *against* changes in SCM is blaming a hypothetical introduction
of git of breaking the ASF practices

I don't think the discussion is, and never was presented as:

evil revolutionaries wanting to break the practices by introduction of
sneaky solipsistic tools.

I don't think git will break ASF practices more than keeping quilt
patches, or several repositories, to survive svn up without nasty
conflicts.

Regards
Santiago

   --- Noel
 
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Subversion vs other source control systems

2008-02-17 Thread Justin Erenkrantz
On Feb 17, 2008 3:34 PM, Santiago Gala [EMAIL PROTECTED] wrote:
 Also: you keep a long term branch for doing some refactoring, and you
 fix small bugs both in HEAD and in a release branch, merging and
 backporting/forwardporting as you go. Again, something like git makes
 the work simpler and keeps the disk requirements under control.

In an attempt to stop some of the outright FUD in this thread before
it goes on to yet another mailing list...

I've found that svnmerge.py (distributed with SVN) handles pretty much
all of the branch/merge tracking capabilities that I personally care
about.  (The drawback is that it isn't as efficient as we'd like, but
it's good enough.  The 1.5 stuff is *way* faster.)  From your
statements, you probably haven't bothered to try svnmerge.py (usable
with 1.4.x) or any of the new reintegrate merge stuff in 1.5.  It
makes it pretty brain-dead simple to handle most branch-oriented
merging cases.  There are a few pathological cases that don't work
well, but that's 'reflective' merging which isn't the 95% use case -
so it got punted to post-1.5.  (svnmerge.py is probably the 80% use
case, with 1.5 merge tracking being 90%, and reflective merging being
that last gap...)

FWIW, for svn.apache.org, I have a feeling we'll probably be a tad
aggressive on rolling out 1.5.
(Besides merge tracking, there are a number of excellent features in
1.5: changelist support, interactive conflict resolution, read/write
transparent proxies, integrated 'diff -x -p' support, substantial
svnsync speed improvements, partial svnsync ability, etc.)  Note that
nothing is stopping you from using svnmerge.py today.  If folks are
going to complain about switching to another SCM because of a lack of
decent merging, then they owe it to themselves to check out what
Subversion can actually do rather than what they think it can do...
-- justin

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Subversion vs other source control systems

2008-02-17 Thread Assaf Arkin
On 2/17/08, Noel J. Bergman [EMAIL PROTECTED] wrote:

 But visibility of the content and process very much IS part of the Apache
 Way.

 Most of the use cases mentioned so far for git, including some where
 people are using it on top of SVN with ASF projects, run counter to ASF
 principles.  It is *NOT* in our best interests and practices for people to
 work in private on bulk code, and periodically submit big changes.  We want
 those changes made in public view in Subversion branches where the Community
 can see the work in progress, not when it is complete.  We need to reeducate
 people who believe otherwise.

 That said, I am not saying that people can't use whatever SVN client(s)
 they want to use.  I am saying that (a) the ASF has a uniform source control
 infrastructure, which is currently based on SVN servers, and (b) our
 practices mean that development is done in public, not done in private and
 submitted en masse as a fait accompli.  These statements are independent of
 the SCM technology used by the ASF.


With all the recent interest in distributed version control, I decided to do
some research.  I looked at git, hg and bzr and nothing that I read out
there convinced me that any of them offers a significant advantage over SVN.

So I decided to try one.  The productivity gain was enough to win me over.
 My experience is that it works much better especially for projects that
involve a distributed community of developers.

DVC do not use the same terminology as SVN.  With SVN you check out code
into your local working copy, with DVC the working copy is a repository, so
checking out is effectively creating a branch.  Likewise, you do not commit
from working copy to central repository, but merge from your local
repository to a more authoritive one.

So I can see how it sounds like developers on DVC are working in the dark on
big changes outside of community visibility, but only because with SVN
branches tend to encapsulate large changes.  In DVC branching and merging
are done instead of checkout and commit, there's nothing anti-social about
this practice.


It's also only when you consider that every svn update and svn commit is
essentially a merge (in DVC terminology) that you realize how frequent
merges are, any why any small improvment on merge is a significant benefit.

My experience is mostly with small projects, and it does make a difference
even when working in small teams, so definitely something we should consider
for incubation projects.  In fact, I think it will be easier and lower risk
to start the journey to DVC there.


Assaf