Although git was created as a decentralised way to collaborate, the practical needs of day-to-day work have pushed most of us to use it through a centralised platform (generically called a “forge”), of which the most common is Microsoft’s GitHub. That centralisation exposes us to a number of risks, primarily reliance on one forge as a single point of failure, so it’s useful to have an understanding of what other options are out there.
This workshop will give you a chance to think through and discuss how you use GitHub, and identify options for replacing or augmenting it with other tools to make your development process more resilient.
- Format
- Interactive online workshop
- Length
- 1.5-2h (during Western Europe daytime)
Consistent with the topic of the workshop, this repository is mirrored in several places, with the primary repository currently being the one hosted on Codeberg:
- Git
- Mercurial
- Pijul
Audience¶
This workshop is for people who use GitHub to collaborate on code, writing or similar projects, and who would like to learn more about what alternatives are available. It’s especially aimed at researchers and research software engineers.
Prerequisites¶
- Familiar with solo or collaborative workflows using git to track revisions of software or documents
- Reasonably comfortable doing simple file management (move, copy, delete) and git operations (commit, push, pull/merge) in the terminal
- (Optional but recommended) An active GitHub account (oh, the irony...)
Learning objectives¶
After attending this course you will be able to:
- Understand the relationship between Github and other forges, and their pros and cons
- Evaluate software development forges according to the needs of your project & workflow
- Identify different tools, both integrated and separate, which can replace some or all of the functionality of GitHub
- [???] Use mechanisms for collaboration without using any forge, such as email or direct SSH
- [???] Install and use one or more alternative (non-git) version control tools well enough to evaluate their usefulness to your work
Why am I teaching this course?¶
I (Jez) have been using version control software (VCS) since the days of CVS and Subversion, and still get a kick out of experimenting with and learning about new and old VCS. I don’t expect everyone to share my level of enthusiasm, but I do believe VCS is such a central tool in our collaborative toolbox that knowing a little more about them can be extremely useful.