At my job, we unfortunately used bzr for many years.  It was so slow that 
several years ago we broke up the repository into separate pieces thinking 
that individuals would only need to branch the part they need to modify. 
Finally us developers have convinced the management to allow us to switch 
to git.  So we are in the process of doing that now.

However, I am intrigued by Google's use of a mono-repository.  I'm 
pondering about the idea of combining our repositories again and even 
including ALL packages that we depend on into one BIG repository.  The 
problem, of course, is every time we do a clone we'd be copying a LOT of 
data around.  So I was thinking, what if we wrote a FUSE (Filesystems in 
User Space) that used very little space, but exposed a virtual working 
directory to the user?  So for example, at first, a clone would be nothing 
more than a link to the revision (or manifest or whatever...) when the user 
cd's into directory and reads the files, it retrieves the content of those 
files straight from a central repository somewhere.  Then if a user writes 
a file, then only that is maintained in his local tree.  When he commits, 
the new revision is written to the git repository, and his git-fuse-FS 
would clear out his committed local files and refer to the new revision 
again.  

Heck, at my work, we are all on the same network, so perhaps we could have 
a single shared git repository with multiple git-fuse-FS workspaces 
pointing to that. Maybe we can commit all the binaries too.  If we had a 
good build system like bazel that guarantees correctness, then it seems to 
me that the workflow would be extremely fast.  When one does a checkout, 
they'd have all the executable right there.  They change a couple files, do 
a bazel build, and only the changed .o's, libs, and would be written 
locally, and he could run with that.  

Is this possible?  Does anything like this exist already?

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to