Subversion 1.8 Released But Will You Still Use Git?
darthcamaro writes "Remember back in the day when we all used CVS? Then we moved to SVN (subversion) but in the last three yrs or so everyone and their brother seems to have moved to Git, right? Well truth is Subversion is still going strong and just released version 1.8. While Git is still faster for some things, Greg Stein, the former chair of the Apache Software Foundation, figures SVN is better than Git at lots of things. From the article: '"With Subversion, you can have a 1T repository and check out just a small portion of it, The developers don't need full copies," Stein explained. "Git shops typically have many, smaller repositories, while svn shops typically have a single repository, which eases administration, backup, etc."'"
Major new features of 1.8 include switching to a new metadata storage engine by default instead of using Berkeley DB, first-class renames (instead of the CVS-era holdover of deleting and recreating with a new name) which will make merges involving renamed files saner, and a slightly simplified branch merging interface.
short and simply, yes. If Linus says so, we obey.
First post! muajaaa!
git --bare init
Invaders must die
I really started using github regularly at the same time that I started using github.
It's grown to so much more than the underlying version control software.
It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
If you live in linux land and love using only command line, then GIT is fine. On the other hand, if you want to grab the latest code, make a change and commit, GIT sucks. It's especially true if you're using Github. Having to rebase is tiresome, especially on windows. The times I've contributed to OSS projects that used GIT, I spent 5 minutes make the code change and 30 minutes rebasing. For comparison, with SVN, I spend 1 minute to do update and 5 minutes to make the code change.
Whether you use git/mg/etc (distributed VCS) or centralized VCS systems (SVN, etc) has a lot to do with the level of control that you desire/need and how much centralization you desire/need.
For some development projects / communities, where everyone is independent and rarely connected to a central point, the distributed VCS make more sense. The downside is that you have to rely on developers to push their changes to some "master". On the other hand, it means they can work offline / disconnected.
For the less technical users, centralized VCS like SVN makes more sense. As long as you can get them to commit the changes, you're ensured that those changes are now on a server/machine that is getting backed up and taken care of.
Wolde you bothe eate your cake, and have your cake?
Going through the article it looks like a nice set of improvements. I expect that subversion users will be pleased with both the current improvements, and what will be built upon them in the future.
Among the useful improvements noted:
One of the area where robustness has been improved is in the storage of metadata. SVN now tracks the moves of working copy items. Stein noted that the harder part is getting the rest of the system to recognize the moves, and that work is ongoing. He explained that from a historical perspective, SVN didn't "move" items per se. Instead, the item was copied to its new location, and deleted from the old.
"This is problematic (for example) because if an edit comes in from the server for that deleted item, then we don't know what to do with it," Stein said. "For a moved item, then we know the edit should probably be applied to wherever the thing was moved."
much of left-wing thought is a kind of playing with fire by people who don't even know that fire is hot - George Orwell
My only complaint of SVN and the reason I moved to git.
sysadmins and parents of newborns get the same amount of sleep.
1 TB repository? Are you storing piles of binary files in there? I cant imagine how many lines of code you could fit on that.
Although I'd argue that if this is a common problem then you probably have several sub-projects.
While GIT expresses the distributed development nature of open source projects much better nowadays, SVN fits the workflow of enterprise projects much better:
-SVN has much better visual tools and is simpler to operate
-SVN has a simpler merge policies which are friendlier when there isn't a central person pulling the changes.
-SVN is very friendly for projects with a lot of binary objects (ie videogames)
-SVN allows different people to work on different directories individually, GIT doesn't.
-SVN has fine grained permissions, access and authentication controls, very useful when parts of your project (ie, APIs) are under NDA or you don't want them to leak.
They are different systems with different scenarios in mind, comparing them or claiming that GIT is killing SVN is just ignorance.
Who has a 1TB repository? Even 200GB is 15 shades of ginormous.
"I don't know, therefore Aliens" Wafflebox1
Everyone and their brother seems to have moved to Git
I've seen a lot of proprietary development moving to Mercurial, but haven't heard of anyone moving to Git. The latter seems to be much more popular for Open Source stuff.
I've used svn for years. Still do. I've have not used git. Not really on topic, but there's SourceForge Enterprise which is free for up to 5 users (I think?). Good for a very small team of developers. It turns out git has an enterprise edition too http://readwrite.com/2011/11/01/github-launches-enterprise-can#awesm=~o9dDRS2KGzeDLJ . Has anyone used git's enterprise vcs? How is it?
Yeah, but with Git at least you have the option of cloning that 1T repo if you really want to. If you try to checkout a 1T repo with SVN it will take weeks.
Git shops typically have many, smaller repositories, while svn shops typically have a single repository, which eases administration, backup, etc.
Eh... I'm not sure backup could be any easier than every developer already (automatically, by design) having the full repository on their own separate machines. I don't know much about modern SVN administration tools, but I'd also be surprised if it's easier than Git, esp. using something like Gitolite, and that's assuming you want to bother with a "central" repository at all.
I started using Git last year for my personal projects. It's a fantastic platform for coding as a social-network. I love that I can grab code I need from other developers around the world, tweak it, and send it back with a few suggestions. I love that I can follow other projects without having to get involved. Git is awesome.
That being said, we still use SVN for our internal development. The WYSIWYG interface of Tortoise is simply really comprehensive. I realize that Git offers more options, but if those options aren't available with a simple right-click, then I don't have the time for them. Tortoise SVN makes everything readily available, while Git makes me run to the command line too often.
i ~ Celebrating Science, Cyberspace, Speculation
All SCMs suck, some more than others. I liked CVS despite all its drawbacks. I can't help but dislike SVN despite all its upsides, notably its unbearably smug attitude, and especially its "documentation" drives me up the wall. Git, well, seems to be a reasonably solid bit of software and comes with somewhat usable manpages, despite its treacherous heritage. So we'll use that, reluctantly.
There are a few more alternatives I'd look at before looking at SVN again, in fact. And no apologies for not being sorry about it.
If by "back in the day" you mean "earlier this morning" in regards to CVS? Then yes, I remember, you insensitive clod!
Of course I'll still use git; I don't trust source to databases.
My screwdriver is so superior to your hammer! Need proof? Just try to fix a screw with your hammer, duh!
Move on - nothing to see here.
Never seen git. Never cared. Everyone and the dog uses Mercurial here.
For the same reason the summary complains about users having to clone the entire repo, you don't really have to deal with backups: the entire repo is already backed up by every single one of your users. In fact, this is one reason I use git, because I know that I don't have to worry about backing up. I can sync with github, and know that if github disappears, my code history doesn't go with it.
I've been using bazaar and it's everything subversion is, but better. It's had true renames since I've been using it and it really knows how to merge branches properly (which were the big big problems I've had with subversion).
If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
For personal stuff, or things I intend to share haphazardly or widely, I go git all the way. Git is great for when I need to work disconnected and still keep revisions. Its simple, its fast, its easy to make a quick repo, so quick sometimes I make one for things I wouldn't otherwise, because even if it never gets used again, the overhead of turning a directory into a git repo is trivial.
That said, there are times when i have other requirements. Things that are going to need to be tracked long term, be shared with a defined group in a specific environment, times when even if I leave forever, someone else is going to need to be able to see what I did and maintain it all... for this I use subversion.
For example, lets say I have to muck with apache configs. I can go to /etc/apache and make it a git repo; check everything in as is, then work. Nice and safe and no thinking about whether I will want one repo for all machines with apache that I administer or any of that, its in place, its quick, its low overhead.
Then later, if I find multiple apache instances that i want under control, I can make them all different branches of one repo easily, or... I can wait till I have time to really think about how I want to setup a central repo, and pull everything into that when I am ready, without getting in the way of the changes I need to make right now.
So... both really, depending on both the long and short term requirements and who I need to work with in what mode.
"I opened my eyes, and everything went dark again"
Does SVN still force all my pending changes into one commit? (and one commit message to rule them all?)
Does SVN still force my commits to be immediately visible to everyone else, meaning I can't do commits in smaller steps without risking to expose unfinished and potentially functionality-breaking changes to rest of the team? (essentially meaning I must run with uncommitted change history far longer than would be necessary or comfortable) -- And don't even think of saying "I should just make my own branch then". Branching and merging in SVN is NOT HELPFUL.
I can't in believe that these features wouldn't be a very big boon to everyone doing teamwork, no matter the company structure/size.
But definitely the ability to check out just a few folders or files is an advantage of CVS and Subversion. Git forces everything to be cloned although you can avoid dragging down the entire change history. Submodules are Git's way of decomposing projects into smaller ones and they tend to be hit and miss.
SVN is great until it subtly (or no so) corrupts either the db or your working copy. Which on Windows happens a lot because every damn SVN client has enough bugs you need to use multiple tools to get work done. Then use extreme care to stop the buggy POS clients from interacting destructively.
And once it's buggered you have an undecipherable pile of bits. RCS just worked but didn't do much, CVS did more and just worked most of the time. Both were trivially repairable when disaster struck. There are days I miss RCS badly.
Every project I have ever heard of ends up dumping BerkeleyDB. Apparently, it's a giant tar pit.
I'll just leave this here so people get to see a comparison that's actually useful.
https://git.wiki.kernel.org/index.php/GitSvnComparison
$(echo cm0gLXJmIC8= | base64 --decode)
All you need, and its FREE for small usage..
Pretty arrogant of the poster to think that everybody uses Git.
But then of the small sample of developers that I have interacted with on the topic of source control and use Git the majority are Git-Nazis and they are waaaay worse than the TFS-Nazis.
Every time someone starts talking about version control systems I zone out.
I worked in game programming several years back, and 1TB was quite reasonable. Branching meant IT would bring everyone a new hard drive to store the new branch on.
IIRC the client for one of the MMOs I worked on was a 20 gig download. The source code that actually went into that... was big, but couldn't possibly have been a gig of raw text before being compiled; the art on the other hand, was sliced, diced, squeezed and compressed to get it down into that small of a download. Art Is Huge. Especially art in the raw forms -- even if the final game art is going to be some horribly compressed format to save space, artists want to record the initial sound files in pristine high bitrate forms, and want to do the initial drawings in zillion-pixel-wide, maximum-color-depth formats, and then compress later. The intro-video that nobody watches alone probably took up more space in the repo than all of our source code files, because it was rendered for impossibly good monitors. So, in our repo, we have both the compressed MP3-low-bitrate voiceovers that go into the game, and also the uncompressed-perfect-form from the recording sessions (just in case we want to recompress to MP3 later so we can have a higher bitrate... or maybe we'll swap to using ogg next year... or just for historical interest? it's a repo, you check stuff in...) And similarly for the textures -- the original photoshop files at maximum size and color depth are gorgeous... and then there's the smooshed version you get on your computer. But we have to store the maxumum size one, because that's the one that we're going to edit if we make a change! And it's version-control, so the repo has this hard-to-compress binary (trust me, photoshop files don't compress nearly as well as python files), possibly in a dozen different versions because all of your art got reviewed and edited as it passed through various layers of management and licencees... And then of course there's video too -- cutscenes and intro video and such.
There's no chance that you could get a repo like that to work on git. We used perforce rather than svn; perforce is (or at least was at the time) the popular tool in the gaming industry for source control (it's expensive, but stable and has good support for massive repos), but I can see lower budget places going for svn. Git just isn't designed for huge repos full of binary blobs.
We work on lots of asset rich projects - often the PSDs folder will span many (hundreds!) gigabytes for a small project, and we'll be working on multiple projects at once. The PSDs then often have source imagery and a whole load of clutter collected from clients. SVN is superb at dealing with this scenario, since as a coder I don't fill my machine with sources I don't need - but we need them archived and backed up none the less. This is especially a problem if you're a developer with a fancy small SSD and the guy across the room has 6TB at his disposal for videos ;-)!
Generally speaking, new versions aren't for the attracting of new users, but for the pleasure of existing users (since they are the ones writing the code...).
We use Microsoft VSS. No, don't hit me!
I get punched in the face several times a day already.
(-1: Post disagrees with my already-settled worldview) is not a valid mod option.
I'm a Subversion developer and would like to clarify this bit of the summary:
The "new metadata storage engine" probably refers to FSFS which has been the default repository backend since Subversion 1.2. FSFS has been improved since then, and 1.8 contains some new improvements (such as directory deltification) but does not add a new repository backend. The BDB-based backend is the one from Subversion 1.0 and is rarely used these days.
Subversion 1.8 doesn't contain support for "first-class renames". Renames are still modeled as copy+delete, with special annotations. The working copy is so far the only part of the system which is aware of moves. There are plans to make other subsystems aware of moves in future releases. Also, while tree-conflicts involving local moves can now be auto-resolved after 'svn update', 'svn merge' mostly behaves as it did in 1.7, expect there is no need to use the --reintegrate option and tree conflicts are now flagged if a directory was renamed or deleted on the merge source branch. Whereas Subversion 1.7 would unconditionally perform the deletion in the merge target.
Does svn already support "pager" , or adding "| less" after each command is required ? what about "git citool" ? "stash" ? "amend" ? "rebase" ? Personally I prefer native git or "git-svn" in case of svn reps
It's not even a contest!
git is truly decentralized and doesn't have the nonsensical concept of a central "authority". It is build for *humans*. Not for drones serving a master. Humans have webs of trust. And git fits into those. Subversion & co is made for undividuals. Creatures that resemble humans, but have no free will and are actually limbs of a bigger body, controlled by their master / opinion maker.
http://code.google.com/p/gitextensions/
Windows only, but all those power Git options become easily viable, including Interactive Rebase and Bisect.
CC FTW :)
I dont remember much from my cvs days, but having used clearcase for the past 10 years and seeing what git does, I couldnt imagine not using a VCS that does have all the features CC does when you have to manage multiple parts of an overall large project that all combine together in a single build and all across multiple sites over the world.
first-class renames (instead of the CVS-era holdover of deleting and recreating with a new name)
Has SVN missed the boat? Basic features that were desirable 10 years ago lead people to use BitKeeper, arch/arX/tla/Bazaar, and eventually Hg, monotone and Git. (I guess some folks were using Darcs too). Now that people have tackled the learning curve and the lack of tools. These days many of these alternatives to CVS and SVN have support in numerous IDEs and desktop environments
It is probably great news for people still using SVN. But why should we keep going in that direction? I also wonder why Perforce is still around too, I still don't find it easy to deal with at work.
“Common sense is not so common.” — Voltaire
User License: USD $5,180.00
“Common sense is not so common.” — Voltaire
It's enterprise software and we were actually informed by Perforce after maybe 10 years on a license that since our user base is so small we can use it for free. I think the cutoff is based on the number of licenses per server. I've never needed my own personal SCM, but I'd go w/ Perforce if I never needed one.
I swear to God...I swear to God! That is NOT how you treat your human!
If you find a bug on a release, you fix it on the trunk, test it on the trunk for a while, then merge it out onto the (supposedly stable) release.
That way if it turns out the fix is bad, you haven't messed up the release more than it already is.
I worked in game programming several years back, and 1TB was quite reasonable. Branching meant IT would bring everyone a new hard drive to store the new branch on.
Git just isn't designed for huge repos full of binary blobs.
Apparently neither is Perforce/SVN. More to the point, I am aware of no sound basis for that statement. Git does binary diffs just fine, and compresses the data when reasonable, and stores file deltas where that is more efficient. Cherry-picking a change to a binary file sounds painful, but it's likely that's a stupid idea that would not be tenable in any RCS. If there is some secret limitation to how git stores files, I'd love to hear about it. My suspicion is that this "svn is better for large repos" idea is being promoted by people who have either not used git at all, or do not understand how it works internally.
Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
especially compared with clearcase....at least from a developer point of view
Have Subversion still those horrible .svn in every single sub-directory?
You know, with Git I can just move/copy the .git directory and have the whole repository. /my/usb/stick
You know I can just do:
cd
git clone file://my/repository
And have all my files.
PS: looks like they try to make svn more like git. The only real problem with git is submodules, but anything else you can do with git. The argument that with git you have more smaller projects, is actually a good thing. Never heart before that modularity is bad. But since your users running away from you, you have to make some arguments*.
* http://ianskerrett.wordpress.com/2013/06/12/eclipse-community-survey-results-for-2013/
The adoption of Git as a developers primary source code management system continues to move forward and at the expense of Subversion. Interestingly, Subversion continues to be the #1 SCM but just barely. If you combine Git and GitHub usage, Subversion leads by only 1.5% points. Next year I am sure Git and GitHub will be #1.
From the survey: Git (+Github) 36%, Svn 38%
http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
I would never use something like GIT for enterprise development.
Jesus was a compassionate social conservative who called individuals to sin no more.
why git is any better than SVN.
Distributed SCCSes are a really bad idea when one member of your team decides to not play nice with the rest of the team.
- Zav - Imagine a Beowulf cluster of insensitive clods...
If you've been around long enough to see a few technologies die off, you'll recognize the hell out of this chart: http://www.google.com/trends/explore?q=git%2Csvn#cat=0-5&q=git%2C%20svn&cmpt=q As for me, svn is one of the few version control systems that actually managed to lose my work (VSS is the other), so I won't miss it. That said, I would pick Subversion over Perforce every day of the week...
After strugling with SVN and having several repos implode on me before git came around I can honestly say I will not be going back to SVN. Also the fact SVN can't self-host repositories and that you can't just interact between repos on hosts as they are totally shuts it down compared to git.
Also I could care less about speed. If git were taking an hour to deal with repos then maybe - but it doesn't. The biggest bottleneck ever has been bogged down github for a slow connection - git itself doesn't have any real speed issues for me.
*bonus: can SVN handle utf8 properly now? I remember that being a nightmare at one point. git handles it out of box flawlessly and always has.
What about Mercurial? [...] I'm considering switching from Subversion to something else for my team at work, but the Git UI is awful. I've heard Mercurial is better, including its GUI integration (e.g. Tortoise).
In UI terms, there are respectable GUIs available for both Mercurial and Git these days. I’d say the biggest difference is in the CLI interaction, because the usability of Git is poor even in its native habitat on Linux, and on Windows you're basically stuck with Git Bash, which is a rather glitchy emulation of a Linux shell that IMHO is very irritating to use. Hg is much simpler and less cluttered.
In terms of functionality and the underlying models for how the system works, I’d say there are a few major differences between the Git and Mercurial workflows that you're likely to come across almost immediately. Some are “real” differences. Others look like differences when you first learn the tools, but they’re only consequences of how each tool works by default and you can work the other way if you prefer.
The first is that Git by default does a two-stage commit: you identify the changes you want to commit from your working copy using git add, and then you actually commit them to your local repository with git commit. In Mercurial, the default is commit everything with a single command. However, this is one of those illusory differences, because both systems have alternative commands/options that let you work the other way if you prefer.
The second is that Git and Mercurial (in)famously have different mechanisms for using branches, and here there really are meaningful differences in the underlying model for how things are stored and what you can do. Personally, I intensely dislike Git’s approach where you “forget” which branches things originally happened on or even what those branches were called, because I find the information it discards valuable. However, you’ll have no trouble finding a Git fan to tell you I’m just being silly and obviously the branches-as-moving-tags approach taken by Git is better for other reasons. In this case, there are tools built into Hg these days that basically work the same way as Git’s branches if that suits you, but I’ve yet to find any satisfactory way of getting Git to support history tracking including branches the way Hg does.
Finally, on the subject of rewriting history, in Hg changes are basically permanent once committed, while in Git history is mutable by design using the rebase commands. Again, which is better for you will depend on your own workflow and personal preferences. In theory Git’s view is more flexible, but it’s also one of those issues where it’s a rite of passage to write a blog post about how not to screw up all your colleagues’ repos by rebasing something that was already pushed out to others, so use with care. Hg’s version is less amenable to certain workflows, but it’s also safer.
Finally, I just wanted to mention that whatever anyone tells you about how it’s obviously user error, both Git and Hg have had actual, verifiable, reproducible data loss bugs, even in the past few months. I haven’t checked very recently whether any of the ones I knew about are still unfixed, but definitely make sure you’ve got the latest versions of everything. (And if you’re using Hg, be really careful about cloning a repo on a network server directly and in particular whether you’re getting a truly independent clone or just an improperly-linked version of the original that will corrupt both over time. And if you’re using Git with an external diff tool like Araxis Merge, beware that using a git difftool --dir-diff has been doing funny things when you quit the diff tool and may overwrite any changes you made in your working directory while the tool was open.)
Does SVN still force all my pending changes into one commit? (and one commit message to rule them all?)
For what it's worth, SVN has never done this - you can specify which files to commit in a given changeset.
Does SVN still force my commits to be immediately visible to everyone else
Not if you don't want it to. You can configure access control such that everyone has their own private branches on the server.
(but despite the fact that neither of these are valid complaints, git is still a much better tool that svn IMO).
Not everything that can be measured matters; Not everything that matters can be measured.
This article is not a good comparison IMHO. It was obviously written from the perspective of someone who is a huge Git fan.
> Git is much faster than Subversion
After years of working with both Git and SVN, I have thought about speed of checkout maybe 0 times.
> Subversion allows you to check out just a subtree of a repository; Git requires you to clone the entire repository (including history) and create a working copy that mirrors at least a subset of the items under version control.
This can be very problematic on large repro's, since it requires a lot more disk space and time.
> Git's repositories are much smaller than Subversions (for the Mozilla project, 30x smaller)
Depends on the repo content.
> Git was designed to be fully distributed from the start, allowing each developer to have full local control
Does anyone really require distributed? Its has advantages or a single, but it also has disadvantages.
> Git branches are simpler and less resource heavy than Subversion's
> Git branches carry their entire history
> Merging in Git does not require you to remember the revision you merged from (this benefit was obviated with the release of Subversion 1.5)
> Git provides better auditing of branch and merge events
Branching in Git is marginally better then SVN. Neither is magical or even good.
> Git's repo file formats are simple, so repair is easy and corruption is rare.
I have had corrupt SVN repo's but never a corrupted Git repo. But SVN is easy to fix.
> Backing up Subversion repositories centrally is potentially simpler - since you can choose to distributed folders within a repo in git
This makes no sense.
> Git repository clones act as full repository backups
Two edge sword again.
> Subversion's UI is more mature than Git's
Git's UI sucks, even the good ones.
> Walking through versions is simpler in Subversion because it uses sequential revision numbers (1,2,3,..); Git uses unpredictable SHA-1 hashes. Walking backwards in Git is easy using the "^" syntax, but there is no easy way to walk forward.
This feature is HUGELY helpful in automated build systems.
My 2 cents
Git is much much harder to use for someone who is not a pedal to the metal coder.
I have seen junior coders and artists want to commit suicide after using Git.
I have had a lot more problems merging files in Git then I ever did in SVN.
I had SVN but gitting is so much more controlling. At git when svnening was not even an option i would git a merge together and combine the pieces when svn would have me checkout the entire version. The versioning control when svnening does not offer the robotness of git where i can for example enter git checkout branchWork1 -- /folder-i-want-to-work-with and work on a small part of a 100tb project then later at the end of the week the slave can merge it all. all in all svn is great
The post I planned to make: "no, I will still use svn like I have, but unless there's actually a good reason not to, I'll stick with the svn I was already using, because why upgrade just because someone tells you to, without a clear reason why the new version is actually better?"
Finally fixing the messy pseudo-rename component is a darn good reason to upgrade, though. I will let people know (he company I work at exclusively uses svn. I really see no reason to use a distributed versioning system, especially not in the context of an actual whole software company. And Svn is a fine technology. This sounds like actual improvements have been made, though.)
Subversion will git YOU!!!
This sig is not paradoxical or ironic.
The concepts behind good old CVS were easy to understand. Subversion inherits this legacy while GIT can be conceptual shift for developers. Developers should be wrapping their heads around their code, not trying to understand the abstractions of source control. This is why I like SVN better.
CVS is very modern compared to SCCS.
Anyways, who in their right mind creates a single repository with 1T of source code? Movie editors perhaps? Will they really need an SCM system?
I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
I used to be a huge Subversion cheerleader, but switched to Git everything I could some time ago. Our work repo is Subversion, but using Git day-to-day is well worth the hassle of converting files in and out of another tool to do so.
I was actually considering going back to Subversion full time at work a couple weeks ago, but merging a long-running development branch to trunk was enough to kill that idea. Subversion's merge pretty much shit itself at the get-go. The CM lead insisted on saving the development history on the branch - not worth the effort, but his call. I managed to save history for pre-existing files that were modified. After wasting hours of my (and Google's) time and trying everything short of standing on my head, I finally brute-forced the added and deleted files so I could move on with my life. Lesson learned but day wasted.
Merge is fundamental, and it's completely solid on Git. I'll let someone else sort out whether it works now in Subversion.
Git is mostly used in Minecraft mods source codes (Github) while SVN is mostly used in Gmod addons because it is more easier to use TortoiseSVN to automatically update the addons folder
The SVN people might entice me back from git if they would fix Issue 898, which has been open since 2002. After getting bitten by this twice on large checkins, and having to hack the .svn files to get out of it, I'm done with Subversion. Also check out the hostility from the developers in the last comment.
With git, this is not an issue, because you can commit straight renames and moves to your local repo without affecting the central repo, and git keeps perfect track of them.