[HN Gopher] GitHub Sunsetting Subversion Support
       ___________________________________________________________________
        
       GitHub Sunsetting Subversion Support
        
       Author : mikece
       Score  : 163 points
       Date   : 2023-01-20 18:07 UTC (4 hours ago)
        
 (HTM) web link (github.blog)
 (TXT) w3m dump (github.blog)
        
       | benatkin wrote:
       | GitHub hasn't heard of Docker? It seems they could use it to run
       | Subversion without any effect on their git hosting.
       | 
       | Just kidding, but remember back in the DotCloud days when they
       | pointed out you could run Perl? That was pretty cool.
       | https://news.ycombinator.com/item?id=2518526
       | 
       | > In 2010, when GitHub introduced Subversion support, the version
       | control landscape was very different.
       | 
       | That was waaaaay before Microsoft acquired it.
       | 
       | > But hey, if the Subversion system just works and doesn't bother
       | anyone, there's no reason to make any changes, right? The reality
       | is that there's an ongoing maintenance cost to any software, and
       | that goes extra for public-facing services on the internet. As
       | the use of GitHub has evolved and the number of Subversion
       | requests has declined dramatically, we plan to focus our efforts
       | entirely on Git.
       | 
       | Reminds me of how Microsoft dumped Atom (and then fauxpen-sourced
       | VSCode before dumping the last remnants of Atom).
        
         | czx4f4bd wrote:
         | > Reminds me of how Microsoft dumped Atom (and then fauxpen-
         | sourced VSCode before dumping the last remnants of Atom).
         | 
         | I'm confused by this. Microsoft released the VS Code source in
         | 2015, long before they acquired GitHub in 2018 and sunset Atom
         | in 2022.
        
           | benatkin wrote:
           | They moved Atom into de-facto maintenance mode much earlier
           | than that, when VSCode was much less fauxpen-source than it
           | is now.
        
             | czx4f4bd wrote:
             | Just repeating "fauxpen source" doesn't mean anything to
             | me. What actual change are you referring to?
        
               | benatkin wrote:
               | Big overview: https://ghuntley.com/fracture/
               | 
               | A couple points in time:
               | 
               | Pylance, installed by default, won't open source.
               | Microsoft keeps calling VSCode open source.
               | https://github.com/microsoft/pylance-release/issues/4
               | 
               | Same for .NET https://twitter.com/migueldeicaza/status/15
               | 37175065380495367
        
               | IceWreck wrote:
               | To add to the list, the c/c++ extensions, remote ssh,
               | remote containers and intellicode are also closed source.
        
       | carrja99 wrote:
       | No!
        
       | reindeerer wrote:
       | github had subversion support ??? :)
        
       | lopkeny12ko wrote:
       | > But hey, if the Subversion system just works and doesn't bother
       | anyone, there's no reason to make any changes, right? The reality
       | is that there's an ongoing maintenance cost to any software, and
       | that goes extra for public-facing services on the internet.
       | 
       | This is a poor excuse. I understand that MSFT/Github feels
       | compelled to provide a convincing reason to users, but this is
       | not it. 99.9% of problems are caused by developers making changes
       | or pushing new code. I've been writing software for close to two
       | decades now--if you don't touch it, it's not going to break on
       | its own.
        
         | sastraxi wrote:
         | The "ongoing maintenance cost of software" can also be the
         | additional complexity in the mental model of developers that
         | have to deal with nearby parts of the codebase. Even if no
         | maintenance is needed for a specific feature, it doesn't always
         | make sense to keep around.
         | 
         | There's also knock-on effects, e.g. an offering like this could
         | attract the type of user that would add a lot of additional
         | support burden for the value that the company _and_ the user
         | gets out of the feature.
        
       | adamsb6 wrote:
       | This reminds me of the time on Something Awful that radium banned
       | the one user that was using WebTV.
       | 
       | > About 91% of visitors are on Windows. Mac users make up 5% and
       | Linux is 2%. The other 2% are permabanned IRC trolls browsing the
       | forums with a text-based browser written in Ruby on OpenBSD. Oh
       | yeah, we have one guy using WebTV but I banned him because WTF.
        
         | mjhay wrote:
         | Hadn't heard that one before. Radium's incompetence was really
         | something.
        
       | renewiltord wrote:
       | I had no idea. This is fucking great. Hahaha. Best thing I've
       | read all day.
        
       | thaeli wrote:
       | The one thing I really miss about svn is the
       | central,authoritative, auto-incrementing revision numbers. Git
       | hashes are less friendly to use - in the svn days it was easy to
       | tell at a glance if you had an earlier or later version.
       | 
       | Yes, I know the many ways that git is better in practice, and
       | would miss some of the workflows git's nature allows if they were
       | gone. But we really did lose something too, especially when
       | running git in "quasi-centralized" mode such as on GitHub.
        
         | david_allison wrote:
         | It can be done, but probably shouldn't:
         | https://github.com/zegl/extremely-linear/commits/main
        
           | rascul wrote:
           | > With the shit ("short git") wrapper, you can use commands
           | like shit show 14, and shit log 100..150
           | 
           | I found this amusing.
        
         | avgcorrection wrote:
         | Maybe you can count the first parent commits on mainline, and
         | then reverse that list.
        
           | gmueckl wrote:
           | Git doesn't have a good concept of a mainline branch when
           | going back past a merge. It simply records more than one
           | parent for that commit and not which branches they were on
           | before they got merged.
           | 
           | Mercurial does somewhat better in that department by storing
           | the branch name in the commit, so you can pick the parent on
           | the same branch reliably.
        
             | avgcorrection wrote:
             | I don't understand what you're saying. If you have a main
             | branch which is always merged into then `--first-parent`
             | will only list merge commits and regular commits on that
             | branch. I have never seen it fail on our main branch.
             | 
             | In `git merge feature`, `feature` will become the second
             | parent while the commit that you are on will become the
             | first. The linear mainline history falls out of that.
        
         | scottlamb wrote:
         | It's not as simple, but you might be able to get what you want
         | with `git describe`. E.g., a working copy of mine now says
         | `v0.7.5-43-g9060dbf`: 43 commits after tag `v0.7.5`, hash
         | `9060dbf...`.
        
       | woodruffw wrote:
       | Only partially related, but since they mention it at the bottom
       | of the post: I _really_ like GH 's "brownout" approach to
       | discontinuing services. They've done it a couple of times before
       | (like this one[1]), and it's always struck me as a very sensible
       | way to handle deprecations on such a massive service.
       | 
       | [1]: https://github.blog/changelog/2021-08-10-brownout-notice-
       | api...
        
         | travisjungroth wrote:
         | Make sure to get the rate right. Like 1/1,000 or 1/100,000.
         | Poetry did a brownout of its install script at 5% failure. With
         | a matrix of builds user's CI had closer to a 100% chance of
         | failing.
        
         | js2 wrote:
         | These are also known as scream tests. We use them internally at
         | $dayjob as part of EOL'ing APIs. Are they not common?
        
           | woodruffw wrote:
           | I have no clue! I just appreciated them as a lowly user.
        
       | thrownaway561 wrote:
       | About time... I don't know a single person that still uses it. I
       | can't tell you how many times I got burned doing merges in
       | Subversion where the entire repo became corrupt. Git was a life
       | saver when it came out and I switched immediately over to it.
        
         | RcouF1uZ4gsC wrote:
         | > I can't tell you how many times I got burned doing merges in
         | Subversion where the entire repo became corrupt.
         | 
         | Earlier in my career, in the first week at one company I ended
         | up corrupting the Subversion repo. I was a nervous wreck. My
         | boss reassured and told me about he had also corrupted a
         | Subversion repo previously as he restored the repo from backup.
        
           | david422 wrote:
           | Uggh. If there's one thing I would want to be super stable it
           | would be my version control!
        
       | [deleted]
        
       | kypro wrote:
       | I'd love to hear from someone who's still using SVN
       | professionally and can explain why they prefers it to Git.
       | 
       | I used SVN very early in my career. I think the only good thing I
       | can say about it is that it's easier to learn. It's quite easy to
       | teach a junior dev how to use SVN. Git takes much longer to
       | master.
        
         | xorcist wrote:
         | I don't "prefer" svn (or anything else), but if you are
         | interested in what svn does differently than git, which can
         | suit some use cases better, here are some suggestions:
         | 
         | 1. The trivial commit graph makes some concepts easier. You
         | know from the commit number which is more recent. There are no
         | complex merges.
         | 
         | 2. The above makes for useful GUIs. There are no git GUIs that
         | a user can not aim at their own foot, and needs the real client
         | to clean up the mess.
         | 
         | 3. The lack of complex operations makes access control easier.
         | You still have to manage hooks, but it's easier or at least
         | with less unintended consequences.
         | 
         | 4. All clones are sparse. Together with a zero copy data
         | storage makes for some cute concepts, such as branches and tags
         | and directories actually being the same object. Sparse clones
         | can be very useful.
         | 
         | 5. The system tracks file system operations, such as moves and
         | copies. It can actually be used for things, directly and
         | without heuristics. (This is actually the one point where I can
         | say I prefer the svn way. Git could have done something similar
         | without breaking the conceptual model and it would have been
         | useful.)
         | 
         | 6. The metadata is, or at least used to be, more developed for
         | non-unix file systems. I'm not sure if this is still the case.
         | 
         | 7. Storing binary data is somewhat less bad. But still bad.
         | 
         | All that said, outside of specialized applications I'm not sure
         | there's much reason to use svn for any new projects. And if you
         | use it, keep in mind that git works perfectly well with svn
         | archives. They just become a linear graph with funny commits
         | and you can use that familiar git tools.
        
         | juangacovas wrote:
         | As others have commented, my team at work use SVN because it's
         | what somebody is confident to manage with svn+ssh protocol and
         | want to keep it internal. Some projects use a "release" branch
         | to which we merge when deploy is sensible, most projects
         | haven't this branch and is just "trunk"/master. No more is
         | needed. SVN works.
        
         | [deleted]
        
         | gowld wrote:
         | "easier to use" a great reason to prefer it. I want to write
         | software, not manage a source control system.
        
           | c-smile wrote:
           | "I want to write software, not manage a source control
           | system."
           | 
           | Exactly!
        
         | [deleted]
        
         | hinkley wrote:
         | Migrations exist for two reasons:
         | 
         | 1) adoption. You're early in the Adoption Curve and you're
         | trying to grease the wheels to make it easier for people to
         | come for you
         | 
         | 2) modernization work. You're brought in to consult for a
         | company because someone has declared moral bankruptcy and
         | decided that neutral third parties are more likely to dig them
         | out of the problem. So as a consultant you show up week one and
         | you say, "Dear God, they're still using X?" about five times.
         | So now you're proposing to do migrations that all of your peers
         | finished up seven years ago.
        
         | histriosum wrote:
         | I use Subversion at my gig in several places. I don't use it to
         | manage source code revision control, but I have several
         | processes that require business users to manage binary files
         | (such as audio files) in order for them to be automatically
         | deployed to production. Git or Mercurial are pretty awful at
         | this kind of role. Subversion let's me check out at a subfolder
         | level of a repository, and not pay the cost of having the full
         | revision history contents sitting in my clone.
        
           | mananaysiempre wrote:
           | Core Git is not the greatest at large binaries, so for that
           | you indeed probably want an addon like git-annex or Git LFS
           | or an alternative such as dvc, but in recent versions it
           | absolutely can[1] only give you only part of the history or
           | part of the objects: the former is known as "shallow clones",
           | the latter as "partial clones" (there are also "sparse
           | checkouts"[2], but those only concern the working tree IIUC).
           | 
           | [1] https://github.blog/2020-12-21-get-up-to-speed-with-
           | partial-...
           | 
           | [2] https://github.blog/2020-01-17-bring-your-monorepo-down-
           | to-s...
        
           | dave78 wrote:
           | Similarly, we used to use SVN for a mechanical engineering
           | team doing CAD models. SVN supported a reserved checkout mode
           | (I guess SVN calls it "locking") which meant only 1 person
           | could check out a file at a time. Perfect for non-mergeable
           | binary files, and with TortoiseSVN it was easy for non-SW
           | engineers to use.
           | 
           | That's one thing I doubt Git will ever be able to do since it
           | is a distributed model rather than server-based.
        
           | gschoeni wrote:
           | Been working on a version control system to solve this large
           | binary file problem as well.
           | 
           | It's called Oxen and is initially targeted towards
           | unstructured machine learning datasets, but could be good for
           | this use case as well. Would love to get any feedback on it!
           | 
           | https://github.com/Oxen-AI/oxen-release
        
           | sofixa wrote:
           | Git is much better at it nowadays thanks to Git LFS which
           | just stores the blobs.
        
         | ProAm wrote:
         | > It's quite easy to teach a junior dev how to use SVN. Git
         | takes much longer to master.
         | 
         | This is pretty much it, ease of use. No one really knows git
         | (beyond 5 commands). Everyone knows how to google git commands
         | or talks to the wizard in the company that can fix the mess
         | someone created. While in theory git is more powerful, in the
         | art of getting things done easily SVN wins, simple, stupid and
         | it works.
        
           | tcoff91 wrote:
           | I remember having all kinds of strange issues with subversion
           | that were hard to resolve as a novice, not being able to
           | commit for cryptic reasons, etc... Perforce is the only tool
           | I've used that was actually pretty simple, and even then I'd
           | say that dealing with merging streams was not nearly as easy
           | as merging git branches.
        
             | OkayPhysicist wrote:
             | Heh, funny story about Perforce. I bumped into one of their
             | founders at a camp I go to, real down to earth dude. We had
             | struck up a conversation over a few drinks, and the
             | conversation drifted over to what we did. He asked "You
             | know version control software?", and I replied "Like Git?"
             | and he just responded with an exasperated sigh.
        
         | satya71 wrote:
         | > Why do people still use Subversion on GitHub, anyhow? Besides
         | simple inertia, there were workflows which Git didn't support
         | until recently. The main thing we heard when speaking with
         | customers and communities was checking out a subset of the
         | repository-a single directory, or only the latest commit. I
         | have good news: with sparse checkout, sparse index, and partial
         | clone, Git can now do a pretty decent job at these workflows.
         | 
         | There is also this: https://github.com/msofficesvn/msofficesvn
        
         | jcadam wrote:
         | Not using it now, but the last project I was on that did was at
         | a defense contractor about 5 years ago.
         | 
         | Basically, the lead engineer that was in charge of the _new_
         | project set up what he liked before the rest of the team was in
         | place. So when I was hired on the team consisted of me, a
         | senior engineer who hadn 't used subversion in years, and a
         | bunch of junior engineers who were completely unfamiliar with
         | it. No amount of pleading would get him to migrate to git.
         | 
         | It was partially a control thing, I think. He liked having full
         | control of the repo to himself. The system architecture was
         | also... dated.
        
         | somerando7 wrote:
         | What's better about git? I haven't used svn, but have used
         | perforce/mercurial professionally/git professionally, and use
         | git personally, but I find all of them to provide the same
         | "feature set" when doing basic development: have your own
         | branch, and merge it in to the main branch when done/reviewed.
         | 
         | Merging seems the same on all 3 version control systems I've
         | used... I've heard that git branching is better(?), but haven't
         | seen that being used anywhere really.
        
           | kadoban wrote:
           | > I've heard that git branching is better(?), but haven't
           | seen that being used anywhere really.
           | 
           | How are you merging without branches?
           | 
           | Git is mostly faster and more flexible than svn, and the
           | merging works far better. Unless svn's merging has improved
           | in the past decade or so, which is entirely possible.
           | 
           | When I switched to git from svn, the main differences were:
           | merging was usable, making new branches and switching
           | branches and such were _instant_ instead of many seconds, and
           | I could work more flexibly (git doesn't require being
           | connected to the server).
        
             | arcticgeek wrote:
             | Yes, that's actually the thing about branching in SVN.
             | Everyone remembers how awful it was 10+ years ago under SVN
             | 1.4 and earlier but has improved immensely since then.
             | Combined with modern client tooling, i.e. TortoiseSVN,
             | problems with merging are almost non-existent for a long
             | time.
             | 
             | I certainly wouldn't call SVN modern but it's very well
             | maintained and has never lost code on me. Many git-like
             | features also exist now such as being able to stash some
             | changes in order to pivot to something else for a bit.
             | Except for the central server being a problem for some use-
             | cases, SVN just works.
        
           | coldpie wrote:
           | > I haven't used svn
           | 
           | Yeahhhh. Svn is centralized. You must be connected to the
           | server to do any source control work. There is no local
           | repository, there are no local commits. Every commit is
           | global on the server. When you make a commit, it is pushed to
           | the server and your coworkers can fetch it. You don't make
           | commits locally and fiddle around and then push.
           | 
           | Also Svn doesn't have branches per se. You just use
           | subdirectories. It does have facilities for merging
           | directories and managing these "branches", but it feels real
           | weird to be switching branches with 'cd'.
           | 
           | It's a very different world.
           | 
           | A quick read: https://svnbook.red-
           | bean.com/en/1.7/svn.tour.cycle.html
        
             | duskwuff wrote:
             | > Also Svn doesn't have branches per se. You just use
             | subdirectories. It does have facilities for merging
             | directories and managing these "branches", but it feels
             | real weird to be switching branches with 'cd'.
             | 
             | Also, this means that it's possible to do some horrifying
             | things with branches and tags, like making a merge commit
             | which is isolated to a single directory, or checking out a
             | tag and making a commit to it.
             | 
             | Hopefully no one is actually depending on these workflows
             | being possible, because they make project history extremely
             | hard to follow.
        
             | c-smile wrote:
             | > You must be connected to the server to do any source
             | control work. There is no local repository...
             | 
             | That's not correct technically speaking. You can create
             | repository on your machine - on local FS.
             | 
             | But of course it is more reliable to run it on server, even
             | for yourself. If on Windows then VisualSVN is one click
             | solution for those who just want to have that thing
             | working.
        
         | jaywalk wrote:
         | I still use SVN professionally, but new projects use git.
         | 
         | When you've got a ton of projects and their associated
         | deployment pipelines all using SVN, the cost of migrating is
         | non-zero. Someday I'll probably start (slowly) migrating, but
         | the benefits just aren't great enough to make it a priority.
        
         | mdaniel wrote:
         | While I'm deeply thankful that I don't have to _use_ it, the
         | most famous one I know if is Oracle 's VirtualBox:
         | https://www.virtualbox.org/svn/vbox and /svn/kstuff-mirror and
         | /svn/kbuild-mirror
        
         | jwcooper wrote:
         | We used SVN in an application to grab a single folder and its
         | contents from a repo on GitHub. It was the quickest and easiest
         | approach at the time (that I knew of) and worked well.
         | 
         | We switched a year or so ago to use git sparse checkout that
         | was released in 2.25.
        
         | magicalhippo wrote:
         | We use SVN still. I'd like to switch to Git soon, given tooling
         | like CI/CD is better/more available with Git, but apart from
         | that it works.
         | 
         | That said, SVN works, and I do think the learning issue is the
         | primary obstacle for us moving to Git.
         | 
         | It should be said we're a small team though, 10 devs. I can
         | imagine Git looking a lot more attractive to a larger team.
        
           | rsstack wrote:
           | Almost a decade ago, I was part of a 10 person team (that was
           | growing) and while there was consensus around transition to
           | Git, it kept getting pushed back. I eventually forced the
           | issue by changing the deployment job in Jenkins for one of
           | the main projects to deploy from Git instead of SVN.
           | 
           | I had to give several talks to existing and new employees
           | about how Git works and how to use it. I was also that #1597
           | guy (https://xkcd.com/1597/). Back then most hires didn't
           | work with Git before joining us, today of course it's
           | different. Over time, all projects moved to Git as whenever
           | someone was working on two projects, one Git and one SVN,
           | they would ask "why is this still on SVN?" and soon it would
           | be on Git.
        
         | c-smile wrote:
         | I am using it for Sciter development.
         | 
         | For my case: one|two developers + hundreds of read-only
         | observers + a number of patch senders it is a perfect tool that
         | far.
         | 
         | TortoiseSVN (Windows) and analogous tools (MacOS and Linux) are
         | really unbeatable.
         | 
         | I am also using Git time to time but that is really far
         | usability wise.
         | 
         | Five commands: commit, update, revert, merge and switch
         | combined with FS explorer visualization are perfectly enough.
         | Rarely: shelve(create patch) and unshelve(apply patch).
        
         | gus_massa wrote:
         | One of my friends is using it at work. They have been using SVN
         | since a long time. They have been planning to migrate to Git
         | for a few years. The problem is that customers pay for
         | features, not for the version control you are using. SVN still
         | works, and the inertia is not zero.
        
         | gmueckl wrote:
         | SVN is still simply unsurpassed by any other open source
         | version control I know when it comes to the handling of large
         | files and fine grained access control.
         | 
         | The truth is that git is pretty abysmal overall. There are
         | commercial offerings that easily surpass it, if you are willing
         | to pay.
        
       | issafram wrote:
       | This part made me laugh "Late in 2023, we'll run a few hours-long
       | and then day-long brownouts to help flush out any remaining use
       | of the feature."
       | 
       | I'd prefer just spam emails saying the system is shutting down
        
       | voidfunc wrote:
       | Didn't even know GitHub had svn support... it's been about a
       | decade since I've even had to interact with a subversion repo
       | professionally also.
        
       | bradfitz wrote:
       | They had Subversion support?
        
       | CJefferson wrote:
       | There is only one thing about subversion I miss when using git --
       | the deletion of branches (which were, admittedly, just
       | directories in a folder called branches) was version controlled,
       | so you could recover deleted branches.
        
         | nighthawk454 wrote:
         | Just in case - you can in git as well. Branches are just
         | pointers to a commit SHA, so can always create another pointer
         | to the same commit and your branch is back.
         | 
         | https://stackoverflow.com/questions/3640764/can-i-recover-a-...
        
           | stouset wrote:
           | I suspect GP knows this, but there's no way to go back and
           | see what the branch ref was at a prior point in time. I
           | believe they wish that refs themselves were versioned.
           | 
           | And yes, I know they're kept in the reflog. But that is
           | short-lived and (I believe) local rather than eternal and
           | global like everything else in git.
        
             | ecnahc515 wrote:
             | The reflog does exist on the server too, but it's not
             | really accessible without access to the git repo on the
             | server, so not much use in eg, GitHub. That being said,
             | GitHub also exposes some of these details, for example: in
             | PRs when you force push on your branch.
             | 
             | So in the general sense, there's no reason we can't have
             | exactly what's being discussed, but it just doesn't exist
             | yet.
        
               | stouset wrote:
               | > The reflog does exist on the server too, but it's not
               | really accessible without access to the git repo on the
               | server
               | 
               | Though it only logs refs that the server itself has seen,
               | which is more or less what I meant by "local". None of
               | its state is shared during push/pull, it's computed
               | entirely based upon what some individual client/server
               | directly observes.
        
             | CJefferson wrote:
             | Yes, as you say, I'd have to write the commit names down,
             | and eventually they would get garbage collected.
             | 
             | You could tag, but then you are just polluting your tag
             | namespace with old branches.
        
         | kawsper wrote:
         | I miss the name, SVN was pronounced Svend (SVeN) among my
         | friends, which is a scandinavian male name.
         | 
         | "Have you committed your changes to Svend yet?", "No, Svend is
         | experiencing some downtime right now", that was some fun
         | interactions that got us through computer science.
         | 
         | Git is a fun name too, but it is not nearly as funny to me.
         | 
         | TortoiseSVN was a great SVN client integrated into Windows File
         | Explorer, and it looked great when you used the classic theme
         | on Windows XP.
        
         | Arnavion wrote:
         | Conversely, the deletion of branches is version-controlled in
         | git, because when someone force-pushes or deletes a branch on
         | the remote it can still be restored from anyone's clone :)
         | 
         | I've seen this happen a few times with a dev running `git push
         | -f` with the intent to update their dev branch, except that it
         | would force-push all branches in their clone that were
         | associated with the remote, like master. It probably doesn't
         | happen these days though, because the default was changed at
         | some point to only push the current branch.
        
       | rr808 wrote:
       | How about Visual SourceSafe? I actually loved that for a small
       | team.
        
         | TimTheTinker wrote:
         | Jeff Atwood had a lot of negative things to say about Visual
         | SourceSafe back in 2006: https://blog.codinghorror.com/source-
         | control-anything-but-so...
         | 
         | There's some good links there that describe the trouble VSS
         | caused.
        
           | rr808 wrote:
           | Lol the comments. I went through Perforce and ClearCase too.
        
             | msoucy wrote:
             | I try to forget ClearCase.
             | 
             | It haunts my nightmares.
             | 
             | When we were migrating to git, some of the more senior
             | engineers came up with a workflow that was described as
             | "the best implementation of ClearCase in git that I've ever
             | seen". It was meant as a compliment.
        
         | tialaramex wrote:
         | Are you serious? I'm not even sure if Visual SourceSafe is
         | better than "Once a week I copy all the files into a ZIP and
         | date it" as a strategy for version management.
        
           | msbarnett wrote:
           | for one thing, zips are far less likely to destroy data than
           | sourcesafe, which was famous for doing just that
        
         | pianoben wrote:
         | We used it at my first job, up until a disgruntled contractor
         | locked every single file in our repo on the day he got fired.
         | We couldn't do a damn thing for like a week, until we migrated
         | to... TFS, sadly, but even _that_ was an improvement.
        
         | ianmcgowan wrote:
         | Worst. VCS. Ever! Can't believe anyone ever loved VSS - it was
         | constantly corrupting the repository, people would lock
         | programs and go on vacation, just a constant struggle.
         | 
         | We switched to CVS and it was immediately better, followed by
         | SVN a few years later. I still use git like a fancy subversion,
         | just with multiple repositories :-)
        
         | masklinn wrote:
         | > I actually loved that for a small team.
         | 
         | That's a joke right?
         | 
         | VSS is by far the shittiest VCS I've had the displeasure to
         | use, though I will confess I never had to suffer through RCS
         | and CVS.
         | 
         | It's certainly the only one which managed to destroy data.
         | 'twas a good thing I'd already used other source control
         | systems before VSS, because that experience would definitely
         | have made me flee from source control systems for a while (much
         | as Java did static type systems).
        
           | arcticgeek wrote:
           | We used to call it Visual Source Shredder because of how easy
           | it was to corrupt the database.
        
       | doublepg23 wrote:
       | Not sure I'm familiar with any projects using Subversion. I think
       | the most odd-ball version control I've seen in prod is SQLite
       | using Fossil (which does seem to have benefits over git) and
       | OpenBSD sticking with CVS.
        
         | arp242 wrote:
         | Apache httpd uses subversion.
         | 
         | That's the only example of a well-known project I could find
         | that's not directly related to subversion itself. I'm sure
         | there are others, but all the other ones I could recall have
         | since migrated (usually to git).
        
           | netol wrote:
           | Well, I think it is a bit related, being subversion an Apache
           | project: https://subversion.apache.org/
        
         | jldugger wrote:
         | SVN is a relatively sane option, especially before git was
         | published. But in 2023 its mostly been replaced.
        
           | avereveard wrote:
           | SVN had a great feature set, and a great way to handle
           | merges, and sane defaults.
           | 
           | too bad they hit some limits as repos become larger and
           | larger, tried to implement a new storage engine, and
           | basically they never managed to iron out all bugs out of it
           | in time, while the older storage engine entered feature
           | freeze and was basically abandoned.
           | 
           | I've been checking them for years, and there were file
           | corruption issue for so long, I lost interest in tracking the
           | status anymore, as by that point I wrapped my head around the
           | git model.
        
             | msbarnett wrote:
             | > SVN had a great feature set, and a great way to handle
             | merges, and sane defaults.
             | 
             | Are you kidding? Subversion had a _notoriously awful_ way
             | of handling merges, which was a huge driver of people onto
             | Git as soon as it appeared. You truly had to have been
             | there to believe it, but in all but the simplest of merge
             | scenarios, declaring branch bankruptcy and manually moving
             | things back into the target branch by hand was your only
             | real option. Early to mid 2000s, the most common team
             | branching strategy I saw with subversion was  "there's only
             | one branch and everybody does all the development in it
             | because god help you if you try to put it back together
             | after branching for something".
             | 
             | It wasn't until well after the momentum was clearly in
             | Git's favour and a huge chunk of the user base was gone
             | that Subversion finally fixed it to not be complete
             | dogshit.
        
             | masklinn wrote:
             | > and a great way to handle merges
             | 
             | Nope. That took a very long while to be added. When the
             | current crop of DVCS started appearing, one of their
             | significant draw was actually that by necessity merges
             | worked well. At the time, SVN made it extremely easy to
             | fork branches, and almost impossible to merge them.
             | 
             | Per the official doc (https://svnbook.red-
             | bean.com/en/1.7/svn.branchmerge.basicmer...) merge tracking
             | was introduced in subversion 1.5, released in May 2008.
             | That's 3 years after the initial release of Git, Mercurial,
             | and Bazaar.
             | 
             | Before then you had to keep note of what you'd merged by
             | hand so you didn't double merge it, and that was distinctly
             | not fun.
        
           | TillE wrote:
           | Subversion fixed all the truly horrific things about CVS,
           | it's quite adequate for centralized source control.
        
             | kevincox wrote:
             | Reminds me of Linus Torvald's Google Tech Talk on Git.
             | https://youtu.be/4XpnKHJAok8
             | 
             | > I see Subversion as being the most pointless project ever
             | started, because the slogan for Subversion for a while was
             | "CVS done right" or something like that and if you start
             | with that kind of slogan, there's nowhere you can go. There
             | is no way to do CVS right.
        
               | jldugger wrote:
               | I mean, he was definitely selling a product there. SVN
               | was pretty good, barring the merge logic being a PITA.
        
             | arp242 wrote:
             | "cvs add image.jpg" and then discovering you can't just do
             | that 2 years later after a fresh checkout was fun.
        
         | petepete wrote:
         | I was about to respond with WebKit but it looks like they
         | switched to git last July.
        
         | jakub_g wrote:
         | Subversion was the main thing in opensource space in before-git
         | before-GitHub mid-2000, when projects were hosted on
         | SourceForge. Old times!
        
       | singularity2001 wrote:
       | Is there an alternative way to download select folders without
       | svn?
        
         | _da_ wrote:
         | > Why do people still use Subversion on GitHub, anyhow? Besides
         | simple inertia, there were workflows which Git didn't support
         | until recently. The main thing we heard when speaking with
         | customers and communities was checking out a subset of the
         | repository-a single directory, or only the latest commit. I
         | have good news: with sparse checkout, sparse index, and partial
         | clone, Git can now do a pretty decent job at these workflows.
        
           | jeppester wrote:
           | With these features I can have a local clone with just a
           | subfolder, and without downloading all the history. But it
           | still comes with git - which I'll then have to remove for my
           | use case.
           | 
           | I really think that grabbing some files from a certain commit
           | should be a completely trivial oneliner.
        
       | schacon wrote:
       | As one of the GitHub cofounders and the brainchild of this
       | particular feature, I want to let everyone know that this is
       | maybe the funniest thing I've ever done.
       | 
       | We released this feature and published the announcing blog post,
       | on April Fool's Day, 2010. I remember demoing it to the other
       | GitHub guys and saying how funny it would be if we made this an
       | April Fool's day post as though it was a big stupid joke but then
       | it actually completely worked on every repository we had and we
       | all thought it would be great. Until nobody believed us. Which in
       | hindsight we should have seen coming, since that was the joke,
       | but nobody actually tried it. Then people tried it and it worked
       | and they thought it was a trick or something.
       | 
       | It was really helpful for people migrating from legacy SVN based
       | systems to us (CI and stuff) but I'm surprised to some degree
       | that it's still running 13 years later when nobody is really
       | facing that issue anymore. And I'm still undecided if the joke
       | was worth the massive confusion it caused. But if I'm pressed, I
       | would say that I would 100% release it on April Fool's Day again.
        
         | filmgirlcw wrote:
         | Thank you for building this. Best 13 year "joke" ever -- and I
         | do think it also did some good.
        
         | [deleted]
        
         | vtbassmatt wrote:
         | As the PM who ended up finally killing it, I (on behalf of the
         | team) thank you for your "joke" that wasn't really a joke. It
         | did help some customers who had legacy SVN workloads land on
         | GitHub.
         | 
         | I wanted to announce this on April Fool's Day, but just
         | couldn't make the timing work.
        
           | schacon wrote:
           | I tip my hat to your team and I owe you all beers, my
           | friends. You are doing the lord's work.
        
           | klyrs wrote:
           | > I wanted to announce this on April Fool's Day, but just
           | couldn't make the timing work.
           | 
           | Thank you for not doing that. Releasing a wacky feature on
           | April 1 is funny. Discontinuing a service that people might
           | rely on is distinctly un-funny.
        
             | adamdusty wrote:
             | I disagree. It would probably prompt a few support calls
             | and emails, but otherwise I think it would be great.
        
           | IgorPartola wrote:
           | Instead add FTP version control support with the ability to
           | create backup files.
        
             | colonelpopcorn wrote:
             | source.php.old.ReallyOld.bak.thistimeitsold.old
        
               | m4tthumphrey wrote:
               | source.php_newnewnew
        
               | rezonant wrote:
               | I wonder how much PHP source code is publically reachable
               | out on the Internet because people would do this without
               | realizing that modphp wouldn't treat it like a PHP file
               | anymore, so an HTTP request to it would cause it to dump
               | the file's source code.
        
               | IgorPartola wrote:
               | Exactly. When it is a small change, just comment it out.
               | But when it's a large change, create a
               | .old.backup.2013-12-07.dontdelete.
        
             | snickerbockers wrote:
             | i'm still angry at mozilla and google for deprecating that,
             | being able to set up a simple anonymous FTP server and send
             | normies a link to it that they can open in their browsers
             | was really convenient. Now if I want to use FTP i have to
             | explain to them that they have to copy it into the windows
             | file explorer or download filezilla.
        
         | eterm wrote:
         | Thank you.
         | 
         | A few different SVN -> Git migration tools failed to migrate a
         | large legacy repo at a previous employer. I thought I was
         | doomed to be stuck on subversion forever.
         | 
         | It was GitHub's migration that finally worked and got us
         | migrated across.
         | 
         | Funny we were only svn because I had previously been part of an
         | effort to migrate them _to_ svn when I 'd joined a few years
         | prior because before that they were using an old TFS system
         | where developers would block each other by checking out files
         | which would lock them for the whole repo.
         | 
         | I knew that switching immediately to git would have been too
         | much of a culture shock so I got them over to a CVS where
         | people could at least work independently first. ( I also have a
         | soft spot for svn anyway, I think for many small teams it works
         | just as well as git with fewer opportunities to shoot oneself
         | in the foot. )
        
           | vtbassmatt wrote:
           | FWIW we aren't planning to turn off Subversion import [1].
           | Only the two-way bridge where you could keep using `svn`
           | against the Git repo.
           | 
           | [1] https://docs.github.com/en/get-started/importing-your-
           | projec...
        
         | pan69 wrote:
         | If my memory is correct, the content on svnhub.com used to look
         | different back then, was it related to the April Fool's Day
         | joke?
         | 
         | https://svnhub.com/
        
           | vtbassmatt wrote:
           | As part of the deprecation plans, I updated the look of that
           | site to match modern GitHub branding a little better.
        
         | COMMENT___ wrote:
         | > I'm surprised to some degree that it's still running 13 years
         | later when nobody is really facing that issue anymore.
         | 
         | It's still running because Subversion has better CLI.
         | 
         | PS The joke is not that funny when it lasts for 13 years. Ha-
         | ha, how funny (not).
        
         | flandish wrote:
         | Y'all should sunset it on April 1st.
        
         | joewadcan wrote:
         | This was such a help when selling to Enterprises!
        
         | butterandguns wrote:
         | Where did the name slumlord come from?
        
         | _a_a_a_ wrote:
         | And I just want you to know that I know of SVN's shortcomings
         | but I do like it's comprehensibility very much, and though I
         | use git it has caused me a lot of unnecessary pain. FYI.
        
         | ceejayoz wrote:
         | > Until nobody believed us.
         | 
         | I remember having this problem with Gmail's "1GB for everyone!"
         | April 1 announcement.
        
           | scrollaway wrote:
           | I think April 1st should definitely be "Crazy-but-real
           | announcement day". It'll take some attention off the
           | unfunnier-every-year "jokes" which have turned a pleasant and
           | fun yearly occasion into the internet being unusable for ~36
           | hours.
        
             | RockRobotRock wrote:
             | You mean the internet being actually lighthearted and fun
             | (like it used to be) for 36 hours?
        
               | scrollaway wrote:
               | You sound like the kind of person who thinks saying "it's
               | just a prank bro" makes a variety of awful behaviour ok.
               | 
               | AF is a day with a mix of corpos trying So Hard To Be
               | Cool (remember this shit?
               | https://www.theverge.com/2016/4/1/11344044/google-gmail-
               | mic-...) and plainer-than-usual disinformation campaigns.
               | 
               | The only redeeming thing about that day is I get to have
               | an excuse to not be reachable for a day and can be
               | disconnected for a while. Hopefully my loved ones don't
               | end up in the hospital on bad timing.
        
               | admax88qqq wrote:
               | Google used to have some great jokes though. TiSP was
               | great.
               | 
               | https://archive.google.com/tisp/index.html
               | 
               | As with any prank or joke there is a skill and art to
               | telling a good one. But I don't think we should let bad
               | pranks outlaw humour in general.
        
             | krisoft wrote:
             | BBC usually does a "stories which sound like april 1st
             | jokes, but are actually true" compilation on that day. I
             | always found it funnier than the real april 1st jokes. Also
             | it kinda shows of their fact checking and news gathering
             | muscles, that they are able to pull the crazy-but-true out
             | of the sea of general crazyness.
        
         | birdyrooster wrote:
         | > when nobody is really facing that issue anymore
         | 
         | heh heh heh, yeah nobody
        
       | neallindsay wrote:
       | I remember when they added Subversion support; I thought it was
       | hilarious. And it worked!
       | 
       | This quote from the linked blog post made me raise my eyebrows
       | though:
       | 
       | > In 2010...it was not yet clear that distributed version control
       | would eventually take over, and even less clear that Git would be
       | the dominant system.
       | 
       | I think it was actually extremely clear that Git would win. It
       | had a guaranteed audience by virtue of hosting the Linux kernel.
       | And forget even about its distributed nature; Git was already
       | better at the centralized model than "centralized-only" version
       | control systems ever were.
       | 
       | When Subversion came out I was overjoyed; finally someone had
       | fixed most of the broken things about CVS. I jumped on it with
       | gusto. But when Git came out it was so much better than SVN that
       | I was blown away. And it wasn't long before there were great
       | tools to translate between SVN and Git. By the time Github
       | released its SVN bridge feature I think the place I was working
       | at had already used those freely-available tools to move our old
       | SVN repos to Git with full history. It was so easy to do! The
       | only hard part was organizing all the developers to stop using
       | the SVN server and switch to pushing to the Git server at the
       | same time.
       | 
       | Sometimes a new technology comes out and it's immediately obvious
       | that it's the future. The ones that come to mind for me are Git,
       | the iPhone, and node.js.
        
         | yoden wrote:
         | > I think it was actually extremely clear that Git would win.
         | It had a guaranteed audience by virtue of hosting the Linux
         | kernel. And forget even about its distributed nature; Git was
         | already better at the centralized model than "centralized-only"
         | version control systems ever were.
         | 
         | I think you're forgetting about Mercurial, which was also
         | created by a Linux kernel developer around the same time. It
         | brought all the same benefits of git, but had a simpler command
         | line API and better cross platform support. Mercurial saw wide
         | use, especially in large corporations like Facebook.
         | 
         | Indeed, a lot of people will say that it was the success of
         | github itself that pushed git over the top. In a world where
         | bitbucket won instead of github, we could all be using
         | mercurial.
         | 
         | Although I've never used it, I'm not sure how much of an
         | improvement either of these was over BitKeeper. The primary
         | impetus to create git and mercurial was licensing changes in
         | BitKeeper, not technical deficiencies.
        
           | neallindsay wrote:
           | Maybe I'm the weird one, but Mercurial never made sense to
           | me. I thought that Git's model made perfect sense.
           | 
           | I never tried BitKeeper, so I can't speak to that. But being
           | proprietary seemed to doom it.
        
         | no_wizard wrote:
         | Just because I don't get to talk about this much, as far as
         | centralized version control goes, I liked Perforce when I used
         | it. It could store everything: assets, builds, source code all
         | in one, and you could do fine grain checkouts (I think git
         | structures this as shallow clones but they're hard to get
         | right).
         | 
         | It also let you put permissions on the repository itself, so if
         | you didn't have the correct ACLs you couldn't see part of the
         | code. It was really good for monorepos.
         | 
         | It has its quirks, and when I used it, could be a bit slower on
         | the execution side, but generally thought it was really nice.
         | 
         | I also maintain that Mercurial & Fossil are superior to git,
         | but git won the marketshare so its kinda moot now.
        
       | Shank wrote:
       | This reminds me of when Slack shutdown its IRC bridge [0], and in
       | a pretty negative way. I get that usage is down, but that tends
       | to happen. Supporting niche users is how you win customer
       | goodwill. The active users of SVN on GitHub clearly aren't going
       | to switch to git, and I can respect the maintenance costs, but
       | they're probably just going to switch to a different provider.
       | For them, their workflow is now in-danger and they have to solve
       | that problem in-addition to whatever they're working on. I always
       | thought it was a lovely little feature GitHub supported, and I'm
       | sad to see it go for this reason.
       | 
       | [0]: https://it.slashdot.org/story/18/03/08/2049255/slack-is-
       | shut...
        
         | arp242 wrote:
         | There's some differences as well: GitHub gives a year lead-
         | time, Slack gave two months. IRC and XMPP are a fundamentally
         | different workflows from that horrible web UI, subversion (for
         | basic commands) is not all that different than git (alias
         | svn=git can _almost_ work).
        
       ___________________________________________________________________
       (page generated 2023-01-20 23:00 UTC)