Cloud Collaboration
Cloud Collaboration offers real-time collaboration through the Live Share extension, with cloud storage on Google Drive.
It allows any participant to start working on a project at any time without having to schedule sessions or synchronize files with your team.
When connecting to a project, the extension automatically joins another participant's Live Share session, or creates a new one, with the latest version of the project files.
Dependencies
- The Live Share extension.
- A Google account so the extension can access your Google Drive.
Usage
- Create or join a project : open an empty folder, right-click in the file explorer, click on Cloud Collaboration: Create Project or Cloud Collaboration: Join Project. This will create a .collablaunch file, which contains the information needed by the extension to connect to the project.
- Connect to a project : open a .collablaunch file and click on Connect. This will load the project and either join another participant's Live Share session or create a new one. You can then work on the project in the Project folder. All files outside of this folder will be ignored.
- Share the project : open the .collabconfig file and invite collaborators by entering their e-mail address, or share the project globally and send them the link.
- Open a terminal : press Terminal -> New Terminal. This will open a new terminal in a folder containing a copy of the project updated in real time. Each participant can create their own terminal to interact with the project.
- Disconnect : open the .collablaunch file and click on Disconnect. This will exit the Live Share session, transfer it to another participant if you were the host, and unload the project.
Addons
Cloud Collaboration adds specific features for certain types of project. You can define your project type if available in the .collabconfig file. Currently, the extension only adds functionality to LaTeX projects, allowing any connected participant to compile the project if they have the LaTeX Workshop extension and the latexmk compiler.
Warning
The extension is new and has not yet been extensively tested so it may still contain bugs. To prevent data loss, project files are regularly and automatically backed up. You can choose how many backups are maintained, how often they are added, and find the path where they are stored in the .collabconfig file. If you find any bug, please report it on GitHub.
Limitations
Because it depends on Live Share and Google Drive, Cloud Collaboration has some limitations :
- Binary files : Live Share does not support binary files. Cloud Collaboration offers a limited support by encoding them as text files. These files will have a .collab64 extension. The unencoded version of the files are stored in a folder containing a copy of the project. By default, terminals you create when you are connected to a project open in this folder, so you can interact with both binary and text files from the terminal. This also means that you can't upload binary files by dragging them into the file explorer. To add binary files to a project, right-click in the file explorer and click on Cloud Collaboration: Upload Files.
- Upload and download speed : project files are stored on the owner's Google Drive. They have to be downloaded when loading the project and uploaded regularly when someone is working on the project. This can be quite slow. You can reduce the time it takes by carefully configuring your project in the .collabconfig file. Files that match the rules defined in the Ignored Files setting are not uploaded to Google Drive. For example, you can ignore temporary or compilation output files, or large files that rarely change if you share them with your team by other means. If you don't need to access them from the terminal, you can also move these files out of the Project folder.
The rest of the files are uploaded or downloaded in two groups : static files and dynamic files. Files that match the rules defined in the Static Files settings are static, the other files are dynamic. If a file in a group is modified, all files in that group will need to be uploaded or downloaded. You should therefore set files that rarely change as static and files that you often need to modify as dynamic.