LWN.net Logo

No D on DVCS via github?

No D on DVCS via github?

Posted Dec 13, 2012 10:01 UTC (Thu) by yeti-dn (guest, #46560)
In reply to: No D on DVCS via github? by vonbrand
Parent article: Quotes of the week

Oh, let's dance around laughing because github does not enforce anything. It's surely better than actually looking at how people end up using github in practice.


(Log in to post comments)

No D on DVCS via github?

Posted Dec 13, 2012 22:53 UTC (Thu) by man_ls (subscriber, #15091) [Link]

With github people always have a local repo, and they can sync with it (up and down, or push and pull) when they want. With svn, if you are offline then you cannot work -- or you do one gigantic commit afterwards. Preposterous.

That is just the bare minimum; people also sync with other repos all the time, fork and sync afterwards, request merges, etcetera. It is not hard to do, there are big shiny buttons to simplify it.

Besides, the implication is that distributed git does not work unless it's centralized in a single place. Just the notion of having two or more repos as upstream is apparently too confusing for "normal people". I cannot fathom what that means in the context of developers without imagining sweat shops of lowly Visual Basic coders -- glad to switch from SourceSafe to anything else.

No D on DVCS via github?

Posted Dec 14, 2012 20:30 UTC (Fri) by mirabilos (subscriber, #84359) [Link]

That’s called “disconnected operation on a non-distributed VCS” though.

No D on DVCS via github?

Posted Dec 15, 2012 0:48 UTC (Sat) by man_ls (subscriber, #15091) [Link]

The first paragraph, yes. You get it for free with git and other DVCS. Even at this basic level you are ahead of the game with git, because AFAIK svn does not support local commits. (Perhaps other centralized VCS's have it, but in this context I am not sure it is relevant.)

Then there is the rest of the features that github makes easy, but which are trivial to anyone that has worked with patches for a couple of years.

No D on DVCS via github?

Posted Dec 14, 2012 4:13 UTC (Fri) by apoelstra (subscriber, #75205) [Link]

> Oh, let's dance around laughing because github does not enforce anything. It's surely better than actually looking at how people end up using github in practice.

People use github in as many different ways as people use git.

For example, I often use github repositories as a read-only central repository, on top of which I have a few local changes. Then I periodically sync with "git fetch origin && git rebase origin master". Maybe I'll read the new entries of "git log origin --not master" before rebasing. This is nearly the way I'd use a centralized CVS.

Other times I'll add several github repositories as remotes to a local repository. (Such as on the bitcoin project, where several developers have their own repositories where they push experimental changes.) Then I can switch between their code and mine and cherry-pick to my heart's content.

With my own code, I start working with local git repositories -- well, local in the sense that the "origin" remote lives on my backup server. Then if I want to publish things, I can just set up a github repo, add it as a remote, then push things to and from there. When people send me pull requests or patches, I can pull them to the local system and rearrange them, then push them to the github remote.

Besides, Github itself has pretty buttons for managing pull requests between different github repositories, and also has key management tools if you want to let people push directly. So they go further than just "not enforcing anything" and actively support different workflows.

The only times I use git in such a simple way that svn could handle it, I'm using "git clone" as a shortcut for wget and tar -- that is, I'm not controlling the source code at all.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds