Commits

Shlomi Fish committed 8f24da0

Remove trailing whitespace

  • Participants
  • Parent commits 2cdb655

Comments (0)

Files changed (19)

 Revision history for XML::CompareML
 
+    - Got rid of trailing whitespace.
+        - t/style-trailing-space.t .
+
 0.2.6    Mon Nov 23 19:52:05 IST 2009
     - Provided a workaround for testing the code on recent (and older)
     versions of XML-LibXSLT.
 t/files/scm-sys-list-1.xml
 t/pod-coverage.t
 t/pod.t
+t/style-trailing-space.t
+META.json
 ---
-name: XML-CompareML
-version: v0.2.6
+abstract: 'A processor for the CompareML markup language'
 author:
   - 'Shlomi Fish <shlomif@iglu.org.il>'
-abstract: A processor for the CompareML markup language
-license: mit
-resources:
-  Demo: http://better-scm.berlios.de/comparison/
-  Repository: https://svn.berlios.de/svnroot/repos/web-cpan/xml-compareml/
-  homepage: http://web-cpan.berlios.de/modules/XML-CompareML/
-  license: http://www.opensource.org/licenses/mit-license.php
 build_requires:
   IO::Scalar: 0
   Test::Differences: 0
   Test::More: 0
-requires:
-  CGI: 0
-  Class::Accessor: 0
-  XML::LibXML: 0
-  XML::LibXML::Common: 0
-  XML::LibXSLT: 0
-  strict: 0
-  warnings: 0
 configure_requires:
-  Module::Build: 0.35
-provides:
-  XML::CompareML:
-    file: lib/XML/CompareML.pm
-    version: v0.2.6
-  XML::CompareML::Base:
-    file: lib/XML/CompareML/Base.pm
-  XML::CompareML::DTD::Generate:
-    file: lib/XML/CompareML/DTD/Generate.pm
-  XML::CompareML::DocBook:
-    file: lib/XML/CompareML/DocBook.pm
-  XML::CompareML::HTML:
-    file: lib/XML/CompareML/HTML.pm
-generated_by: Module::Build version 0.35
-meta-spec:
-  url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: 1.4
+  Module::Build: 0.40
+dynamic_config: 1
+generated_by: 'Module::Build version 0.4005, CPAN::Meta::Converter version 2.120921'
 keywords:
-  - Better SCM
+  - 'Better SCM'
   - categories
   - compare
   - CompareML
   - scm-comparison
   - systems
   - tree
-  - version control
+  - 'version control'
   - xml
   - XML
+license: mit
+meta-spec:
+  url: http://module-build.sourceforge.net/META-spec-v1.4.html
+  version: 1.4
+name: XML-CompareML
+provides:
+  XML::CompareML:
+    file: lib/XML/CompareML.pm
+    version: v0.2.6
+  XML::CompareML::Base:
+    file: lib/XML/CompareML/Base.pm
+    version: 0
+  XML::CompareML::DTD::Generate:
+    file: lib/XML/CompareML/DTD/Generate.pm
+    version: 0
+  XML::CompareML::DocBook:
+    file: lib/XML/CompareML/DocBook.pm
+    version: 0
+  XML::CompareML::HTML:
+    file: lib/XML/CompareML/HTML.pm
+    version: 0
+requires:
+  CGI: 0
+  Class::Accessor: 0
+  XML::LibXML: 0
+  XML::LibXML::Common: 0
+  XML::LibXSLT: 0
+  strict: 0
+  warnings: 0
+resources:
+  homepage: http://web-cpan.berlios.de/modules/XML-CompareML/
+  license: http://www.opensource.org/licenses/mit-license.php
+  x_Demo: http://better-scm.berlios.de/comparison/
+  x_Repository: https://svn.berlios.de/svnroot/repos/web-cpan/xml-compareml/
+version: v0.2.6

File examples/render.pl

 
 open O, ">", "comparison.html";
 
-my $converter = 
+my $converter =
     XML::CompareML::HTML->new(
         'input_filename' => "./scm-comparison.xml",
         'output_handle' => \*O,

File examples/scm-comparison.output.html

 <style type="text/css">
 h2 { background-color : #98FB98; /* PaleGreen */ }
 h3 { background-color : #FFA500; /* Orange */ }
-table.compare 
+table.compare
 {
     margin-left : 1em;
-    margin-right : 1em; 
+    margin-right : 1em;
     width: 90%;
     max-width : 40em;
 }
-.compare td 
-{ 
+.compare td
+{
     border-color : black; border-style : solid ; border-width : thin;
     vertical-align : top;
     padding : 0.2em;
 }
 .toc ul
 {
-    list-style-type : none ; 
-    padding-left : 0em; 
+    list-style-type : none ;
+    padding-left : 0em;
     margin-left : 2em;
 }
 .expl
 <h1 id="main">Version Control System Comparison</h1>
 <p class="expl">
         This is a comparison of version-control systems. It is split
-        into several categories and sub-categories under which the 
+        into several categories and sub-categories under which the
         systems are checked.
     </p>
 <p>
 </tr>
 <tr>
 <td class="sys">Co-Op</td>
-<td class="desc">Renames of files are supported. 
-                    Renaming a directory requires creating a new one, 
-                    moving the files and deleting the old one. 
+<td class="desc">Renames of files are supported.
+                    Renaming a directory requires creating a new one,
+                    moving the files and deleting the old one.
                     Moved file histories are preserved.
                 </td>
 </tr>
 <td class="sys">LibreSource Synchronizer</td>
 <td class="desc">
                     Yes. Renames and move are supported but the working copy
-                    needs to be up-to-date before doing a rename/move operation. 
+                    needs to be up-to-date before doing a rename/move operation.
                     This operation will be committed directly.
                 </td>
 </tr>
 <tr>
 <td class="sys">Perforce</td>
 <td class="desc">
-                    Not directly (you copy and then delete but it manages to 
+                    Not directly (you copy and then delete but it manages to
                     keep track of the branch)
                 </td>
 </tr>
 <tr>
 <td class="sys">PureCM</td>
 <td class="desc">
-                    Yes. File renames are directly supported. File and folder 
-                    moves require creating a new one and deleting the old one. 
+                    Yes. File renames are directly supported. File and folder
+                    moves require creating a new one and deleting the old one.
                     Moved file histories are preserved.
                 </td>
 </tr>
 <tr>
 <td class="sys">Visual SourceSafe</td>
 <td class="desc">
-                    Affects the whole history, it's like renaming a 
-                    file in the CVS repository. There is a kludgy workaround 
-                    using "share-rename,move,delete" that gets what you 
+                    Affects the whole history, it's like renaming a
+                    file in the CVS repository. There is a kludgy workaround
+                    using "share-rename,move,delete" that gets what you
                     want.
                 </td>
 </tr>
 <td class="desc">
                     No. <a href="http://hgbook.red-bean.com/hgbookch5.html#x9-1030005.4">the
                         Mercurial book says:</a>
-                    "When you use the 'hg rename' command, Mercurial makes a 
+                    "When you use the 'hg rename' command, Mercurial makes a
                     copy of each source file, then deletes it and marks the
                     file as removed. "
                 </td>
 <tr>
 <td class="sys">Subversion</td>
 <td class="desc">
-                    "svn help me" says "Note: this subcommand is equivalent to 
-                    a 'copy' and 'delete'." There's <a href="http://subversion.tigris.org/issues/show_bug.cgi?id=898">a 
+                    "svn help me" says "Note: this subcommand is equivalent to
+                    a 'copy' and 'delete'." There's <a href="http://subversion.tigris.org/issues/show_bug.cgi?id=898">a
                         bug report about it</a>.
                 </td>
 </tr>
 <td class="sys">AccuRev</td>
 <td class="desc">
                     Copying is supported through symbolic links
-                    (but all linked files are treated as the same file 
+                    (but all linked files are treated as the same file
                     version).  Moves are fully supported with the history
                     retained.
                 </td>
 <tr>
 <td class="sys">Arch</td>
 <td class="desc">No. Copies of files and directory structures are
-                    not supported. 
+                    not supported.
                 </td>
 </tr>
 <tr>
 <tr>
 <td class="sys">Darcs</td>
 <td class="desc">No. Copies of files and directory structures are
-                    not supported. 
+                    not supported.
                 </td>
 </tr>
 <tr>
 </tr>
 <tr>
 <td class="sys">Subversion</td>
-<td class="desc">Yes. And it's a very cheap operation (O(1)) that 
+<td class="desc">Yes. And it's a very cheap operation (O(1)) that
                     is also utilized for branching.
                 </td>
 </tr>
 <h3 id="repos_clone">Remote Repository Replication</h3>
 <p class="expl">
                 Does the system support cloning a remote repository to get
-                a functionally equivalent copy in the local system? That 
-                should be done without any special access to the remote 
+                a functionally equivalent copy in the local system? That
+                should be done without any special access to the remote
                 server except for normal repository access.
             </p>
 <table class="compare">
 <td class="sys">CVS</td>
 <td class="desc">
                     Indirectly, by using
-                    <a href="http://www.cvsup.org/">CVSup</a> 
-                    by John Polstra (which requires running the cvsupd 
+                    <a href="http://www.cvsup.org/">CVSup</a>
+                    by John Polstra (which requires running the cvsupd
                     daemon on the server)
                 </td>
 </tr>
 </tr>
 <tr>
 <td class="sys">Co-Op</td>
-<td class="desc">Repositories are always replicated on local machines. 
+<td class="desc">Repositories are always replicated on local machines.
                     There is no central server.
                 </td>
 </tr>
 <tr>
 <td class="sys">PureCM</td>
 <td class="desc">
-                    No. (But a proxy feature is planned for 
+                    No. (But a proxy feature is planned for
                     inclusion in the next releases.)
                 </td>
 </tr>
 <tr>
 <td class="sys">Subversion</td>
 <td class="desc">
-                    Indirectly, by using Chia-liang Kao's 
+                    Indirectly, by using Chia-liang Kao's
                     <a href="http://search.cpan.org/dist/SVN-Mirror/">SVN::Mirror</a>
-                    add-on or Shlomi Fish' 
-                    <a href="http://search.cpan.org/dist/SVN-Pusher/">SVN-Pusher</a> 
+                    add-on or Shlomi Fish'
+                    <a href="http://search.cpan.org/dist/SVN-Pusher/">SVN-Pusher</a>
                     utility.
                 </td>
 </tr>
 <tr>
 <td class="sys">Visual SourceSafe</td>
 <td class="desc">
-                    Not directly possible with the included GUI or 
+                    Not directly possible with the included GUI or
                     command line tools; ssarc and ssrestor might be useable
                 </td>
 </tr>
 </table>
 <h3 id="push">Propagating Changes to Parent Repositories</h3>
 <p class="expl">
-                Can the system propagate changes from one repository to 
+                Can the system propagate changes from one repository to
                 another?
             </p>
 <table class="compare">
 <tr>
 <td class="sys">AccuRev</td>
 <td class="desc">
-                    With AccuReplica, the replica server has all the meta-data 
-                    and  fetches file data as needed by replica users; all 
-                    write operations pass automatically from the replica to 
+                    With AccuReplica, the replica server has all the meta-data
+                    and  fetches file data as needed by replica users; all
+                    write operations pass automatically from the replica to
                     the master server.
                 </td>
 </tr>
 </tr>
 <tr>
 <td class="sys">Co-Op</td>
-<td class="desc">It's a peer-to-peer system, 
+<td class="desc">It's a peer-to-peer system,
                     which keeps all replicas of the repository in sync.
                 </td>
 </tr>
 <tr>
 <td class="sys">Visual SourceSafe</td>
 <td class="desc">
-                    Not directly possible with the included GUI or 
+                    Not directly possible with the included GUI or
                     command line tools; ssarc and ssrestor might be useable
                 </td>
 </tr>
 <h3 id="permissions">Repository Permissions</h3>
 <p class="expl">
                 Is it possible to define permissions on access to different
-                parts of a remote repository? Or is access open for all? 
+                parts of a remote repository? Or is access open for all?
             </p>
 <table class="compare">
 <tr>
 <td class="sys">CVS</td>
 <td class="desc">
-                    Limited. "pre-commit hook scripts" can be used to 
+                    Limited. "pre-commit hook scripts" can be used to
                     implement various permissions systems.
                 </td>
 </tr>
 <tr>
 <td class="sys">AccuRev</td>
 <td class="desc">
-                    Yes. Access can be defined per stream (branch) using 
+                    Yes. Access can be defined per stream (branch) using
                     access control lists.
                 </td>
 </tr>
 <td class="sys">Arch</td>
 <td class="desc">
                     Yes. It is possible to define permissions on access to
-                    different parts of a remote repository based on the 
+                    different parts of a remote repository based on the
                     permission systems of the underlying protocol.
                 </td>
 </tr>
 </tr>
 <tr>
 <td class="sys">Co-Op</td>
-<td class="desc">First access (joining the project) 
+<td class="desc">First access (joining the project)
                     requires administrator's approval.
                     Subsequent access to that project is not controlled.
                 </td>
 <tr>
 <td class="sys">Perforce</td>
 <td class="desc">
-                    Yes. (more than half a dozen of permission levels that can 
+                    Yes. (more than half a dozen of permission levels that can
                     be set in a file by file basis)
                 </td>
 </tr>
 <tr>
 <td class="sys">PureCM</td>
 <td class="desc">
-                    Yes. (more than half a dozen of permission levels that can 
+                    Yes. (more than half a dozen of permission levels that can
                     be set in a file by file basis)
                 </td>
 </tr>
 <td class="desc">
                     Project specific permissions (read, write, delete, destroy)
                     can be set per user; but see "Networking Support":
-                    this makes "Repository Permissions" a hindrance to 
+                    this makes "Repository Permissions" a hindrance to
                     accidental damage but cannot prevent intentional damage.
                 </td>
 </tr>
 <p class="expl">
                 Does the repository support changesets? Changesets are a way
                 to group a number of modifications that are relevant to each
-                other in one atomic package, that can be cancelled or 
+                other in one atomic package, that can be cancelled or
                 propagated as needed.
             </p>
 <table class="compare">
 <tr>
 <td class="sys">AccuRev</td>
 <td class="desc">
-                    Yes, AccuRev provides robust functionality for change 
-                    sets (called change packages in AccuRev) including viewing 
-                    differences by change packages and merging changes from 
+                    Yes, AccuRev provides robust functionality for change
+                    sets (called change packages in AccuRev) including viewing
+                    differences by change packages and merging changes from
                     stream to stream by change package.
                 </td>
 </tr>
 </tr>
 <tr>
 <td class="sys">Subversion</td>
-<td class="desc">Partial support. There are implicit 
+<td class="desc">Partial support. There are implicit
                     changeset that are generated on each commit.
                 </td>
 </tr>
 </tr>
 <tr>
 <td class="sys">Co-Op</td>
-<td class="desc">Not directly, but it's possible to compare 
+<td class="desc">Not directly, but it's possible to compare
                     any two versions using a visual differ.
                 </td>
 </tr>
 </tr>
 <tr>
 <td class="sys">Visual SourceSafe</td>
-<td class="desc">Not directly, but it's possible to compare 
+<td class="desc">Not directly, but it's possible to compare
                     any two versions using a visual differ.
                 </td>
 </tr>
 <h3 id="work_on_dir">Ability to Work only on One Directory of the Repository</h3>
 <p class="expl">
                 Can the version control system checkout only one directory of
-                the repository? Or restrict the check-ins to only one 
+                the repository? Or restrict the check-ins to only one
                 directory?
             </p>
 <table class="compare">
 <tr>
 <td class="sys">Arch</td>
 <td class="desc">
-                    It is possible to commit only a certain directory. 
+                    It is possible to commit only a certain directory.
                     However, one must check out the entire repository as a
                     whole.
                 </td>
 <td class="sys">CMSynergy</td>
 <td class="desc">
                     Yes and no.  Files and directories are checked out and in
-                    individually, however you have to work in the context of a 
+                    individually, however you have to work in the context of a
                     project, which consists of one or more directories.
                 </td>
 </tr>
 <tr>
 <td class="sys">Darcs</td>
 <td class="desc">
-                    It is possible to commit only a certain directory. 
+                    It is possible to commit only a certain directory.
                     However, one must check out the entire repository as a
                     whole.
                 </td>
 <tr>
 <td class="sys">Perforce</td>
 <td class="desc">
-                    Yes. Changes to a sub-directory of the repository 
+                    Yes. Changes to a sub-directory of the repository
                     are supported.
                 </td>
 </tr>
 <table class="compare">
 <tr>
 <td class="sys">CVS</td>
-<td class="desc">Excellent. There are many online tutorials and 
+<td class="desc">Excellent. There are many online tutorials and
                     resources and an online book. The command line client
                     also provides an online comprehensive help system.
                 </td>
 <tr>
 <td class="sys">AccuRev</td>
 <td class="desc">
-                    Excellent.  There is a full set of documentation available 
-                    in pdf format available at 
-                    <a href="http://www.accurev.com/documentation.html">AccuRev 
-                        Documentation</a> as well as context-sensitive help 
+                    Excellent.  There is a full set of documentation available
+                    in pdf format available at
+                    <a href="http://www.accurev.com/documentation.html">AccuRev
+                        Documentation</a> as well as context-sensitive help
                     in the GUI.
                 </td>
 </tr>
 <td class="desc">
                     Medium. The documentation is given in several large scope
                     troff documents, that are only usable as not-so-PDFish
-                    PDF documents, and as text documents that lack any 
+                    PDF documents, and as text documents that lack any
                     formatting. It is very hard to get started using
                     it with the online resources. The content is of good
                     quality, but otherwise not made very accessible.
 <tr>
 <td class="sys">Arch</td>
 <td class="desc">
-                    Medium. There are two online tutorials and a 
+                    Medium. There are two online tutorials and a
                     comprehensive online documentation. The command line
-                    client also supplies a reference page. However, some of 
+                    client also supplies a reference page. However, some of
                     the documentation is out of date or incomplete.
                 </td>
 </tr>
 <td class="sys">BitKeeper</td>
 <td class="desc">
                     Very good. There is a comprehensive help at the BitKeeper
-                    site. Each command is documented in its own man page, 
+                    site. Each command is documented in its own man page,
                     and the client contains a help tool that offers
                     an integrated help system.
                 </td>
 <tr>
 <td class="sys">Mercurial</td>
 <td class="desc">
-                    Very good.  There is a 
-                    <a href="http://hgbook.red-bean.com/">companion 
+                    Very good.  There is a
+                    <a href="http://hgbook.red-bean.com/">companion
                         book</a> and a wiki. Every command has integrated help.
                 </td>
 </tr>
 <td class="sys">Subversion</td>
 <td class="desc">
                     Very good. There is a free online book and some online
-                    tutorials and resources. The book is written in 
-                    DocBook/XML and so is convertible to many different 
-                    formats. The command-line client also provides a good 
+                    tutorials and resources. The book is written in
+                    DocBook/XML and so is convertible to many different
+                    formats. The command-line client also provides a good
                     online help system that can be used as a reference.
                 </td>
 </tr>
 <tr>
 <td class="sys">svk</td>
 <td class="desc">
-                    Relatively poor, but improving. There's 
-                    <a href="http://svkbook.elixus.org/">a work-in-progress 
-                        book</a> as well as 
+                    Relatively poor, but improving. There's
+                    <a href="http://svkbook.elixus.org/">a work-in-progress
+                        book</a> as well as
                     <a href="http://svk.elixus.org/">the Wiki</a> and some
                     external Articles and Tutorials.
                 </td>
 <tr>
 <td class="sys">CVS</td>
 <td class="desc">
-                    Good. Out of being the de-facto standard, 
+                    Good. Out of being the de-facto standard,
                     CVS is available on most systems and is easy
                     to deploy.
                 </td>
 <tr>
 <td class="sys">Arch</td>
 <td class="desc">
-                    Excellent. An arch service is nothing but a 
+                    Excellent. An arch service is nothing but a
                     filesystem-space hosted by any of its supported
                     protocols (FTP, SFTP, WebDAV, etc.). The arch client
                     is written in C, and is portable across UNIX systems
 <tr>
 <td class="sys">Co-Op</td>
 <td class="desc">Very easy to deploy, since there is no central
-                    server. Can be configured to use e-mail or LAN (or both) for 
-                    synchronization. For e-mail, requires MAPI-compliant 
+                    server. Can be configured to use e-mail or LAN (or both) for
+                    synchronization. For e-mail, requires MAPI-compliant
                     e-mail client.
                 </td>
 </tr>
 <td class="sys">LibreSource Synchronizer</td>
 <td class="desc">
                   Excellent. It is managed by JavaWebStart with links on any
-                  LibreSource repository web page. 
+                  LibreSource repository web page.
                   (links: create workspace, update, commit, studio...)
                 </td>
 </tr>
 <td class="sys">Visual SourceSafe</td>
 <td class="desc">
                     Very good - an installation package which does the work.
-                    When you create a repository it installs the exe's in a 
+                    When you create a repository it installs the exe's in a
                     directory and you can run them from there if you need to.
                 </td>
 </tr>
                     just to get started. Not CVS-compatible. (albeit
                     support for such basic operations was contemplated)
                     Note that Aegis is a Software Configuration Management
-                    system and not just a simple version control system, 
+                    system and not just a simple version control system,
                     which may justify this extra complexity.
                 </td>
 </tr>
 <td class="sys">Arch</td>
 <td class="desc">
                     Many commands are compatible with CVS or BitKeeper. However,
-                    there are many other commands for it for different uses. 
+                    there are many other commands for it for different uses.
                     Aliasing of commands is possible so it it may be possible
                     to make it more compatible.
                 </td>
 <td class="sys">BitKeeper</td>
 <td class="desc">
                     A CVS-like command set with some easy-to-get-used-to
-                    complications due to its different way of work and 
+                    complications due to its different way of work and
                     philosophy.
                 </td>
 </tr>
                     different than CVS.  The GUI is used primarily and implemented
                     on top of the command set.  As well, CM+ covers a full ALM
                     suite and can be extended beyond, so there are many more
-                    generic commands for browsing, reporting, etc. 
+                    generic commands for browsing, reporting, etc.
                 </td>
 </tr>
 <tr>
 <tr>
 <td class="sys">CVS</td>
 <td class="desc">
-                    Good. CVS uses a proprietary protocol with various 
+                    Good. CVS uses a proprietary protocol with various
                     variations for its client/server protocol. This protocol
-                    can be tunneled over an SSH-connection to support 
+                    can be tunneled over an SSH-connection to support
                     encryption.
                 </td>
 </tr>
 <td class="sys">Arch</td>
 <td class="desc">
                     Excellent. Arch can utilize a multitude of protocols
-                    for its service, which is nothing but a dumb remote 
+                    for its service, which is nothing but a dumb remote
                     filesystem server. Currently supported protocols include
-                    FTP, SFTP, WebDAV (remote file access over HTTP), 
+                    FTP, SFTP, WebDAV (remote file access over HTTP),
                     as well as any remote filesystem protocol (NFS, SMB).
                 </td>
 </tr>
 </tr>
 <tr>
 <td class="sys">Co-Op</td>
-<td class="desc">Uses the simplest LAN interface: 
+<td class="desc">Uses the simplest LAN interface:
                     copying files between shared directories.
                 </td>
 </tr>
 <tr>
 <td class="sys">LibreSource Synchronizer</td>
 <td class="desc">
-                  Good. Use of HTTP to get through firwalls. 
+                  Good. Use of HTTP to get through firwalls.
                 </td>
 </tr>
 <tr>
 <tr>
 <td class="sys">Subversion</td>
 <td class="desc">
-                    Very good. The Subversion service can use either 
-                    WebDAV+DeltaV (which is HTTP or HTTPS based) as its 
+                    Very good. The Subversion service can use either
+                    WebDAV+DeltaV (which is HTTP or HTTPS based) as its
                     underylying protocol, or its own proprietary protocol
                     that can be channeled over an SSH connection.
                 </td>
 <td class="desc">
                     VSS uses a Windows network share which has to be writable
                     for the VSS users (since this means doubling maintenance
-                    for new users). Add user in VSS and to share permissions. 
+                    for new users). Add user in VSS and to share permissions.
                     the share is most often world-writable, as is the default
-                    when creating a share) It does not perform well over a 
+                    when creating a share) It does not perform well over a
                     slow network connection.
                 </td>
 </tr>
 </table>
 <h3 id="portability">Portability</h3>
 <p class="expl">
-                How portable is the version-control system to various 
+                How portable is the version-control system to various
                 operating systems, computer architectures, and other
                 types of systems?
             </p>
 <tr>
 <td class="sys">AccuRev</td>
 <td class="desc">
-                    Excellent. The server runs on most UNIX, Linux 
-                    and Windows platforms. The client runs on all of these 
+                    Excellent. The server runs on most UNIX, Linux
+                    and Windows platforms. The client runs on all of these
                     platforms and on Mac OS X.
                 </td>
 </tr>
 <td class="sys">Arch</td>
 <td class="desc">
                     Good. The source is portable across all UNIXes,
-                    but requires a UNIX emulation layer on Windows. (need to 
+                    but requires a UNIX emulation layer on Windows. (need to
                     verify). A service can be hosted on any platform
                     that sports a suitable Internet service.
                 </td>
 <td class="sys">CMSynergy</td>
 <td class="desc">
                     Very good - various flavours of Unix,
-                    Windows (only NT family for the server), VMS, and 
+                    Windows (only NT family for the server), VMS, and
                     possibly other systems.
                 </td>
 </tr>
 <tr>
 <td class="sys">Subversion</td>
 <td class="desc">
-                    Excellent. Clients and Servers work on UNIX, 
+                    Excellent. Clients and Servers work on UNIX,
                     Windows and Mac OS X.
                 </td>
 </tr>
 <td class="sys">Team Foundation Server</td>
 <td class="desc">
                 The Server and Client needs Windows. A thirdparty company,
-                Teamprise, has developed a client for Eclipse, which means 
-                Linux, Mac and other UNIXes support. The Project SvnBridge 
+                Teamprise, has developed a client for Eclipse, which means
+                Linux, Mac and other UNIXes support. The Project SvnBridge
                 allows access using SVN clients but needs to run on Windows.
               </td>
 </tr>
 <tr>
 <td class="sys">Visual SourceSafe</td>
 <td class="desc">
-                    The Microsoft Product is Windows only. 
+                    The Microsoft Product is Windows only.
                     <a href="http://www.mainsoft.com/">MainSoft</a>
                     ships a version of it for some UNIX platforms.
                 </td>
 <table class="compare">
 <tr>
 <td class="sys">CVS</td>
-<td class="desc">Yes. 
+<td class="desc">Yes.
                     <a href="http://www.freebsd.org/projects/cvsweb.html">CVSweb</a>,
                     <a href="http://www.viewvc.org/">ViewVC</a>,
                     <a href="http://www.horde.org/chora/">Chora</a>,
 <tr>
 <td class="sys">Arch</td>
 <td class="desc">
-                    There's <a href="http://arch.bluegate.org/viewarch.html">ViewARCH</a>, and 
+                    There's <a href="http://arch.bluegate.org/viewarch.html">ViewARCH</a>, and
                     <a href="http://migo.sixbit.org/software/archzoom/">ArchZoom</a>
-                    which are 
+                    which are
                     works in progress.
                 </td>
 </tr>
 </tr>
 <tr>
 <td class="sys">Co-Op</td>
-<td class="desc">Since this functionality is always 
+<td class="desc">Since this functionality is always
                     available locally, there is no need for web interface.
                 </td>
 </tr>
 <td class="sys">LibreSource Synchronizer</td>
 <td class="desc">
                   Yes, without diff features but with a better awareness support.
-                  (allow to know at any time on each version each one is working on) 
+                  (allow to know at any time on each version each one is working on)
                 </td>
 </tr>
 <tr>
 </tr>
 <tr>
 <td class="sys">Subversion</td>
-<td class="desc">Yes. 
+<td class="desc">Yes.
                     <a href="http://www.viewvc.org/">ViewVC</a>,
                     <a href="http://freshmeat.net/projects/svnweb/">SVN::Web</a>,
-                    <a href="http://websvn.tigris.org/">WebSVN</a>, 
+                    <a href="http://websvn.tigris.org/">WebSVN</a>,
                     <a href="http://viewsvn.berlios.de/">ViewSVN</a>,
-                    <a href="http://www.outoforder.cc/projects/apache/mod_svn_view/">mod_svn_view</a>, 
+                    <a href="http://www.outoforder.cc/projects/apache/mod_svn_view/">mod_svn_view</a>,
                     <a href="http://www.horde.org/chora/">Chora</a>,
                     <a href="http://www.edgewall.com/trac/">Trac</a>,
                     <a href="http://web-cpan.berlios.de/modules/SVN-RaWeb-Light/">SVN::RaWeb::Light</a>,
 <td class="sys">AccuRev</td>
 <td class="desc">
                     A single, comprehensive,
-                    java-based GUI is provided.  The GUI has the same 
+                    java-based GUI is provided.  The GUI has the same
                     look-and-feel on all platforms.
                 </td>
 </tr>
                     and <a href="http://bazaar-vcs.org/3rdPartyTools">the Third-party Tools page</a>.
                     Notable
                     are <a href="http://bazaar-vcs.org/QBzr">QBzr
-                    (Qt)</a> and 
+                    (Qt)</a> and
                     <a href="http://bazaar-vcs.org/bzr-gtk">bzr-gtk (GTK+)</a>, which
                     can be considered beta quality.  Work is also
                     being done on integrating Bazaar with Windows
 <td class="desc">
                     A couple of GUIs.  A motif-based one
                     (even on Windows) allows most functionality but is clunky.
-                    A nicer Java one allows developer work but not much 
-                    administrative stuff. Has an SCCI plug-in, though it 
+                    A nicer Java one allows developer work but not much
+                    administrative stuff. Has an SCCI plug-in, though it
                     doesn't handle network problems well.
                 </td>
 </tr>
 <td class="sys">LibreSource Synchronizer</td>
 <td class="desc">
                   One written in Java/SWING and available on any OS that
-                  is automatically launched from the repository web page and 
+                  is automatically launched from the repository web page and
                   another one which is an Eclipse plugin.
                 </td>
 </tr>
 <tr>
 <td class="sys">Perforce</td>
 <td class="desc">
-                    Yes, P4Win and others based on the available libp4 
-                    library. 
+                    Yes, P4Win and others based on the available libp4
+                    library.
                 </td>
 </tr>
 <tr>
 <tr>
 <td class="sys">Visual SourceSafe</td>
 <td class="desc">
-                    Standalone GUI comes with it, plus SCCI plug-in for 
-                    MS Visual Developer Studio. There is an Eclipse 
+                    Standalone GUI comes with it, plus SCCI plug-in for
+                    MS Visual Developer Studio. There is an Eclipse
                     plug-in.
                 </td>
 </tr>
 </table>
 <h2 id="license">License</h2>
 <p class="expl">
-            What are the licensing terms for the software? 
+            What are the licensing terms for the software?
         </p>
 <table class="compare">
 <tr>
 <td class="desc">
                 Proprietary, binary only license. Pay per use license,
                 with an option for a costless license for developers of
-                open-source software. Used to have a gratis, downloadable 
+                open-source software. Used to have a gratis, downloadable
                 license, which was intended for the develpoment of open
-                source software. It had <a href="bk-license.html">a 
+                source software. It had <a href="bk-license.html">a
                     problematic license</a>,
                 and was discontinued starting at April 2005.
             </td>
 <td class="sys">CMSynergy</td>
 <td class="desc">
                 Prices negotiable with salesman.
-                Server is typically roughly 20,000 British Pounds.  
-                Clients are 4,000 British Pounds.  Per-year costs of 18% 
+                Server is typically roughly 20,000 British Pounds.
+                Clients are 4,000 British Pounds.  Per-year costs of 18%
                 of original.
             </td>
 </tr>
 <tr>
 <td class="sys">Co-Op</td>
-<td class="desc">Proprietary, short text key. 30-day 
-                full-featured trial. Free to "observers" 
+<td class="desc">Proprietary, short text key. 30-day
+                full-featured trial. Free to "observers"
                 (members who don't make changes).
                 $159 per workstation.
             </td>
                     starting at $800 per seat for the first year</a> and then
                 a $160 for continuing support for the subsequent years. The
                 latter payment is optional and required only for support,
-                as the product can be used without it. Free for 
+                as the product can be used without it. Free for
                 Open Source projects (no support in this case).
             </td>
 </tr>
 <tr>
 <td class="sys">PureCM</td>
 <td class="desc">
-                A proprietary, binary only, commercial license. 
-                <a href="http://www.purecm.com/purchase">Price 
+                A proprietary, binary only, commercial license.
+                <a href="http://www.purecm.com/purchase">Price
                     starting at $1000 for 5 users</a>
             </td>
 </tr>

File examples/scm-comparison.xml

             <impl id="ls-sync">
                 <name>LibreSource Synchronizer</name>
                 <url>http://dev.libresource.org/</url>
-            </impl>            
+            </impl>
             <impl id="mercurial">
                 <name>Mercurial</name>
                 <url>http://www.selenic.com/mercurial/</url>
     <title>Version Control System Comparison</title>
     <expl>
         This is a comparison of version-control systems. It is split
-        into several categories and sub-categories under which the 
+        into several categories and sub-categories under which the
         systems are checked.
     </expl>
     <section id="repos_operations">
                 <s id="monotone">Yes. Renames are supported.</s>
                 <s id="opencm">Yes. Renames are supported</s>
                 <s id="perforce">
-                    Not directly (you copy and then delete but it manages to 
+                    Not directly (you copy and then delete but it manages to
                     keep track of the branch)
                 </s>
                 <s id="purecm">
-                    Yes. File renames are directly supported. File and folder 
-                    moves require creating a new one and deleting the old one. 
+                    Yes. File renames are directly supported. File and folder
+                    moves require creating a new one and deleting the old one.
                     Moved file histories are preserved.
                 </s>
                 <s id="vesta">
                     tree.  Files and directories can be added,
                     deleted, and renamed between versions.
                 </s>
-                <s id="co-op">Renames of files are supported. 
-                    Renaming a directory requires creating a new one, 
-                    moving the files and deleting the old one. 
+                <s id="co-op">Renames of files are supported.
+                    Renaming a directory requires creating a new one,
+                    moving the files and deleting the old one.
                     Moved file histories are preserved.
                 </s>
                 <s id="vss">
-                    Affects the whole history, it's like renaming a 
-                    file in the CVS repository. There is a kludgy workaround 
-                    using "share-rename,move,delete" that gets what you 
+                    Affects the whole history, it's like renaming a
+                    file in the CVS repository. There is a kludgy workaround
+                    using "share-rename,move,delete" that gets what you
                     want.
                 </s>
                 <s id="cmsynergy">Yes. Renames are supported.</s>
                 </s>
                 <s id="ls-sync">
                     Yes. Renames and move are supported but the working copy
-                    needs to be up-to-date before doing a rename/move operation. 
+                    needs to be up-to-date before doing a rename/move operation.
                     This operation will be committed directly.
                 </s>
                 <s id="SourceAnywhere">Yes. Both moves and renames are supported, while maintaining history.</s>
                     Unknown. FILL IN.
                 </s>
                 <s id="subversion">
-                    "svn help me" says "Note: this subcommand is equivalent to 
-                    a 'copy' and 'delete'." There's <a 
-                        href="http://subversion.tigris.org/issues/show_bug.cgi?id=898">a 
+                    "svn help me" says "Note: this subcommand is equivalent to
+                    a 'copy' and 'delete'." There's <a
+                        href="http://subversion.tigris.org/issues/show_bug.cgi?id=898">a
                         bug report about it</a>.
                 </s>
                 <s id="cmplus">Unknown. FILL IN.</s>
                 <s id="bitkeeper">Probably Yes.</s>
                 <s id="aegis">Unknown. FILL IN.</s>
                 <s id="mercurial">
-                    No. <a 
+                    No. <a
                         href="http://hgbook.red-bean.com/hgbookch5.html#x9-1030005.4">the
                         Mercurial book says:</a>
-                    "When you use the 'hg rename' command, Mercurial makes a 
+                    "When you use the 'hg rename' command, Mercurial makes a
                     copy of each source file, then deletes it and marks the
                     file as removed. "
                 </s>
                     Unknown. FILL IN.
                 </s>
                 <s id="git">
-                    As detailed in the <a 
+                    As detailed in the <a
                         href="http://git.or.cz/gitwiki/GitFaq#rename-tracking">Git
                         FAQ</a>:
                     "Git has a rename command git mv, but that is just a
                 <s id="cvs">No. Copies are not supported.</s>
                 <s id="accurev">
                     Copying is supported through symbolic links
-                    (but all linked files are treated as the same file 
+                    (but all linked files are treated as the same file
                     version).  Moves are fully supported with the history
                     retained.
                 </s>
-                <s id="subversion">Yes. And it's a very cheap operation (O(1)) that 
+                <s id="subversion">Yes. And it's a very cheap operation (O(1)) that
                     is also utilized for branching.
                 </s>
                 <s id="cmplus">Yes. An inexpensive operation that can be used for
                 <s id="superversion">No. Copies are not supported.</s>
                 <s id="svk">Yes. Same as subversion.</s>
                 <s id="arch">No. Copies of files and directory structures are
-                    not supported. 
+                    not supported.
                 </s>
                 <s id="bazaar">No. Copies are not supported.</s>
                 <s id="darcs">No. Copies of files and directory structures are
-                    not supported. 
+                    not supported.
                 </s>
                 <s id="bitkeeper">
                     Yes. Copies are supported.
                 <s id="git">No.  Copies are not supported.</s>
                 <s id="tfs">
                   Yes - you can create a branch. But the GUI has no option to
-                  view the old history. The <a 
+                  view the old history. The <a
                   href="http://msdn.microsoft.com/en-us/tfs2008/bb980963.aspx">
                   Power-Tool tfpt</a> has the option /followbranches to show
                   the history of the file branch's ancestors
             <title>Remote Repository Replication</title>
             <expl>
                 Does the system support cloning a remote repository to get
-                a functionally equivalent copy in the local system? That 
-                should be done without any special access to the remote 
+                a functionally equivalent copy in the local system? That
+                should be done without any special access to the remote
                 server except for normal repository access.
             </expl>
             <compare>
                 <s id="cvs">
                     Indirectly, by using
-                    <a href="http://www.cvsup.org/">CVSup</a> 
-                    by John Polstra (which requires running the cvsupd 
+                    <a href="http://www.cvsup.org/">CVSup</a>
+                    by John Polstra (which requires running the cvsupd
                     daemon on the server)
                 </s>
                 <s id="subversion">
-                    Indirectly, by using Chia-liang Kao's 
+                    Indirectly, by using Chia-liang Kao's
                     <a href="http://search.cpan.org/dist/SVN-Mirror/">SVN::Mirror</a>
-                    add-on or Shlomi Fish' 
-                    <a href="http://search.cpan.org/dist/SVN-Pusher/">SVN-Pusher</a> 
+                    add-on or Shlomi Fish'
+                    <a href="http://search.cpan.org/dist/SVN-Pusher/">SVN-Pusher</a>
                     utility.
                 </s>
                 <s id="cmplus">Yes. CM+MultiSite can be configured to clone a repository
                 <s id="opencm">No.</s>
                 <s id="perforce">Yes. Via the Perforce Proxy (P4P) tool.</s>
                 <s id="purecm">
-                    No. (But a proxy feature is planned for 
+                    No. (But a proxy feature is planned for
                     inclusion in the next releases.)
                 </s>
                 <s id="vesta">Yes.  Replication is a fundamental part of the design.</s>
-                <s id="co-op">Repositories are always replicated on local machines. 
+                <s id="co-op">Repositories are always replicated on local machines.
                     There is no central server.
                 </s>
                 <s id="vss">
-                    Not directly possible with the included GUI or 
+                    Not directly possible with the included GUI or
                     command line tools; ssarc and ssrestor might be useable
                 </s>
                 <s id="cmsynergy">Yes, as long as you have the (more expensive) Distributed package.</s>
         <section id="push">
             <title>Propagating Changes to Parent Repositories</title>
             <expl>
-                Can the system propagate changes from one repository to 
+                Can the system propagate changes from one repository to
                 another?
             </expl>
             <compare>
                 <s id="cvs">No.</s>
                 <s id="accurev">
-                    With AccuReplica, the replica server has all the meta-data 
-                    and  fetches file data as needed by replica users; all 
-                    write operations pass automatically from the replica to 
+                    With AccuReplica, the replica server has all the meta-data
+                    and  fetches file data as needed by replica users; all
+                    write operations pass automatically from the replica to
                     the master server.
                 </s>
                 <s id="subversion">Yes, using either Chia-Ling Kao's SVN::Mirror
                 <s id="vesta">
                     Yes.
                 </s>
-                <s id="co-op">It's a peer-to-peer system, 
+                <s id="co-op">It's a peer-to-peer system,
                     which keeps all replicas of the repository in sync.
                 </s>
                 <s id="vss">
-                    Not directly possible with the included GUI or 
+                    Not directly possible with the included GUI or
                     command line tools; ssarc and ssrestor might be useable
                 </s>
                 <s id="cmsynergy">Yes, as long as you have the (more expensive) Distributed package.</s>
             <title>Repository Permissions</title>
             <expl>
                 Is it possible to define permissions on access to different
-                parts of a remote repository? Or is access open for all? 
+                parts of a remote repository? Or is access open for all?
             </expl>
             <compare>
                 <s id="cvs">
-                    Limited. "pre-commit hook scripts" can be used to 
+                    Limited. "pre-commit hook scripts" can be used to
                     implement various permissions systems.
                 </s>
                 <s id="accurev">
-                    Yes. Access can be defined per stream (branch) using 
+                    Yes. Access can be defined per stream (branch) using
                     access control lists.
                 </s>
                 <s id="arch">
                     Yes. It is possible to define permissions on access to
-                    different parts of a remote repository based on the 
+                    different parts of a remote repository based on the
                     permission systems of the underlying protocol.
                 </s>
                 <s id="bazaar">
                     basis.
                 </s>
                 <s id="perforce">
-                    Yes. (more than half a dozen of permission levels that can 
+                    Yes. (more than half a dozen of permission levels that can
                     be set in a file by file basis)
                 </s>
                 <s id="purecm">
-                    Yes. (more than half a dozen of permission levels that can 
+                    Yes. (more than half a dozen of permission levels that can
                     be set in a file by file basis)
                 </s>
                 <s id="vesta">
                     Access permissions for a branch can be different
                     from the basis package.
                 </s>
-                <s id="co-op">First access (joining the project) 
+                <s id="co-op">First access (joining the project)
                     requires administrator's approval.
                     Subsequent access to that project is not controlled.
                 </s>
                 <s id="vss">
                     Project specific permissions (read, write, delete, destroy)
                     can be set per user; but see "Networking Support":
-                    this makes "Repository Permissions" a hindrance to 
+                    this makes "Repository Permissions" a hindrance to
                     accidental damage but cannot prevent intentional damage.
                 </s>
                 <s id="cmsynergy">No, though a single server can serve many repositories.</s>
             <expl>
                 Does the repository support changesets? Changesets are a way
                 to group a number of modifications that are relevant to each
-                other in one atomic package, that can be cancelled or 
+                other in one atomic package, that can be cancelled or
                 propagated as needed.
             </expl>
             <compare>
                 <s id="cvs">No. Changes are file-specific.</s>
-                <s id="subversion">Partial support. There are implicit 
+                <s id="subversion">Partial support. There are implicit
                     changeset that are generated on each commit.
                 </s>
                 <s id="cmplus">
                     add, remove.
                 </s>
                 <s id="accurev">
-                    Yes, AccuRev provides robust functionality for change 
-                    sets (called change packages in AccuRev) including viewing 
-                    differences by change packages and merging changes from 
+                    Yes, AccuRev provides robust functionality for change
+                    sets (called change packages in AccuRev) including viewing
+                    differences by change packages and merging changes from
                     stream to stream by change package.
                 </s>
                 <s id="superversion">Partial support. Changes are grouped into changesets,
                     did this, as the Vesta repository provides direct
                     filesystem access to all versions.
                 </s>
-                <s id="co-op">Not directly, but it's possible to compare 
+                <s id="co-op">Not directly, but it's possible to compare
                     any two versions using a visual differ.
                 </s>
-                <s id="vss">Not directly, but it's possible to compare 
+                <s id="vss">Not directly, but it's possible to compare
                     any two versions using a visual differ.
                 </s>
                 <s id="cmsynergy">Probably, if you're a sufficiently proficient hacker with
             <title>Ability to Work only on One Directory of the Repository</title>
             <expl>
                 Can the version control system checkout only one directory of
-                the repository? Or restrict the check-ins to only one 
+                the repository? Or restrict the check-ins to only one
                 directory?
             </expl>
             <compare>
                 <s id="svk">Yes.</s>
                 <s id="bitkeeper">No. All changes are made repository-wide.</s>
                 <s id="arch">
-                    It is possible to commit only a certain directory. 
+                    It is possible to commit only a certain directory.
                     However, one must check out the entire repository as a
                     whole.
                 </s>
                 <s id="bazaar">For checkouts: No. For checkins: Yes.</s>
                 <s id="darcs">
-                    It is possible to commit only a certain directory. 
+                    It is possible to commit only a certain directory.
                     However, one must check out the entire repository as a
                     whole.
                 </s>
                     a unit
                 </s>
                 <s id="perforce">
-                    Yes. Changes to a sub-directory of the repository 
+                    Yes. Changes to a sub-directory of the repository
                     are supported.
                 </s>
                 <s id="purecm">
                 <s id="vss">Yes.</s>
                 <s id="cmsynergy">
                     Yes and no.  Files and directories are checked out and in
-                    individually, however you have to work in the context of a 
+                    individually, however you have to work in the context of a
                     project, which consists of one or more directories.
                 </s>
                 <s id="clearcase">Yes, using snapshot view load rules.</s>
                 get started using it?
             </expl>
             <compare>
-                <s id="cvs">Excellent. There are many online tutorials and 
+                <s id="cvs">Excellent. There are many online tutorials and
                     resources and an online book. The command line client
                     also provides an online comprehensive help system.
                 </s>
                 <s id="accurev">
-                    Excellent.  There is a full set of documentation available 
-                    in pdf format available at 
-                    <a href="http://www.accurev.com/documentation.html">AccuRev 
-                        Documentation</a> as well as context-sensitive help 
+                    Excellent.  There is a full set of documentation available
+                    in pdf format available at
+                    <a href="http://www.accurev.com/documentation.html">AccuRev
+                        Documentation</a> as well as context-sensitive help
                     in the GUI.
                 </s>
                 <s id="subversion">
                     Very good. There is a free online book and some online
-                    tutorials and resources. The book is written in 
-                    DocBook/XML and so is convertible to many different 
-                    formats. The command-line client also provides a good 
+                    tutorials and resources. The book is written in
+                    DocBook/XML and so is convertible to many different
+                    formats. The command-line client also provides a good
                     online help system that can be used as a reference.
                 </s>
                 <s id="cmplus">
                     is very easy though.
                 </s>
                 <s id="svk">
-                    Relatively poor, but improving. There's 
-                    <a href="http://svkbook.elixus.org/">a work-in-progress 
-                        book</a> as well as 
+                    Relatively poor, but improving. There's
+                    <a href="http://svkbook.elixus.org/">a work-in-progress
+                        book</a> as well as
                     <a href="http://svk.elixus.org/">the Wiki</a> and some
                     external Articles and Tutorials.
                 </s>
                 <s id="aegis">
                     Medium. The documentation is given in several large scope
                     troff documents, that are only usable as not-so-PDFish
-                    PDF documents, and as text documents that lack any 
+                    PDF documents, and as text documents that lack any
                     formatting. It is very hard to get started using
                     it with the online resources. The content is of good
                     quality, but otherwise not made very accessible.
                 </s>
                 <s id="arch">
-                    Medium. There are two online tutorials and a 
+                    Medium. There are two online tutorials and a
                     comprehensive online documentation. The command line
-                    client also supplies a reference page. However, some of 
+                    client also supplies a reference page. However, some of
                     the documentation is out of date or incomplete.
                 </s>
                 <s id="bazaar">
                 </s>
                 <s id="bitkeeper">
                     Very good. There is a comprehensive help at the BitKeeper
-                    site. Each command is documented in its own man page, 
+                    site. Each command is documented in its own man page,
                     and the client contains a help tool that offers
                     an integrated help system.
                 </s>
                 <s id="mercurial">
-                    Very good.  There is a 
-                    <a href="http://hgbook.red-bean.com/">companion 
+                    Very good.  There is a
+                    <a href="http://hgbook.red-bean.com/">companion
                         book</a> and a wiki. Every command has integrated help.
                 </s>
                 <s id="monotone">
             </expl>
             <compare>
                 <s id="cvs">
-                    Good. Out of being the de-facto standard, 
+                    Good. Out of being the de-facto standard,
                     CVS is available on most systems and is easy
                     to deploy.
                 </s>
                     multi-platform environment is straight-forward.
                 </s>
                 <s id="arch">
-                    Excellent. An arch service is nothing but a 
+                    Excellent. An arch service is nothing but a
                     filesystem-space hosted by any of its supported
                     protocols (FTP, SFTP, WebDAV, etc.). The arch client
                     is written in C, and is portable across UNIX systems
                     "make".
                 </s>
                 <s id="co-op">Very easy to deploy, since there is no central
-                    server. Can be configured to use e-mail or LAN (or both) for 
-                    synchronization. For e-mail, requires MAPI-compliant 
+                    server. Can be configured to use e-mail or LAN (or both) for
+                    synchronization. For e-mail, requires MAPI-compliant
                     e-mail client.
                 </s>
                 <s id="vss">
                     Very good - an installation package which does the work.
-                    When you create a repository it installs the exe's in a 
+                    When you create a repository it installs the exe's in a
                     directory and you can run them from there if you need to.
                 </s>
                 <s id="cmsynergy">
                 </s>
                 <s id="ls-sync">
                   Excellent. It is managed by JavaWebStart with links on any
-                  LibreSource repository web page. 
+                  LibreSource repository web page.
                   (links: create workspace, update, commit, studio...)
                 </s>
                 <s id="SourceAnywhere">Excellent. Dynamsoft SourceAnywhere is extremely easy to install.
                     different than CVS.  The GUI is used primarily and implemented
                     on top of the command set.  As well, CM+ covers a full ALM
                     suite and can be extended beyond, so there are many more
-                    generic commands for browsing, reporting, etc. 
+                    generic commands for browsing, reporting, etc.
                 </s>
                 <s id="superversion">
                     There is little need to memorize a command set because
                 </s>
                 <s id="bitkeeper">
                     A CVS-like command set with some easy-to-get-used-to
-                    complications due to its different way of work and 
+                    complications due to its different way of work and
                     philosophy.
                 </s>
                 <s id="aegis">
                     just to get started. Not CVS-compatible. (albeit
                     support for such basic operations was contemplated)
                     Note that Aegis is a Software Configuration Management
-                    system and not just a simple version control system, 
+                    system and not just a simple version control system,
                     which may justify this extra complexity.
                 </s>
                 <s id="arch">
                     Many commands are compatible with CVS or BitKeeper. However,
-                    there are many other commands for it for different uses. 
+                    there are many other commands for it for different uses.
                     Aliasing of commands is possible so it it may be possible
                     to make it more compatible.
                 </s>
             </expl>
             <compare>
                 <s id="cvs">
-                    Good. CVS uses a proprietary protocol with various 
+                    Good. CVS uses a proprietary protocol with various
                     variations for its client/server protocol. This protocol
-                    can be tunneled over an SSH-connection to support 
+                    can be tunneled over an SSH-connection to support
                     encryption.
                 </s>
                 <s id="accurev">
                 </s>
                 <s id="arch">
                     Excellent. Arch can utilize a multitude of protocols
-                    for its service, which is nothing but a dumb remote 
+                    for its service, which is nothing but a dumb remote
                     filesystem server. Currently supported protocols include
-                    FTP, SFTP, WebDAV (remote file access over HTTP), 
+                    FTP, SFTP, WebDAV (remote file access over HTTP),
                     as well as any remote filesystem protocol (NFS, SMB).
                 </s>
                 <s id="bazaar">
                     getting and sending patches over SSH and email.
                 </s>
                 <s id="subversion">
-                    Very good. The Subversion service can use either 
-                    WebDAV+DeltaV (which is HTTP or HTTPS based) as its 
+                    Very good. The Subversion service can use either
+                    WebDAV+DeltaV (which is HTTP or HTTPS based) as its
                     underylying protocol, or its own proprietary protocol
                     that can be channeled over an SSH connection.
                 </s>
                     automatically contact a remote repository when
                     required to perform an operation.
                 </s>
-                <s id="co-op">Uses the simplest LAN interface: 
+                <s id="co-op">Uses the simplest LAN interface:
                     copying files between shared directories.
                 </s>
                 <s id="vss">
                     VSS uses a Windows network share which has to be writable
                     for the VSS users (since this means doubling maintenance
-                    for new users). Add user in VSS and to share permissions. 
+                    for new users). Add user in VSS and to share permissions.
                     the share is most often world-writable, as is the default
-                    when creating a share) It does not perform well over a 
+                    when creating a share) It does not perform well over a
                     slow network connection.
                 </s>
                 <s id="cmsynergy">Good (single TCP/IP socket)</s>
                   the client workstations for acceptable performance.
                 </s>
                 <s id="ls-sync">
-                  Good. Use of HTTP to get through firwalls. 
+                  Good. Use of HTTP to get through firwalls.
                 </s>
                 <s id="SourceAnywhere">Good. (single TCP/IP socket)</s>
                 <s id="git">Excellent.  Can use native Git protocol,
         <section id="portability">
             <title>Portability</title>
             <expl>
-                How portable is the version-control system to various 
+                How portable is the version-control system to various
                 operating systems, computer architectures, and other
                 types of systems?
             </expl>
                     emulation layer.
                 </s>
                 <s id="accurev">
-                    Excellent. The server runs on most UNIX, Linux 
-                    and Windows platforms. The client runs on all of these 
+                    Excellent. The server runs on most UNIX, Linux
+                    and Windows platforms. The client runs on all of these
                     platforms and on Mac OS X.
                 </s>
                 <s id="subversion">
-                    Excellent. Clients and Servers work on UNIX, 
+                    Excellent. Clients and Servers work on UNIX,
                     Windows and Mac OS X.
                 </s>
                 <s id="cmplus">
                 </s>
                 <s id="arch">
                     Good. The source is portable across all UNIXes,
-                    but requires a UNIX emulation layer on Windows. (need to 
+                    but requires a UNIX emulation layer on Windows. (need to
                     verify). A service can be hosted on any platform
                     that sports a suitable Internet service.
                 </s>
                 </s>
                 <s id="co-op">Windows only: starting with Win95.</s>
                 <s id="vss">
-                    The Microsoft Product is Windows only. 
+                    The Microsoft Product is Windows only.
                     <a href="http://www.mainsoft.com/">MainSoft</a>
                     ships a version of it for some UNIX platforms.
                 </s>
                 <s id="cmsynergy">
                     Very good - various flavours of Unix,
-                    Windows (only NT family for the server), VMS, and 
+                    Windows (only NT family for the server), VMS, and
                     possibly other systems.
                 </s>
                 <s id="clearcase">
               </s>
               <s id="tfs">
                 The Server and Client needs Windows. A thirdparty company,
-                Teamprise, has developed a client for Eclipse, which means 
-                Linux, Mac and other UNIXes support. The Project SvnBridge 
+                Teamprise, has developed a client for Eclipse, which means
+                Linux, Mac and other UNIXes support. The Project SvnBridge
                 allows access using SVN clients but needs to run on Windows.
               </s>
             </compare>
                 files, perform arbitrary diffs, etc?
             </expl>
             <compare>
-                <s id="cvs">Yes. 
+                <s id="cvs">Yes.
                     <a href="http://www.freebsd.org/projects/cvsweb.html">CVSweb</a>,
                     <a href="http://www.viewvc.org/">ViewVC</a>,
                     <a href="http://www.horde.org/chora/">Chora</a>,
                 </s>
                 <s id="accurev">No.</s>
                 <s id="bitkeeper">Yes. Its own built-in web-interface.</s>
-                <s id="subversion">Yes. 
+                <s id="subversion">Yes.
                     <a href="http://www.viewvc.org/">ViewVC</a>,
                     <a href="http://freshmeat.net/projects/svnweb/">SVN::Web</a>,
-                    <a href="http://websvn.tigris.org/">WebSVN</a>, 
+                    <a href="http://websvn.tigris.org/">WebSVN</a>,
                     <a href="http://viewsvn.berlios.de/">ViewSVN</a>,
-                    <a href="http://www.outoforder.cc/projects/apache/mod_svn_view/">mod_svn_view</a>, 
+                    <a href="http://www.outoforder.cc/projects/apache/mod_svn_view/">mod_svn_view</a>,
                     <a href="http://www.horde.org/chora/">Chora</a>,
                     <a href="http://www.edgewall.com/trac/">Trac</a>,
                     <a href="http://web-cpan.berlios.de/modules/SVN-RaWeb-Light/">SVN::RaWeb::Light</a>,
                 <s id="superversion">No.</s>
                 <s id="svk">Yes. Same as Subversion.</s>
                 <s id="arch">
-                    There's <a href="http://arch.bluegate.org/viewarch.html">ViewARCH</a>, and 
+                    There's <a href="http://arch.bluegate.org/viewarch.html">ViewARCH</a>, and
                     <a href="http://migo.sixbit.org/software/archzoom/">ArchZoom</a>
-                    which are 
+                    which are
                     works in progress.
                 </s>
                 <s id="bazaar">
                 <s id="vesta">
                     Yes: <a href="http://www.scooter.cx/vestaweb/">Vestaweb</a>.
                 </s>
-                <s id="co-op">Since this functionality is always 
+                <s id="co-op">Since this functionality is always
                     available locally, there is no need for web interface.
                 </s>
                 <s id="vss">
                 </s>
                 <s id="ls-sync">
                   Yes, without diff features but with a better awareness support.
-                  (allow to know at any time on each version each one is working on) 
+                  (allow to know at any time on each version each one is working on)
                 </s>
                 <s id="SourceAnywhere">Currently not.</s>
                 <s id="git">
                 </s>
                 <s id="accurev">
                     A single, comprehensive,
-                    java-based GUI is provided.  The GUI has the same 
+                    java-based GUI is provided.  The GUI has the same
                     look-and-feel on all platforms.
-                </s> 
+                </s>
                 <s id="bitkeeper">
                     Good. BitKeeper ships with several
                     GUIs for performing common tasks. I'm not aware
                     and <a href="http://bazaar-vcs.org/3rdPartyTools">the Third-party Tools page</a>.
                     Notable
                     are <a href="http://bazaar-vcs.org/QBzr">QBzr
-                    (Qt)</a> and 
+                    (Qt)</a> and
                     <a href="http://bazaar-vcs.org/bzr-gtk">bzr-gtk (GTK+)</a>, which
                     can be considered beta quality.  Work is also
                     being done on integrating Bazaar with Windows
                     No GUIs are available.
                 </s>
                 <s id="perforce">
-                    Yes, P4Win and others based on the available libp4 
-                    library. 
+                    Yes, P4Win and others based on the available libp4
+                    library.
                 </s>
                 <s id="purecm">
                     Cross-platform GUI for Windows, Linux, Mac OS X
                 </s>
                 <s id="co-op">The system is GUI-based by design.</s>
                 <s id="vss">
-                    Standalone GUI comes with it, plus SCCI plug-in for 
-                    MS Visual Developer Studio. There is an Eclipse 
+                    Standalone GUI comes with it, plus SCCI plug-in for
+                    MS Visual Developer Studio. There is an Eclipse
                     plug-in.
                 </s>
                 <s id="cmsynergy">
                     A couple of GUIs.  A motif-based one
                     (even on Windows) allows most functionality but is clunky.
-                    A nicer Java one allows developer work but not much 
-                    administrative stuff. Has an SCCI plug-in, though it 
+                    A nicer Java one allows developer work but not much
+                    administrative stuff. Has an SCCI plug-in, though it
                     doesn't handle network problems well.
                 </s>
                 <s id="clearcase">
                 </s>
                 <s id="ls-sync">
                   One written in Java/SWING and available on any OS that
-                  is automatically launched from the repository web page and 
+                  is automatically launched from the repository web page and
                   another one which is an Eclipse plugin.
                 </s>
                 <s id="SourceAnywhere">The system is GUI-based by design.</s>
     <section id="license">
         <title>License</title>
         <expl>
-            What are the licensing terms for the software? 
+            What are the licensing terms for the software?
         </expl>
         <compare>
             <s id="cvs">GNU GPL (open source)</s>
             <s id="bitkeeper">
                 Proprietary, binary only license. Pay per use license,
                 with an option for a costless license for developers of
-                open-source software. Used to have a gratis, downloadable 
+                open-source software. Used to have a gratis, downloadable
                 license, which was intended for the develpoment of open
-                source software. It had <a href="bk-license.html">a 
+                source software. It had <a href="bk-license.html">a
                     problematic license</a>,
                 and was discontinued starting at April 2005.
             </s>
                     starting at $800 per seat for the first year</a> and then
                 a $160 for continuing support for the subsequent years. The
                 latter payment is optional and required only for support,
-                as the product can be used without it. Free for 
+                as the product can be used without it. Free for
                 Open Source projects (no support in this case).
             </s>
             <s id="purecm">
-                A proprietary, binary only, commercial license. 
-                <a href="http://www.purecm.com/purchase">Price 
+                A proprietary, binary only, commercial license.
+                <a href="http://www.purecm.com/purchase">Price
                     starting at $1000 for 5 users</a>
             </s>
             <s id="vesta">
                 GNU LGPL (open source)
             </s>
-            <s id="co-op">Proprietary, short text key. 30-day 
-                full-featured trial. Free to "observers" 
+            <s id="co-op">Proprietary, short text key. 30-day
+                full-featured trial. Free to "observers"
                 (members who don't make changes).
                 $159 per workstation.
             </s>
             </s>
             <s id="cmsynergy">
                 Prices negotiable with salesman.
-                Server is typically roughly 20,000 British Pounds.  
-                Clients are 4,000 British Pounds.  Per-year costs of 18% 
+                Server is typically roughly 20,000 British Pounds.
+                Clients are 4,000 British Pounds.  Per-year costs of 18%
                 of original.
             </s>
             <s id="clearcase">

File extradata/compare-ml.xslt

 <?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" 
+<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 
 <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
 <style type="text/css">
 h2 { background-color : #98FB98; /* PaleGreen */ }
 h3 { background-color : #FFA500; /* Orange */ }
-table.compare 
+table.compare
 {
     margin-left : 1em;
-    margin-right : 1em; 
+    margin-right : 1em;
     width: 90%;
     max-width : 40em;
 }
-.compare td 
-{ 
+.compare td
+{
     border-color : black; border-style : solid ; border-width : thin;
     vertical-align : top;
     padding : 0.2em;
 }
 .toc ul
 {
-    list-style-type : none ; 
-    padding-left : 0em; 
+    list-style-type : none ;
+    padding-left : 0em;
     margin-left : 2em;
 }
 .expl
     <xsl:apply-templates select="expl"/>
     <xsl:if test="@id = 'main'">
         <xsl:if test="/comparison/meta/timestamp">
-            <p><b>Timestamp:</b> 
+            <p><b>Timestamp:</b>
                 <tt><xsl:value-of select="/comparison/meta/timestamp"/></tt>
             </p>
         </xsl:if>

File inc/Test/Run/Builder.pm

         Test::Run::CmdLine::Iface->new(
             {
                 'test_files' => [glob("t/*.t")],
-            }   
+            }
             # 'backend_params' => $self->_get_backend_params(),
         );
 

File inc/XML/Grammar/Builder.pm

     my $package = shift;
     my %args = @_;
     my @extradata_files;
-    
+
     my $module_name = $args{'module_name'};
     $module_name =~ s{::}{-}g;
 
             push @extradata_files, $filename;
         }
     };
- 
+
     find({ wanted => $filter_files_cb, no_chdir => 1}, "extradata");
 
     my $builder = $package->SUPER::new(
 
     $builder->add_build_element('extradata');
 
-    $builder->install_path()->{'extradata'} = 
+    $builder->install_path()->{'extradata'} =
         File::Spec->catdir(
                 $builder->install_destination("lib"),
                 qw(data modules),

File lib/XML/CompareML.pm

 
     use XML::CompareML::HTML;
 
-    my $converter = 
+    my $converter =
         XML::CompareML::HTML->new(
             'input_filename' => "my-comparison.xml",
             'output_handle' => \*STDOUT,
 
     use XML::CompareML::DocBook;
 
-    my $converter = 
+    my $converter =
         XML::CompareML::DocBook->new(
             'input_filename' => "my-comparison.xml",
             'output_handle' => \*STDOUT,
 =head1 USAGE
 
 The CompareML language is currently undocumented, but one can see
-an example for a document written it in the 
-C<t/files/scm-comparison.xml> example in the distribution. 
+an example for a document written it in the
+C<t/files/scm-comparison.xml> example in the distribution.
 
 To convert a CompareML document to HTML instantiate an XML::CompareML::HTML
 object, and pass it the filename as the C<input_filename> named parameter,

File lib/XML/CompareML/Base.pm

     {
         return;
     }
-    return $self->_xml_node_contents_to_string($name_elem);    
+    return $self->_xml_node_contents_to_string($name_elem);
 }
 
 sub _impl_get_name
 sub _get_implementations
 {
     my $self = shift;
-    return 
-        [ 
-            map 
-                { 
+    return
+        [
+            map
+                {
                     +{
-                        'id' => $_->getAttribute("id"),