|
|
|
Evolution's XML import/export format
All Evolution XML import/export documents begin with the following two lines
The Documents element above is currently unused, but is required. In the future it will allow for more than one repository to be imported at the same time.
The rest of the document is made up of Folder, Document and Revision elements. Revisions contain several other elements as well: Contents, User, Revision Date, and Comment. That is the sum total of all the elements. Each Element, along with its attributes is described next.
Folder
Attributes: name
The Folder element will specify a directory. Any thing between the opening and closing of a Folder element is considered to be contained in that folder. The importer will create the folder with the given name, and put any other folders or documents between the opening and closing tags inside.
Document
Attributes: name
A Document element specifies a single file item on the file system. Document elements contain one or more revision elements. The name attribute specifies the filename.
Revision
Attributes: version, action
Each Revision element signifies a historical version of a file. A file with 10 versions in a repository should have 10 Revision elements in the import file. The version attribute is the version number of this Revision. Evolution versions begin with 1 and count upwards using the natural numbers (aka Counting Numbers). There are no decimal versions in Evolution. If the tool you are importing from uses decimal version numbers, you will need to convert them to whole numbers.
The action attribute is currently unused. It should be written to the file anyways.
Contents
The Contents element is always a child element of a Revision. It specifies the relative path of the version to be used during import. The current tools developed by ionForge all put their files in a directory named CSExportFiles. This directory is in the same directory as the XML file being described in this document. Also, since there will be many versions of each file, the names would normally overlap. Instead, the current tools rename each version to some random but OS legal name. During import, the import tool will rename each version to the name attribute of the enclosing Document element.
User
The User element contains the username of the user who checked in or committed this version of the file. It is always a child of a Revision element.
Revision Date
The Revision Date element is always a child of a Revision Element. It signifies date the revision occurred. Evolution’s import tool uses a very specific date format.
It is “year-month-dayThour:minute:second.0000000+-hour:minute”
Ex. 2003-03-28T12:43:34.0000000-08:00
All numbers must be zero filled. If the date is January 2, the year 100, then the date must be 0100-01-02, followed by the time information. The time also must be zero filled. The first time is the local time of the revision, whereas the second time is the GMT offset. Even though the GMT is not necessary for Evolution to function, it must be included in the import file. You can write -00:00 instead of calculating your GMT.
Comment
The Comment Element contains any comment written about the revision by the user during check in/commit. It is always a child of the a Revision Element.
Example
CSExportFilesÉ7AD9A.csx
Rick
2002-08-06T21:10:52.0000000-07:00
CSExportFilesD4D413.csx
Rick
2003-03-28T12:43:34.0000000-08:00
CSExportFiles\BFA1CC7A.csx
Rick
2003-03-28T12:43:34.0000000-08:00
CSExportFiles\A55EC203.csx
Rick
2003-03-28T12:43:36.0000000-08:00
The previous XML snippet describes the following directory structure
|
|____ \ testProjects
| |
| |____build.xml
|
|____\ IdeTest
|
|____IdeTest.cpp
|
|____IdeTest.dsp
|
|____IdeTest.h
The output of an export should be a XML file containing the elements described above. The exporter should also create a directory that contains all versions of all of the files contained in the repository. The files should be named randomly, and must have an extension of csx.
If you are interested in writing an exporter and need further help, support@ionforge.com
|
|
 |
People are talking...
"The more I use Evolution, the more I like it. I really like the fact that it's very easy to use, and never gets in the way."
Muhammad Haggag Cairo, Egypt
ionForge... The Savior of Gaming?
Evolution Makes a Splash at the Game Developers Conference WarCry Network Reports
|
|