Yep native filesystem. In the long term, yes it would be awesome if we could store all files on SAFE, even the working directory. In the first versions of the system, I would be surprised if it will be efficient enough to do this. You are better informed on what the current system can do though.
Compiling and other project level tasks must work just as quickly as they do now.
It is also important to be able to have multiple working directories for the same repo. Multiple people working on the same code base will want to have their own working directory and be able to manage their “local” commits before pushing into the central shared repo.
The way data is handled on SAFE and the integrated version control makes me think this would definitely be doable. The git repo could effectively just be a chain of versions explicitly defined by the user, with some metadata. The git version would just be a pointer to the maidsafe version of the working directory that the user chooses. Checking out a git commit would be as simple as changing the directory pointer in the VFS to point to the correct version on SAFE. It would be nice to be able to set different versions to have different permission levels, which I don’t think it currently possible.
This is a pretty fundamental change to how git does things, however. This sort of thing could be a fundamental component of maidsafe to allow users better control of versions and history. I could see an Apple time machine type application built on top of this.
It seems to me, it would be much easier to take git and tweak how pushes/pulls/clones work to integrate it into maidsafe. Also, it would be easier for users to pickup and understand as it is just like their current git, with a few tweaks to make it awesome. You wouldn’t even need fuse installed; you could distribute it as a self contained git client.
Reworking git to efficiently use the VFS drive looks like a lot more work to me. And it would be a harder sell to users that have never heard of Maidsafe.