What source control software did you use in 2010? Possibly Git, if you were an early adopter or a Linux kernel committer. But chances are you were using Subversion, as this was the product of choice for the majority of the software developers. Ten years later, Git is the most popular product. Which makes me wonder: what will we use another ten years from now?
In this talk we will think about what features we want from our source control software in 2030. More speed? Better collaboration support? No merge conflicts ever?
I’ll also discuss a few products that have been published after Git emerged, including Plastic, Fossil and Pijul. I’ll talk about the extent to which they contain the features we so dearly desire and I’ll demonstrate a few typical use cases. To conclude, I’ll try to predict which one will be ‘the top dog’ in 2030 (all information is provided “as is”, no guarantees etc. etc.).
So attend this session if you’re excited about the future of version control and if you want to have a shot at beating even (!) the early adopters. Now if it turns out I was right, remember that you heard it here first.
2. #JCON2021 #SuccessorOfGit @hannotify
Will Git Be Around
Will Git Be Around
Forever?
Forever?
Forever?
Forever?
Forever?
Forever?
Forever?
Forever?
Forever?
Forever?
Forever?
Forever?
A List Of Possible Successors
A List Of Possible Successors
Hanno Embregts
@hannotify
4. #JCON2021 #SuccessorOfGit @hannotify
Teaching a
Teaching a
Teaching a
Teaching a
Teaching a
Teaching a
Teaching a
Teaching a
Teaching a
Teaching a
Teaching a
Teaching a
course on Git
course on Git
course on Git
course on Git
course on Git
course on Git
course on Git
course on Git
course on Git
course on Git
course on Git
course on Git
https://pxhere.com/en/photo/652221
8. #JCON2021 #SuccessorOfGit @hannotify
"640K ought to be enough for anybody
for now..."
https://upload.wikimedia.org/wikipedia/commons/thumb/3/31/Bill_Gates_2004.jpg/1280px-Bill_Gates_2004.jpg
10. #JCON2021 #SuccessorOfGit @hannotify
Why did Git
Why did Git
Why did Git
Why did Git
Why did Git
Why did Git
Why did Git
Why did Git
Why did Git
Why did Git
Why did Git
Why did Git
become so
become so
become so
become so
become so
become so
become so
become so
become so
become so
become so
become so
popular?
popular?
popular?
popular?
popular?
popular?
popular?
popular?
popular?
popular?
popular?
popular?
https://pxhere.com/en/photo/652221
25. #JCON2021 #SuccessorOfGit @hannotify
One problem though.
One problem though.
We haven't included any new
products!
https://www.pexels.com/photo/man-in-black-shirt-and-gray-denim-pants-sitting-on-gray-padded-bench-1134204
26. #JCON2021 #SuccessorOfGit @hannotify
The Browser
The Browser
The Browser
The Browser
The Browser
The Browser
The Browser
The Browser
The Browser
The Browser
The Browser
The Browser
Wars
Wars
Wars
Wars
Wars
Wars
Wars
Wars
Wars
Wars
Wars
Wars
https://pxhere.com/en/photo/652221
28. #JCON2021 #SuccessorOfGit @hannotify
In ten years time...
In ten years time...
1. ...Internet Explorer would be surpassed as the top
browser family;
2. ...Mozilla Firefox would surpass Internet Explorer;
3. ...Mozilla Firefox would be the top browser.
29. #JCON2021 #SuccessorOfGit @hannotify
In ten years time...
In ten years time...
1. ...Internet Explorer would be surpassed as the top
browser family;
2. ...Mozilla Firefox would surpass Internet Explorer;
3. ...Mozilla Firefox would be the top browser.
32. #JCON2021 #SuccessorOfGit @hannotify
The handicap of a head
The handicap of a head
start
start
Jan Romein, "The dialectics of progress", 1937
Jan Romein, "The dialectics of progress", 1937
You will get a lot of attention.
https://www.pexels.com/photo/battle-black-blur-board-game-260024
33. #JCON2021 #SuccessorOfGit @hannotify
The handicap of a head
The handicap of a head
start
start
prediction variable #4
https://www.pexels.com/photo/photo-displays-person-holding-ball-with-reflection-of-horizon-940880
34. #JCON2021 #SuccessorOfGit @hannotify
Two New(er)
Two New(er)
Two New(er)
Two New(er)
Two New(er)
Two New(er)
Two New(er)
Two New(er)
Two New(er)
Two New(er)
Two New(er)
Two New(er)
Kids On The
Kids On The
Kids On The
Kids On The
Kids On The
Kids On The
Kids On The
Kids On The
Kids On The
Kids On The
Kids On The
Kids On The
Block
Block
Block
Block
Block
Block
Block
Block
Block
Block
Block
Block https://pxhere.com/en/photo/652221
37. #JCON2021 #SuccessorOfGit @hannotify
Features that Fossil
Features that Fossil
promises
promises
distributed version control
integrated bug tracking, wiki, forum and technotes
built-in web interface
both autosync and manual merge mode
show descendants of a check-in
supports operations on multiple repositories
(fossil all) https://www.fossil-scm.org
38. #JCON2021 #SuccessorOfGit @hannotify
Quick facts
Quick facts
Written in C and SQL
Is the VCS of choice for the SQLite project
Free code hosting at:
Chisel - http://chiselapp.com/
Or simply host it yourself using an SQLite database
and a web server
39. #JCON2021 #SuccessorOfGit @hannotify
Uses a relational
Uses a relational
database
database
a repository is stored in a single SQLite database
file
contains relations between check-ins to be able to
produce both ancestors and descendants of a
check-in
42. #JCON2021 #SuccessorOfGit @hannotify
The Bad
The Bad
Dealing with large files
Dealing with large commits
https://www.omiyagames.com/blog/2014/02/15/farewell-
https://www.omiyagames.com/blog/2014/02/15/farewell-
fossil-version-control
fossil-version-control
43. #JCON2021 #SuccessorOfGit @hannotify
Git vs. Fossil
Git vs. Fossil
Git Fossil
Sample project Linux kernel SQLite
Contributors 5,000+ 4
Engagement Global Personal
Workflow Hierarchy Trust
https://www.fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki
45. #JCON2021 #SuccessorOfGit @hannotify
pi · jul
pi · jul
pi · jul
pi · jul
pi · jul
or crotophaga sulcirostris, a bird
known to do collaborative nest
building.
https://commons.wikimedia.org/wiki/File:Museo_de_la_Naturaleza_de_Cantabria_(208).jpg
46. #JCON2021 #SuccessorOfGit @hannotify
Features that Pijul
Features that Pijul
promises
promises
distributed version control
simple, because of its basis on a sound theory of
patches
fast, because it aims to fix the Darcs performance
issues
interactive recording
48. #JCON2021 #SuccessorOfGit @hannotify
Patch-oriented design
Patch-oriented design
A patch is an intuitive atomic unit of work.
It focuses on changes, instead of differences
between snapshots (i.e. Git commits).
Applying or unapplying a patch doesn't change its
identity.
The end result of applying several patches is always
the same, regardless of the order in which they
52. #JCON2021 #SuccessorOfGit @hannotify
Pijul towards v1.0
Pijul towards v1.0
New change format; 'patches' are now called
'changes'
Apply dependent changes automatically
'Branches' are now called 'channels'
Better support for large files and repositories by
compressing changes
Interactive recording is replaced by a 'change draft
59. #JCON2021 #SuccessorOfGit @hannotify
Further reading
Further reading
"Beyond Git" (by Paweł Świątkowski)
http://katafrakt.me/2017/05/27/beyond-git/
"Fossil vs. Git" (by the Fossil team)
https://www.fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki
"Merging, patches and Pijul" (by Joe Neeman)
https://jneem.github.io/pijul/
Try out Pijul @ katacoda.com
60. #JCON2021 #SuccessorOfGit @hannotify
Now what?
Now what?
A lot of projects are nothing like the Linux kernel.
So try Fossil for a change!
Git's snapshotting might be too technical for the
average Git user. So try Pijul for a change!