GlassFS: plastic made transparent

Tuesday, July 17, 2012 0 Comments

Hi there! Moths ago we introduced glassfs as a prototype, but now I'm happy to announce it has been included on the latest 4.1 release!

glassfs - the joke

First things first: what glassfs means? Well, our motto during development was "glass makes plastic transparent" and that's where the name comes from.

glassfs - the story

Our first approach to glassfs, a couple of years ago, was to make scm operations as transparent as possible... at the end of the day the ideas there got integrated in 4.0 in our "transparent scm" initiative.
We always got inspired by "ClearCase dynamic views" and, know what, developing in kernel mode on Windows was sort of a cool thing to do for some team members. After discarding some alternatives and after the final "transparent scm" thing turned "precise move tracking using kernel stuff" almost unnecessary (except for performance, but that's another story yet to be completed), we decided to revamp the "glass" project using the cool "dokan project" which is sort of a "Fuse" for Windows.

What glassfs is about?

Suppose you're on baseline 137 but you need to take a look at the sources back at baseline 130. In Plastic SCM you can go to the label, right click and browse the sources, opening the files you need to check. This is useful but sometimes you'll miss some sort of "grepping" on your files, won't you? If that's the case, the "explore label" functionality won't help, you'd have to open files one by one or simply switch your workspace to the baseline 130 (which is fast, but sometimes you don't feel like doing so).
Glassfs comes to the rescue: it mounts a virtual drive on windows with the exact content of the branch, changeset or label you decide. And then you can access the files as you'd if they were on a regular directory... but without having to download everything to disk first.
The "glassfs unit" is "virtual" and hence it will only read from the repository the files you really access.
Cool, isn't it? It is some sort of read-only dynamic view. You can search text on the files using the tools you prefer...

How to use it

In this demo you can learn how to use glassfs.

For example, if you run glassfs on your command line, you will see something like this, how to use glassfs:

c:\ glassfs
Usage: glassfs drive client.conf selector
Example: glassfs z: c:\users\plastic\client\client.conf "rep 'codice' path
 '/' branch '/main'"

Executing glassfs for first time, and may be you show this: you haven't got dokan.dll

c:\Program Files\PlasticSCM4\client> glassfs v: c:\Users\Administrator\AppData\L
ocal\plastic4 "rep 'codice' path '/' br '/main'"
Unable to load DLL 'dokan.dll': The specified module could not be found. (Except
ion from HRESULT: 0x8007007E)
glassfs is not able to find a dll, most likely Dokan.dll.
If that's the case download and install
If still it can't find it, maybe you need a reboot or place the dll together wit
h the glassfs binaries
If you're here it means you don't have the Dokan FS Driver installed
If that's the case download and install

Then, downloading and install dokan.dll. You can find here,  Dokan library.

And now, you can enjoy with glassfs, using your virtual unit :-)

Limitations and future work

Right now glassfs is limited to readonly, which means you can't write any files on that virtual drive. Practically it means if you open Visual Studio and try to "browse symbols" it won't work since Visual Studio tries to write temporary files on the paths where your project is.
 "Find in files" will just work, but "go to definition" of a symbol won't... yet! Yet, because we're working on a new version with temporary file support :)

0 comentarios: