I already fear that this may be a bit too specific since it’s a bit of a niche need, but here goes:

I’m hosting several Subversion repositories for my indie projects. So far, I just did the plumbing by hand and wrote Apache configs (hosting via mod_dav_svn).

But if I look at all those shiny tools Git users can wield, I really wish for something with a sleek UI and the option to create repositories, manage users and display source and markdown that worked with Subversion.

I know (and have tried):

  • Gitea - What I want, except Gitea is for… Git and I do Subversion. Gitea manages users, created repositories and displays their contents in a clean, useful way.

  • VisualSVN Server - This would be what I’m looking for (WebUI), but it is Windows-only (I don’t get it, who in their right mind hosts development stuff on a Windows clunker?)

  • Redmine - It’s a Ruby on Rails project. With the Zenmine theme, it almost looks like GitHub, but Redmine shies away from repository management and focuses more on project/issue management.

  • Trac - A bug tracker with Subversion browser and timeline, written in Python. While aforementioned part is great, it can also (barely) manage users and permissions for a repository using an add-in.

As well as various abandoned PHP projects with grotesque UIs and which either never fully worked or broke somewhere along the road from PHP 5 to PHP 8.

Can anyone recommend a decent WebUI for Subversion that would let me create repositories, manage users and view repository contents in the browser? Eye candy preferred, as I’m already doing everything I need via CLI tools and WebSVN.


Gentlemen and -women, I have posted this in the hope that someone might know of a niche Subversion UI that I have missed so far. I know everyone means well, but up to here, zero people offered recommendations and all comments either have me to explain why I use Subversion or recommend Git outright

Why I use Subversion

I am already using Git where it makes sense, but believe it or not, apart from being a distributed VCS with decent merging, Git plays a weak game, especially in terms of branching, versatility, binary files and external linking.

I have several use cases, including game development assets weighing in from tens to hundreds of megabytes each, to audio production with 5-channel float64 clips that I store uncompressed and edit / clean incrementally. And I link individual assets, deep in the directory tree, into my projects. Absolutely trivial in Subversion, a complete blocker in Git. Even if Git somehow suddenly could do what I need, I wouldn’t want to tackle such a migration for at least a few more years.

  • AggressivelyPassive
    link
    fedilink
    English
    247 months ago

    The clear answer is: don’t use subversion. There’s really no reason not to use git, since you can use git just like subversion if you want to.

    • @[email protected]
      link
      fedilink
      English
      57 months ago

      I’m also curious to know why. I’ve used SVN for years, and I got the biggest relief when git or Mercurial appeared.

    • @cygonOP
      link
      English
      5
      edit-2
      7 months ago

      I’m already using Git for source code related versioning, but some use cases involving large binary files with partial updates aren’t well covered by Git (I’ve gone into some detail in my reply to @[email protected]).

      There’s also the lack of svn:externals in Git. Git submodules can only point to a whole different repository as far as I’m aware.

        • @cygonOP
          link
          English
          67 months ago

          That would (just like Git LFS) store full, separate copies of every single version of the large files I manage. I really, really don’t want to go there, nor do I have even a fraction of the hard drive space for that…

        • @cygonOP
          link
          English
          27 months ago

          That’s what I meant when I wrote “Git submodules can only point to a whole different repository” - they can’t point to a path inside a repository, only to another repository root. That unfortunately renders them useless for me (I’d have to set up in the order of hundreds of small repositories for the sets of shared data I have).

      • @MeanEYE
        link
        English
        17 months ago

        While true, Git also supports symlinks, so nothing is stopping you from having modules/ directory or something similar and then in link part of it elsewhere in your project.

    • @[email protected]
      link
      fedilink
      English
      17 months ago

      One thing I like about SVN that, at least in the past, was not easy with Git is checking out sub directories.

      One thing I do is check out svn+ssh://svn/home/svn/configs/server/etc and copy the .svn file over to /etc so that I can check in changes from the actual directory on my servers at home. I never found a good way to do that on Git. But, admittedly, I haven’t looked in a couple years.

  • @[email protected]
    link
    fedilink
    English
    97 months ago

    I don’t get it, who in their right mind hosts development stuff on a Windows clunker?

    Same question, but Subversion. Switch to git. Import your repos with git-svn.

    • @cygonOP
      link
      English
      77 months ago

      I’m already using Git, thus my experience with Gitea. I am well versed with svndumpfilter and git-svn to extract and migrate individual Subversion repositories to Git.

      I’m not only hosting code, but I have several projects involving large binary files with binary changes. Git’s delta compression algorithm for binary files is so-so. Git LFS is just outsourcing the problem. Even cloning with --depth 1 --single-branch gives me abysmal performance compared to Subversion.

      So I’m still looking for a nice WebUI to make my life with the Subversion repositories I have easier.

      • @[email protected]
        link
        fedilink
        English
        37 months ago

        That’s interesting, okay. Is svn doing compression of those binaries for you?

        Not to say “you’re holding it wrong”, but I’m curious about your workflow here. You clone these binaries every time you come back to a project?