April Fools: migrate Apache Subversion project over to the git repo
issues.apache.org
issues.apache.org
Considering the lameness[1] of april fools jokes on the interwebz in the past few years, this was refreshingly amazing.
I can't remember the last time I was actually tricked by an internet april fools joke; this one totally got me. I believed it until I saw this HN post.
A+ for fantastic execution.
> You can clone with HTTPS, SSH, or Subversion.
rest of the world thought: man, is SVN really so bad that even the devs won't use it? That's sad, but hey, they're responsible developers choosing the best tool for the job.
now that we know it was a joke, are we more convinced that SVN is great?
If any SVN dev truly believes that svn is better than Git in any technical sense then
I wouldn't trust the engineering judgment of that developer.
Hi. Small-time Mercurial contributor and Kiln founder. I use both Git and Mercurial in my daily workflow, and only on very rare occasions touch Subversion.Subversion is better than Git and Mercurial in at least several key areas:
1. Access controls. While this is not necessary for individual products, or even many
companies, only Subversion offers the kinds of access controls that some large companies
require. While you can *work around* that by sharding your code into tons of repositories,
not all companies want to do that, and I don't honestly blame them.
2. Very large repositories. Facebook's work on Mercurial finally allows Mercurial to
scale to those sizes (with significant trade-offs), but Git still cannot.
3. Very large files. Game companies in particular need to do asset management. Subversion
can work with large files directly, Mercurial can kind of "fake out" working with them
directly through largefiles, and Git forces you to use a third-party tool like Git annex
with a custom workflow.
4. Interop with legacy tools. Subversion repositories can be accessed trivially with WebDAV,
which, while I honestly think is mostly a antifeature, does allow random people in your
office to trivially access things in Subversion directly via Finder/Gnome/Windows WebDAV
support (and even commit, with proper settings, simply by saving).
Just because Subversion doesn't use Git's branching system and isn't distributed doesn't mean it's totally without merit, and someone so wrapped up in Git's ecosystem that they can find no merit left in Subversion is a developer who likely has an irrational approach to evaluating systems.1) yeah, although I question the sanity of doing this. 2) is this related to #3? 3) yes, but IMO VCS should be used for source files (mostly). large assets should go in an artifact repo. But you are right - putting giant files in git is a terrible idea, especially if you change them often.
the sanity of access control?
> is this related to #3?
Not necessarily.
> yes, but IMO VCS should be used for source files (mostly). large assets should go in an artifact repo
Great, so now the code and the assets going with the code, both being used to build the product, are completely out of sync and essentially unsyncable?
>Great, so now the code and the assets going with the code, both being used to build the product, are completely out of sync and essentially unsyncable?
no. read up on artifact repositories. you declare the asset version that you depend on in your a build script. the assets are fetched from the artifact repo.
there pros and cons of course...
Yes, that's "essentially unsyncable" when you have thousands of assets and have to keep them synchronised by hand. It has the same sanity as considering tarballs to be a good version-control scheme.
> there pros and cons of course...
I see no pros compared to a VCS which can handle code and other assets in the same repository and keep them naturally synchronised by virtue of them being naturally synchronised.
these assets can be referenced by many other systems, not just your source repo.
Don't you now? How else is your tool going to know which version of an asset it's supposed to fetch from the asset store without you telling it?
> ever heard of ruby gems, maven, gradle, npm? these assets are all versioned and available via http.
> these assets can be referenced by many other systems, not just your source repo.
Wow, great, now game developers can do something they have absolutely no desire to do, at the small cost of not being able to do what they need. I'm sure they'll be thrilled.
However I stand by my statement on the technical underpinnings. The fact that svn does not distinguish between a repo, a directory, a branch and a tag means that it is ill-defined and is an evolutionary dead-end. Incidentally there are some benefits for things that git does poorly, but that doesn't make it a good architecture.
The big problem with a DVCS is that if you are doing asset control on a lot of binary files is that when someone clones the repository they need to clone all versions of all large binary files. This is a mess. Checking out a revision and working with it is far cleaner. For example, if you are doing a lot of work on, say, PSD files, you probably don't want to use a dvcs generally as it will use needless disk space and network bandwidth for marginal benefit.
As for your 4th point, there are plenty of times I refer people to use wget to get the latest version of a file on svn from a specific branch. This is actually a very nice feature. We are looking at moving LedgerSMB to github and their subversion support makes this decision easier in part for that reason.
I tried to use libgit2 for a project last year and a coworker did a couple of patches and I can say that there's still a lot of ground to cover until libgit2 is at least somewhat feature complete. Back then, clone via SSH and other _must_have_ features were unimplemented.
What were the other must-haves that were missing?
[0] https://plus.google.com/+LinusTorvalds/posts/X2XVf9Q7MfV
"If any SVN dev truly believes that svn is better than git in any technical sense then I wouldn't trust the engineering judgment of that developer."
and I gave one example in which svn 'is better than git in a technical sense'.
More importantly, I specifically alluded to use cases that svn is better than git for. In no way did I ever "argue that there is no single use case which wouldn't be affected by this".
> And plenty of thanks to all of my co-conspirators on this issue. Yes.. even my antagonist [~jimjag] was in on the ruse :-) … the Infra team handled this with perfect aplomb. And the Directors and Exec Officers came in with a perfect level of wrath. Our Subversion teammates showed a great sense of community and circling the wagons… Thank you all for making this work!!!
I thought Apache was saying they were moving all their projects to git from svn. I didn't realize svn itself was an Apache project.
Git is already supported by many Apache projects, though. The Apache Flex team did the move quite a while ago, so their primary repository is in Git.
I understand the need of self-hosting/dogfooding/whatever, so it wouldn't probably be a good idea, but it's not something to flatly dismiss just out of principle.
More seriously, I believe that SourceSafe was maintained on Microsoft's fork of Perforce, but I don't honestly know, nor do I have contacts at this point who'd be able to find out.
CSSC, which is the GNU project's implementation of SCCS. It uses git: http://www.gnu.org/software/cssc/ . CSSC is meant as a stepping stone to migrate existing SCCS projects to some other version control system.
Sun released SCCS in 2006. A couple of forks exist. One is the Heirloom project. If I read http://heirloom.sourceforge.net/devtools.html correctly, they maintain their version of SCCS using CVS.
These are unlikely to affect your vote.
The whole thing was clever, but I'm not sure it counts as as being "fooled" when the gag specifically denies being a gag. I'm not sure I like this precedent (and I love April Fools jokes in general).
But maybe the article from yesterday was a third-party source who had fallen for it? If that's the case, then well-played. :)
Bravo, Apache, nicely done.
There was no vote, and it's not going to happen.
Sublime Text 3 Stable is approaching http://www.sublimetext.com/forum/viewtopic.php?f=2&t=15741
Stackoverflow did it better in my opinion (lots of hints): https://news.ycombinator.com/item?id=7507830
The best April Fools jokes are ones that are actually plausible. Bonus points for being controversial as well.
Without some degree of plausiblity it's not an April Fools joke.
Now it is just used as a vapid, contrived marketing exercise.