Sebbi basically said it all. But I want to add a few points here and there.
I think the problem is that distributed version control is a bit hard to grasp at first for devs who are deeply entrenched in SVN or CVS.
Hamburger wrote:good points all of them. The current setup effectively establishes a workflow which everyone has to follow. This may be a hindrance to individuals who choose to select and pick features/patches from various sources. But it strengthens the common project code as all developers are forced to constantly go through a comon branch, namely _shared. This way, most of the integration workload is constantly split among the registered developers.
Like Sebbi tried to convey it is a hindrance to *everyone* who wants to contribute and is not in the group of registered devs.
Every registered dev is still forced to go through the same branch.
You make it sound like the point is to not have a core Dev-Team anymore, which it is not of course.
In the past we have had a fair amount of side effects from commits that got discovered quickly because every developer has to constantly update to the common code base and verify the code against their settings and hardware. I would not want to see people trade lists of sites or patches to grab from all over the net to obtain a more or less recent combination supporting their hardware and supported features.
Everyone would *still* have to update from the common code base, i.e. "pull" from the main repository.
The tremendous upside is that you can keep a branch with a new feature you might be developing in sync with the main codebase.
There are quite a few forks from the MultiWii SVN like alexmos which over time diverged too far from the main codebase to be usable.
It's just not possible to continuously integrate new changes into an SVN fork.
With regard to the "construction kit" model you are alluding to: That is of course not what it should come to. You conflating users and potential developers here. It would be the responsibility of the core dev team to integrate the useful ones. With Github you at least have an avenue of doing that easily via Pull Requests.
The discussion ponders around the ease of use for those individual developers who prefer their separate branches versus the enforced strength/integrity of the main branch. My choice is clear - I am all for the enforced workflow leading to one common branch, even at the cost of possibly missing a patch that never makes it into the main branch.
Looking at the commit history "strength" and "integrity" are certainly not the first words that come to mind when talking about _shared

At the moment there is basically no quality control, no coding conventions are in place. If something blows up you even have a hard time figuring out what even happened because often times many commits are lumped together.
Like Sebbi mentioned the workflow could be carbon-copied from SVN to Git. What I would add to that is the following:
On Github you can have teams (oraganizations in Github lingo) which will resemble the core dev team on Google Code.
You could enforce branch-based access control with server-side hooks so that only Alex can push to, let's say a master branch, and every other core dev is pushing his changes to a branch named "shared" or whatever.
copterrichie wrote:Why not create a video tutorial for us noobs?
That would be a bit excessive but a nice Wiki page with pretty pictures would do the trick wouldn't it?
I'd be the first one to contribute to that
