devSync - Specification.
This document is open for community scrutiny. If you have any feedback, please send it here.
INTRODUCTION ------------ When sharing your online life over several PCs (that cannot talk to each other), it would be usefull to be able to keep working files up-2-date on each machine. This project is designed to offer a product that will keep an offline mobile device (such as a USB stick) updated with changes made to file on several machines. USE CASE -------- 1. You create a document on your laptop. 2. In the evening you want to work on this file at home. 3. The the next day, you work on the file at work. 4. Later you add some more changes on your laptop. In the above example, their would need to be a lot of manuel file copying between different locations. By using this product (by pluggin in a USB stick each time you use a PC) the correct file is always copied onto your working machine. Further, if you hadn't "syncronised" between 3 and 4, then your laptop version would be out of date and you couln't work on it. But devSync will be able to handle this, leaving you free to make changes to the old copy of the laptop file. Later when you do sync, devSync sees that the copy on the laptop was an old file and that you have made additional changes to it. It therefor "feeds in" earlier changes (2 and 3), then adds your final changes to the list. If the changes you made were in a simmilar area, then devSync lets the user decide which changes take president. This way you can work on any file at any time and be sure your not going to loos things. MODULES ------- 1. uDev Rules - Sense the insertion of a USB key & trigger script 2. Setup - What directories to monitor 3. User Interface - Setup 4. User Interface - Merge/Conflicts 5. Repository creation 6. Reporitory 'Version Control' hooks STRUCTURES ---------- The project will be released under GPL (2 or 3). The system will be written in C, using the GlibC and GTK interfaces. The system will be optimised for the GNOME platform, but should be transportable. The system should be fully localisable. PRE-REQUISITS ------------- Version Control [cvs]
