![]() |
Personal Revision Control System |
Index · Overview · Design · Using · Faq · Download · Developers · |
Here is the basic flow control of what happens when user intracts with pericos
and how pericos behaves internally, we have provided very high level design (if u can call this one)
as the time progresses we will make it much more refined. 1. User starts the program. Ans: As soon as user starts the program (assuming its first time) the program should ask user to input(select) a backup directory (through file selector or any other user friendly mechanism).This should happen only for the first time user starts the program . The input provided by user is stored in config file, and from next time program doesnt ask user to input backup directory. 2. User starts a new project (right?) called 'P'. Ans : Yes user starts a new project (assuming that its the first project).We have to show a tree like structure on the left side, the root node should be something like "Pericos" which will contain child node of "Projects" which in turn will contain child nodes "project names" with child nodes of directories and files which exist in this project, user can add files to the project using drag and drop mechanism or any other comfortable user friendly mechanism.Once all files are added to the tree struture user will press a button called "Commit Project" which will save the whole files in the back up directory (it will save the whole file because its first version from next time it will store the differences) With this we have to provid facility to backup individual files which do not belong to any project this files can be added directly to the node named "Files" which is child node of root node "Pericos" So Tree structure will contain a root node "Pericos" with two child nodes "Projects"(for managing whole project) and "Files" (for managing files which do not belong to any project) The tree structure looks something like this -Pericos -Projects -P1 -Dir1 -File1 -File12 -Dir2 -File2 -P2 -File3 -Files -F1 -F2 The directory structure of "Projects" child node should be same as it exists in his/her local machine. For "Files" node there is no need to maintain directory structure. 3. User adds a new file called 'X' to the project. Ans: This i have explained in the above question 4. User Closes program after saving 'P'. Ans: User doent save "P" he saves the whole pericos instead, when presses save button we have to save the whole tree structure in XML format. The xml structure looks something like this <xml version="1.0" encoding="UTF-8"> <pericos> <projects> <p1> <dir name="dir1" numfiles="2"> <file name="file1" path="c:/somepath" lastmod="sometime"/> <file name="file12" path="c:/againsomepath" lastmod="sometime"/> </dir> <dir name="dir2" numfiles="1"> <file name="file2" path="c:/somepath" lastmod="sometime"/> </dir> </p1> <p2> </p2> </projects> <files> <file name="file1" path="c:/somepath" lastmod="sometime"/> <file name="file2" path="c:/somepath" lastmod="sometime"/> </files> </pericos> 5. After 2 days, User starts program again. Ans: User start program again , this time we have to build the tree using the xml file we saved, here we have to get the value of "time" attribute with each file and check whether file has changed after that .. if Yes we have show the file in different color. 6. User Loads project 'P'. Ans : All the projects in the xml file will be shown to the user. 7. User adds a new version of 'X' to the System - The System backs-up the old file (right ?) and updates the history tables of 'P'. Ans : As we are showing the changed files with a different color user can wish to commit them (save them in backup) this time the difference will be stored.As i mentioned earlier we are stroing the first version of the file and after that we just go in storing the differences corresponding the the first version. 8. User Closes program after saving 'P'. Ans : again the Tree structrure with new value of "Time" attribute of <file></file> tag is saved Back On Top Do You Feel this project is worth enough to put your efforts in ? then visit us at SourceForge. |