# Personal Experiences and Opinions on Version Control Software

aka How I use Git wrong

2021-08-25

CW: Highly opinionated thoughts ahead, as well as confessions.

## How I Use Version Control Solo

* As a simple (and glorified) log of my individual software projects as I work on them over time
* Packaging up my individual websites 
* Holding a single software project and creating a little workflow to add and test new features and jump to different versions (occasionally)
* Going back to previous 'commits' when i've lost or messed something up (rarely)

To be clear, I am often using Git just as a service for logging (via the commit messages) and saving (via committing) and backing up to a remove Git server. These are not the main feature or raison d'etre for Git, which is complex version control software with way more features and possibilities.

## What else I use a software forge for
* backing up and/or hosting a website (for example on GitHub, GitLab) or deploying to a server via a Git hook (any)
* Holding my gemlog, then using a hook to upload to my gemini server
* Cooperating on a collaborative software project with many other people (issues, pull requests, etc)
* Having a place to browse and find others' software projects as inspiration or to learn from or to use for my own needs

## Opinions on various version control software forges

I only have experience with Git-based version control software, though I'm sure I'd like others as well, especially if they had a more streamline workflow for solo devs. I've heard there are other nice systems but I'm comfortable with Git so that's where I'll probably stay.

It's very easy to jump between any Git-based version control server. The commands are all the same. I personally use GitHub (for public projects that I need to deploy a website), Keybase Git (for personal encryped git stuff. my own personal vimwiki is on here) and Tildegit (smol-web projects). I've checked out some others as well. 

### GitHub

This is the big one, the place for your software to be seen. Fair enough.

An aside: Recently Github phased out passwords and requires 'tokens' now. I set up a long, unlimited-time token, so it's basically just a long password. Couldn't find info online on how to remove my old password and use the token instead. The solution was to basically remove old password from the ~/.gitconfig file and put in the token as my new password.

Con: Works with ICE and other distasteful companies and gov. Is a Startup. Uses Gamification (favoriting/stars, counting forks...). Requires pro account for unlimited private repos. 
Pro: GitHub pages for website hosting of static sites free 

Basically, GitHub was my go-to service for years but I wanted to find an alternative when I learned about their work with ICE. I doubt my (free) non-enterprise account is more than a drop in the bucket, but it feels right to try to move away from the service. Now I make all of my new projects repos with another service. I still maintain some repos here for past projects. And I use regular Github when I do pull requests or file issues on other software projects.
 
### Keybase Git

I like the idea of Keybase, a secure encryped private file system, message system, Git system. But they are a startup and were bought by Zoom (poor surveillace record when it comes to issues relating to China), so now many people don't trust them. They also added a ton of unneccessary features, including........cryptocurrency. Meaning they are trying to figure out how to monetize for 10X returns. Not what I'm looking for.

I use it as a backup for my own wiki, and as a glorified encrypted virtual hard drive for my PDF reading library. That's it.

Con: Is a startup. Too many features. No web frontend for their Git service. Like Steam, requires a service running (though there is a way to do this via CLI). Owners Zoom is not a great company.
Pro: Free. The Git server service is a simple and encrypted by default service. I've not hit a bandwidth or size limit. Has a way to host files/static site, but not documented how to use a built-in hook, so requires accessing via GUI.

### Tildegit

An exclusive git service server since you need to be a member of a Tilde server to sign up. "Just works". I like browsing the explore page to see other smol-internet projects. Very easy web UI. I think it's nice and simple compared to the GitHub website: no gamification or random riffraff buy-now and enterprise services.

Con: I've been using it a year and one time (yesterday!) it went down for 4 or 5 hours, which was deeply confusing and troubled me. Reminds me that I should have an additional backup of my crucial repos, so that I have 3 total copies. Signup requires proof of tilde membership. 
Pro: Great for solo devs. It's a Gitea-based system, so there's documentation of Gitea online (though I haven't needed to use it since it's intuitive and 99% compatible with other Git-based workflows like GitHub).

### Sourcehut

A favorite of many smol-web users, and now provides free hosting of gemlogs. The founder has his own gemlog. However, I won't use Sourcehut. In my opinion the founder is a bully. I noticed this on Mastodon before he deleted his account. And I see it elsewhere. Feel free to read one example of this yourself and make up your own mind.

=> https://github.com/makeworld-the-better-one/amfora/issues/199 Example of bullying makeworld, creator of the Amfora gemini client.

CON: The proprietor is a bully.
PRO: Simple. Lightweight. Free gemlog hosting.

### Codeberg

Haven't used this one. I looked for a code of conduct (to see if they would accept business from defense contractors and police departments for example) and I didn't find one. I asked on twitter and didn't get much response. Seems like some amount of community by smol-web users.

CON: I don't know. I haven't used it.
PRO: I don't know. I haven't used it.

### GitLab

I haven't used it. It's the 'alternative' to the big dog GitHub. Provides lots of enterprise options, as wll as static site hosting, and other big version control services. While they didn't have a contract with ICE their executive director distastefully said he thought there should be no politics on what they do/who they serve and they'd be fine to take military/dictator/police dep't money (this is my own summarizing). So I don't use this either.

CON: I don't know. I haven't used it.
PRO: I don't know. I haven't used it.

Any others I'm overlooking?

=> ./ back to index.gmi

---

Comments can be left by emailing lettuce@ctrl-c.club (Email checked sporadically)

---

> Hey, I read your piece on version control. It was interesting, but I think you're overlooking one major alternative that ticks several of the boxes: Self-hosting git. It extremely easy to set up. You need a raspberry pi or any computer with a ssh daemon and git. You do this on the server: 

```
cd my-project
git init --bare
```

> You do this in the client: 

```
git  remote add origin git-user@server:my-project
```

> And that's it. Now you have an off-site backup for your code.  If you want a web interface for sharing your code more publicly, something like gitweb is a good alternative to gitlab and similar, it's much more lightweight (and a bit barebones). See second below for some sample repo I have no affiliation with.

=> https://git-scm.com/book/en/v2/Git-on-the-Server-GitWeb
=> https://repo.or.cz/git-blog.git 
-marginalia

---

> Really liked your most recent post! I've, liked all the ones I've read so far. Real shame seeing that exchange with Drew and makeworld... he always struck me as a bit of an asshole, but this makes me almost want to stop using sourcehut. I guess I could always try to self-host a sourcehut instance. Maybe I should, because if I was in makeworld's shoes I certainly wouldn't have been as level-headed in my responce.
- kota

---

> Seeing the machismo toxic masculinity that infects so much of open source / linux and other software communities has been really disappointing. 
-lettuce

---

> It's definitely one of the worst parts of open source.. I try to remain optimistic that pushback is growing and as our communities become more diverse attitudes like his will be completely unacceptable.  
-kota


