Honestly, I dislike Git. For a long time I worked with Subversion but I dislike it too. I even worked with CVS, it was my first SCM, but I mention it just for the record. Back to the first twos, nobody would give such names to a good thing. Of course, Subversion fixed many CVS design flaws as they say, but I never worked in big teams so I did not encounter any of those flaws. I disliked Subversion after glancing at its source code. That's woe. But it worked for me very well and it still works. So, basically it's not a bad thing but people prefer popular alternatives.
Yes, Git is popular, but nowadays it seems to be the only advantage. I don't know about you, but as of me, when I hear "popular" I start disliking that thing. This is simply based on my experience which tells me that popular things are bad things. And it needs some efforts to like it again.
The initial popularity of Git was driven by wow effect "Look, Linux kernel developers use it, let us use it too!" But kernel development is a specific area, in many other cases centralized SCMs would be preferred ones. But then, GitHub has emerged. This increased the popularity of Git and everyone desired it, often without any reasons.
Finally, GitHub betrayed all the open source community but nobody cares. And I'm not alone in my opinion, for example, https://www.unixsheikh.com/articles/open-source-projects-need-to-migrate-their-code-away-from-github-now.html. This means every self-respecting developer should set up his/her own public repository for open source projects.
So, my choice is Mercurial. This is better than Git from the technical point of view. You may find out why by yourself. It's actively developed, but it's less popular. Exactly as I like.
Basically, I don't care which SCM to use. If at work they use, say, Git, I'll use it too. But for myself, I prefer Mercurial.
For seamless integration with this site I prepared Clabate templates that generate templates for hgweb. It was pretty easy task, and it was an interesting experience.
The structure of hgweb templates looks a way too ancient. I mean we used such a structure at work long ago, but then migrated to more structured approach, without all those headers, footers, and duplicate markup.
Here are a few issues I encountered:
- staticurl in hgweb.conf is improperly escaped in templates. It looks like nobody used it so far or did not use full URL. As long as my templates are mine, I did not use this variable and hardcoded the URL.
- Syntax highlighting extension tries to add its CSS to header.tmpl, and it tries to read this file. I had to create an empty one to calm this extension down.
- Project description should be defined in .hg/hgrc file, in the [web] section. Could not quickly find how to do that.
So, it works for now. Probably, will make more tweaks in the process of using it.