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.