News for hackers. Stuff that matters.
Re:Subversion to enable Git-like features by jrockway on Friday February 19, 2010 @08:30AM (#1136843)
But Subversion's UI is horrific and its common operations throw away data in many cases. If Git is the Linux of version control systems, Subversion is the Windows of version control, and I don't mean that as a compliment. At least it's possible to get Linux working.
Re:Subversion to enable Git-like features by AndrewDucker on Friday February 19, 2010 @08:50AM (#1136879)
SVN's UI is generally hidden. There's AnkhSVN which is a plugin for Visual Studio, for instance. And one that follows the standard Source Control plugin structure, rather than working in a non-standard way (as the Git one does).
Re:Subversion to enable Git-like features by InclinedPlane on Friday February 19, 2010 @09:17AM (#1136937)
You miss the point. The problem is that you think "Subversion is the Windows of version control" is an insult. Windows is the world's most prevalent desktop operating system, by a huge margin. Windows is responsible for around $4 billion dollars of profit per year for Microsoft. Only a fool dismisses a fact like that as irrelevant, obviously Windows is doing something right.

Both Git and Linux are very ideologically pure in their design and construction. This has considerable benefits in some areas (I'm a huge fan of Linux as a server) but leads to a degree of maniacal zealotry in the developer and fan-base which ultimately causes the projects to become self-limiting.

I like Linux. I like Git. I think the technology underpinning both is fantastic. I'd like to see them both succeed. I'm just sad that there are so many zealots peddling the idea that any flaws (and there are many for Linux on the desktop and for Git as a tool for every dev in the world) can be swept under the rug because of the awesomeness of the ideological purity of their construction.

Re:Subversion to enable Git-like features by jrockway on Friday February 19, 2010 @11:53AM (#1137330)
As a technical person, I care about technical merit, not whether or not something is a cash cow for the manufacturer. I use Windows at work, and I watch it waste hours of my own time and my coworkers time. Just yesterday, my friend had some random problem with his roaming profile -- it started taking 25 minutes to log off. We tried various things that the support folks recommended -- the result was a wasted day (costing our employer hundreds of dollars in lost time), and the problem still persists. Maybe reformatting his machine and removing and re-adding the account in AD would fix the problem. The fact is, nobody really knows. Nobody knows why this is happening, and nobody knows how it can be fixed. That's what you pay hundreds of dollars for -- software that is so unmaintainable that even Microsoft can't fix it. At least with Linux, you can read the source code and figure out how to fix something. (I can't think of any problem with Linux that can't be fixed, given time. But there are a lot of Windows problems that can never be fixed.)

Back on to the topic of version control, Subversion has a major flaw -- its common operations throw away your data. It deletes your fucking work! That's exactly what a version control system should never do.

Git may have overly-sugary frontends that require a lot of manpage perusal, but one thing it doesn't do is lose your work. (Even "git reset --hard" is relatively safe; just "git checkout HEAD@{0} and it's reversed!)

I don't get how Subversion is simpler, either. Common operations:

To create a repository with Subversion, you have to find some central place to store it, setup permissions, add users, and finally you can import your files. With git it's just "git init; git add .; git commit -m 'initial import'". You can deal with replication later -- right now you can just work.

To checkout a branch with Subversion "svn switch <some long http URL that has to be exactly right or it fails>". With git, "git checkout <branchname>". To merge a branch, "git merge <branch>". To push your changes to the server, "git push". To pull changes from the server without losing data in your working copy, "git pull --rebase". (That operation is not possible with Subversion, "svn update" brings your working copy into an inconsistent state that can't be reverted -- it creates a local branch, but without any tools to manage it.)

Anyway, Subversion is not good. Git is comparatively not that bad.

From a software engineering perspective, svn is probably better. But it's a well-engineered bad design. Git is a poorly-engineered good design. Good designs always beat good implementations. (Darcs is a great example of this -- great code quality, bad model. Still better than Subversion on both counts, though, of course.)

Re:Subversion to enable Git-like features by cookiecaper on Friday February 19, 2010 @09:39AM (#1136990)
The only reason Microsoft is on the top is its marketshare. People don't want to know anything about their computers, they just want to watch funny videos and talk to their friends.

If you sit someone in front of something that doesn't look like Windows, they flip out. My grandma flips out when we try to show her something on our Linux computers, she says, "Where's your icons? Why does this look different? This is crazy."

The sad thing is that a lot of this is Microsoft's fault in the first place. They've used their marketshare totally irresponsibly. Failings in the design and implementation of Windows have made users almost universally afraid of tinkering with their computers because of the possibility of breakages, viruses, and other unpleasant consequences.

Windows is #1 because of its marketshare and that's it. There may have been reasons they got to #1 a long time ago, but those are irrelevant now. What's relevant now is that Windows keeps on trucking because any program or component you pick up at the store will work on Windows, because everyone uses Windows, and you wouldn't make any money selling something that Windows can't work with. Everyone knows how to use Windows; they know to click the Start button, to click on the blue E, they know where things are. It's just like the systems they use at work or school.

For most people, the reason they choose Windows is because Windows is everywhere, and that's it. You won't find many people saying that they want to use Windows because they love the concept of the Start button. They use Windows because they know how it works. A few smaller niches use Windows because a program or a set of programs that are important to them run [well] on it. Very, very few use Windows because of Windows itself.

So, uh, now that we're done with that tangent, I think the Linux community recognizes the need for usability. You should read Planet GNOME or Planet KDE more often; there are frequently posts there about usability studies and improvements on their software. They are making strides. It's just that getting cooperation, funding, etc., is an uphill battle when your installed base is under 2%.

Re:Subversion to enable Git-like features by InclinedPlane on Friday February 19, 2010 @10:05AM (#1137061)
Windows is #1 because Windows is #1? There's certainly something to be said for network effect, but this particular line of reasoning seems more suitable to a tautology club meeting - http://www.xkcd.com/703/
Re:Subversion to enable Git-like features by cookiecaper on Friday February 19, 2010 @10:23AM (#1137102)
Can you tell me what features of Windows compel the normal user to buy it? Compatibility doesn't count because generally people will make their wares compatible with whatever has enough marketshare to seem profitable.

Compatibility and familiarity are features of Windows's ubiquity, not Windows itself. What other reason does one buy Windows?