[Freedombox-discuss] Need some help on UI - was: What Do You want to use the FreedomBox for?

Ben Mendis dragonwisard at gmail.com
Mon Jul 9 22:47:35 UTC 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This is an interesting discussion so I thought I'd add my two cents.

On Tue, 10 Jul 2012, Mark Lawrence wrote:

> Hello list,
>
> Long-timer lurker, first-time post.
>
> On Mon Jul 09, 2012 at 12:54:01AM -0500, Nick M. Daly wrote:
>> On Tue, 3 Jul 2012 18:28:03 +0200, Mathieu Jourdan wrote:
>>>>     https://github.com/NickDaly/plinth
>>>
>>> By fork, do you suggest to create one more account then a third Plinth
>>> repository on github? Isn't it preferable to push to existing
>>> repositories, avoiding confusion to new contributors? By confusion, I
>>> mean it's not easy to get a clear picture on what has been done if one
>>> has to browse multiple repositories for the same piece of software.
>>
>> That's how distributed revision control systems work: each copy of a
>> repository is its own repository.  By making forking technically
>> required, it becomes a social, not technological, issue.  Projects as a
>> whole move forward when multiple forks are rolled up into a parent
>> branch.  Child branches that don't amount to anything are ignored, along
>> with parent branches that don't accept changes.
>
> That's not how all Distributed Version Control Systems (DVCS from here
> on) _have_ to work, that's just is how github chose to implement their
> model of a DVCS for "social coding" purposes. Github threw away the
> single-hub-and-spokes model and replaced it with multiple-
> hubs-and-spokes. In order to publish even the tiniest single-line patch
> to a repository, users are required to fork the *entire* project. I
> agree with Mathieu that this leads to confusion: "where is the primary
> source for this project??"

In my experience, there is rarely any confusion about the "primary"
source for a project. (Of course, what _is_ the "primary" source anyways
but an arbitrary label?)

If there is confusion about which fork on GitHub is the "official" or
"primary" source, that is probably a sign of poor management of the
project, poor communication among contributors, and/or the original
developer(s) are not being responsive enough to contributiors. In any of
those cases, maybe it's a sign that the original author(s) are not the
best "primary" source and you should consider follow a more active fork
of the project instead.

> They could have chosen instead to keep the idea of a single
> synchronisation repository with multiple branches (named
> "fork/username/*" perhaps?) and used fine-grained permissions[1] to
> allow anyone to create a new branch under the "fork/username"
> namespace, and only those who the project decides could commit above
> that. The issue tracking system could also be smart and attach issues
> to commits (which would allow for per-branch issues that migrate
> easily)

And what you're describing there would be a completely different DVCS
tool than Git. Architecturally, Git isn't designed to do that and I'm
sure Torvalds would argue strongly that it shouldn't be used that way.

Furthermore, that massively complicates things because your local copy
(which is a complete clone of the upstream repository) would then
contain EVERYBODY ELSE'S commits and branches, including tons of stuff
you probably don't care about. And if someone happens to commit and push
a bunch of large binaries, then it could create a DoS for everyone else
since Git behaves very badly with large binaries.

Github isn't forcing a "confusing" model on you, it's merely mimicking
the reality of human social interaction and how development acutally
happens. It's up to the maintainers of the "primary" copy to provide
the necessary leadership if they want to maintain their position as the
"primary" repository.

> If this were the model then the difference between a "code fork" and a
> "project fork" would be much more obvious than they are on Github.
> Unfortunately it seems Gitorious went down the same path. Just because
> DVCS allows some things to be distributed doesn't mean they all should
> be, but that's the model followed so far.

I think the model that Github and Gitorious follow is the one that makes
the most sense, given the technology and how people naturally interact.
The model that you're espousing where one person or group maintains
central control or authority seems somewhat dated. In particular, you
seem out of touch with the concept of Federation which is a central part
of the FreedomBox concept.

In the model you are proposing, the original author maintain ultimate
control as a central authority and arbitrates how commits are shared
among individual developers who are benevolently granted some minimal
access to the repository. This is not unlike the original author being
Geocities and giving users control one subdirectory on their central
webserver.

In the model used by GitHub, each user has their own full copy with full
control and access to the entire website, not just one subdirectory.
It's like having full control of your own web server, you can stick
stuff in subdirectories, or at the root of the server. You can install
whatever plugins you want or replace the framework or change the port
number or anything you like. Complete and independent control, isn't
that what FreedomBox is trying to give people?

So yes, this is slightly flawed in that GitHub is still a sort of
central authority. Except that because of the nature of the service,
you're not tied or beholden to Github in any way. As an anonymous user
you can clone any puplic repository and have your own full copy to play
with. If you create an account you can push it back up to Github, or you
could push it to Gitorious or your own server somewhere. If you want to
contribute patches back to the "upstream" project, you can do that with
'git format-patch' and send an email to their mailing list instead of
using Github. You're not locked into Github in any way, they just happen
to provide some nice additional web tools that many developers find
useful and conducive to collaboration.

That's my view on it. Git has improved how I write code, and Github has
improved how I collaborate with other developers. I don't think the
model you describe would be an improvement, I think it would be step
backwards toward CVS/SVN and all the dead projects you find on
SourceForge.

Best regards,
Ben the Pyrate

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBAgAGBQJP+1+HAAoJEMco5sYyM+0w6l0IANdeUEarShaALFs8ap8CxP8Q
3OUa8jMyhJjAZHoc3RgA+rwBzn/1jq5iI4S6YPkvH0aTioN4jCh69gZy6t8LXDzf
A2WxX34clEBalP4DiKvkulf+2gQodU/HAPrv+aXOxvD7SK3VX5HsKvt6oQGUqUy1
PNAf/52hmynln0jaHQM1JIACEcFaQ/VgOOqn0s7KO+n9dcpHtxtsptHOqvHAEJWI
fDib0XRfOOHgAvsUCPhUIQXW7hQmPfcclwIMeMaVaDFypZpDSzyKc3qgjvzu/uAS
HPmkxcaTSU8E8SrlINnb1Vt5WaCpW0oATCargTW+lZgWKJRDuPGoiTf+hiSBtTg=
=VYsj
-----END PGP SIGNATURE-----



More information about the Freedombox-discuss mailing list