Git has been a developer’s go-to tool ever since it started to gain popularity a few years back. Still, not everyone who gets to play a bit with code will want to go through the whole process of learning its quirks. This is where gitfs, the open-source tool we’re launching right now, comes into play.
36. | open source
very dirty
def rename(self, old, new):
if "history" in old or new:
# raise EROFS
elif old == "/" or new == "/":
# raise EROFS
else:
# do the actual rename
gitfs
56. | open source
Fuse threads Commit queue Sync worker
commits
want to sync
don't open for write
gitfs
57. | open source
Fuse threads Commit queue Sync worker
commits
commit
want to sync
don't open for write
gitfs
58. | open source
Fuse threads Commit queue Sync worker
commits
commit
want to sync
sync done
don't open for write
gitfs
59. | open source
Fuse threads Commit queue Sync worker Fetch worker
commits
commit
want to sync
sync done
don't open for write
FETCH
FETCH
FETCH
gitfs
60. | open source
Fuse threads Commit queue Sync worker Fetch worker
commits
commit
want to sync
sync done
don't open for write
Nothing happens FETCH
FETCH
FETCH
gitfs
61. | open source
Fuse threads Commit queue Sync worker Fetch worker
commits
commit
want to sync
sync done
don't open for write
Nothing happens
Nothing happens but
somebody is still
writing
FETCH
FETCH
FETCH
gitfs
62. | open source
Fuse threads Commit queue Sync worker Fetch worker
commits
commit
want to sync
sync done
don't open for write
Nothing happens
Nothing happens but
somebody is still
writing
Nothing happens but
somebody is still
writing so we can
merge and push
FETCH
FETCH
FETCH
gitfs