delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2014/04/16/21:06:50

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
Message-ID: <20140417010616.26473.qmail@stuge.se>
Date: Thu, 17 Apr 2014 03:06:16 +0200
From: Peter Stuge <peter AT stuge DOT se>
To: geda-user AT delorie DOT com
Subject: Re: [geda-user] Freerouting finally free (GPL3)
Mail-Followup-To: geda-user AT delorie DOT com
References: <1395878918 DOT 2126 DOT 7 DOT camel AT AMD64X2 DOT fritz DOT box> <53477BD5 DOT 3070001 AT xs4all DOT nl> <1397238146 DOT 861 DOT 11 DOT camel AT AMD64X2 DOT fritz DOT box> <201404111621 DOT 02147 DOT ad252 AT freeelectron DOT net> <534BED69 DOT 4050703 AT estechnical DOT co DOT uk> <534C1B44 DOT 20401 AT xs4all DOT nl> <20140417000357 DOT 21967 DOT qmail AT stuge DOT se> <201404170012 DOT s3H0C0SU021800 AT envy DOT delorie DOT com>
MIME-Version: 1.0
In-Reply-To: <201404170012.s3H0C0SU021800@envy.delorie.com>
Reply-To: geda-user AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: geda-user AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

DJ Delorie wrote:
> > It's even simpler than that, thanks to git.
> > 
> > > git://git.geda-project.org/pcb.git
> > 
> > Just clone this, write the code, and then publish it somewhere.
> 
> How is creating and publishing a new repo elsewhere simplier than
> using an existing repo?  Especially since Bert already has write
> privs in geda-project's repo?

The original question was not from Bert, asking what a process might
look like. Bert replied with steps that work great for him, but I
wanted to clarify that requesting write access to the main repo is
absolutely not a neccessity for doing pcb development.


> I understand that git (or any SCM) lets you make copies of repos all
> over the internet, but just because you CAN do it doesn't always mean
> you SHOULD do it.

Funny you should write that. :) It is in fact impossible NOT to make
a copy of a git repository if you want to actually work with it.

git clone is very accurately named; every clone is indeed a complete
clone of the cloned repo, and that is definitely how it should be.

This is a key feature of distributed version control, and many who
are used to centralized version control struggle with wrapping head
around it.

The big difference is that DVCS repos are *intended* to be cloned,
for purely technical reasons, and without implying anything
whatsoever about the intent of those clones.

This is a significant difference to a centralized VCS, where having a
copy of the repo implies a competing centralized point of version
control; ie. what is traditionally called a project fork.

DVCS repo clones/copies do not carry any such implied intent, because
all of those repos are equal.


> It would be much easier to find all gEDA-related
> development, for example, if it happened in the gEDA repository.

A DVCS such as git allows powerful workflows where development is
very conveniently structured. Especially a project such as
integrating freerouter into pcb would do well living in its own
branch somewhere, and that somewhere shouldn't neccessarily be the
main pcb repository as long as the work is ongoing and the direction,
requirements or side effects are still not fully known.

It's a good thing to publish ongoing work as early as possible, it
translates to a more efficient development effort, but on the other
hand, early work doesn't neccessarily belong in the primary project
repository, even if it has a branch of its own.

Publishing commits for a DVCS repo is always distinct from any intent
to manifest a competing project. The latter does imply the former,
but never the other way around.

Publishing ongoing work on top of pcb.git master either using some
hosting or by patches to the mailing list in the general case means
that someone is proposing changes to the current pcb.git state.

Publishing the commits on one hand solicits review, but at the same
time it is also already enough for project maintainers to include the
proposed commits into the project - and trivially so using git fetch,
cherry-pick and am, if the commits are published using git's own
tools.

Of course you are right that it's nice to make ongoing work easily
available, but the point with a DVCS is that it does not dictate
*how* that happens, and using the primary repo is only one of several
useful ways.


//Peter

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019