Transparent Version Control System Support
Using a typical RTFD editor to edit a document under the management of a version control system (VCS), such as Subversion (svn) or Git, usually does not go well. For example, editing the simple document under Subversion 1.6 management:
And then attempting to commit may fail:
dal$ svn commit -m "Not using Sϵvϵn" svn: Commit failed (details follow): svn: Directory '…/svn demo.rtfd/.svn' containing working copy admin area is missing
The VCS has been broken. The update command provides a clue to the problem:
dal$ svn update svn: Failed to add directory 'svn demo.rtfd': an unversioned directory of the same name already exists
“Unversioned directory” – the RTFD editor has removed the original document and replaced it with a different one which is not under version control. Bad.
Just use Sϵv϶n to do the edit and then attempt the commit:
dal$ svn commit -m "Using Sϵvϵn" Deleting svn demo.rtfd/France.png Adding (bin) svn demo.rtfd/Germany.png Sending svn demo.rtfd/TXT.rtf
It just works!
Sϵv϶n automatically supports Subversion (svn), both new-model versions 1.7+ and the old-model 1.6, and Git. Sϵv϶n will interface automatically behind-the-scenes with these VCS systems keeping them up-to-date as files are edited.
What Sϵv϶n Does Not Do
Sϵv϶n automatically tracks the changes within package-format documents, such as RTFD, and communicates those changes to the VCS. It does not commit documents, it just ensures that commit operations will work as they should. Commit, and other VCS operations, must be performed using the same tools as before.
For example, an Xcode user can use Sϵv϶n to edit RTFD documents in a project but will still use Xcode’s VCS tools to perform project commits. Without Sϵv϶n those tools would not function as expected.
Mac OS X Versions Support
Sϵv϶n also handles Mac OS X Versions and its interaction with VCS.
Using Mac OS X Versions; through themenu item, window title bar menu, etc.; enables the current copy of a document to replaced by an older version, moving “backwards”.
VCS such as Subversion always moves “forward” when making revisions, ensuring that VCS works correctly when Mac OS X Versions is used is a challenge. Sϵv϶n handles the task automatically.
When Mac OS X Versions is used to restore an older version of a file under VCS then Sϵv϶n will automatically preserve any VCS admin data and register the changes with the VCS as forward modifications to the current working copy.
Furthermore if either the pre or post Versions document are not under VCS then Sϵv϶n automatically manages the transition. For example, if a document is created and a number of Versions are created before the document is placed under VCS, then once under VCS using Versions to restore a pre-VCS copy brings that copy under VCS as a change to the cunrrent working copy…
Sounds complicated? Don’t worry.
It just works!
Handling Multiple VCS Installations
Sϵv϶n will locate VCS system installed in standard locations, including those installed by Xcode. If multiple copies of a VCS are installed then Sϵv϶n will request which version it should use – the choice can be changed at anytime throughSϵv϶n also automatically handles Xcode 5 VCS stubs as part of this process.
Sϵv϶n also performs management of the internals of RTFD documents to make them easier to use with VCS. Using manual VCS commands with Sϵv϶n produced RTFD documents is easier.