2. Some Considerations
• Most programs do not have a GUI by default but rather rely on command line directives
• Most of the programs are free and released under various licenses including: Apache, BSD, LGLP. The
details of these licenses are not inconsequential in the final selection but are outside of the scope of
this comparison.
• In general VCSs are bad at merging and difing binary files, therefore, certain file types will not be
capable of taking advantage of everything the softwares have to offer. There are special, dedicated
programs to work with specific binary files. The compared programs can control iterating of bins only.
• A distributed repository model is more flexible from the perspective of the users but is capable of
utilizing a central repository and, considering the application, this should be done in the case that a
distributed repository system is chosen.
• The current system we use (Visual Source Safe) is widely considered to be one of the worst VCSs ever
made and thus any change will be a major improvement with significant and noticeable benefits.
3. Metrics (1-5)
• Ease of adoption
• Ease of implementation
• Change/Check/Commit Cycle
• Merging and rev comparison
• Supported formats
• Cost
• Support
• Platform compatibility
• Cloud/web integration
• Windows Shell Extension
5. Subversion (SVN)
• Notes
– Repo Model: Client-Server
– License: Apache
– Development: Active
– Maintained by: Apache Software
Foundation
– Can take advantage of MS’s
integrated merging tools for some
binary files.
– Disk space and download/ upload
time is significantly improved over
distributed systems when large
binary files and long changelogs
are present
– Can pay for third party support
– Using “hooks” allows added
functionality including auto-email
• Metrics
– Ease of adoption : 3
– Ease of implementation : 3
– Change/Check/Commit Cycle : 3
– Merging and rev comparison : 4
– Supported formats : 4
– Cost : 5
– Support : 2
– Platform compatibility : 5
– Cloud/web integration : 3
– Windows Shell Extension : Y
• Total: 33
6. Mercurial
• Notes
– Repo Model: Distributed
– License: GNU GPL
– Development: Active
– Maintained by: Matt Mackall
– Implemented in the BV with
positive results (Amit)
– Users can do P2P sharing
before actually committing
changes to the central repo
– Can pay for third party support
– Using add-ins and extensions
provides added functionality
including auto-email
• Metrics
– Ease of adoption : 4
– Ease of implementation : 2
– Change/Check/Commit Cycle : 5
– Merging and rev comparison : 3
– Supported formats : 3
– Cost : 5
– Support : 2
– Platform compatibility : 5
– Cloud/web integration : 4
– Windows Shell Extension : Y
• Total: 34
7. Team Foundation Server (TFS)
• Notes
– Repo Model: Client-Server,
Distributed
– License: Proprietary
– Development: Active
– Maintained by: Microsoft
– A small implementation of this is
currently going on within the
engineering group. I am unaware
of the details.
– Best integration with other
Microsoft tools but doesn’t really
work on Macs or Linux.
– All major features require the
installation of additional “Power
Tools”
– Git source control is natively
supported in TFS 2013 and allows
much greater flexibility.
• Metrics
– Ease of adoption : 5
– Ease of implementation : 1
– Change/Check/Commit Cycle : 4.5
– Merging and rev comparison : 3
– Supported formats : 3
– Cost : 1
– Support : 5
– Platform compatibility : 3
– Cloud/web integration : 4
– Windows Shell Extension : Y
• Total: 30.5
9. Additional Comments
• There are some interesting third party add-ons that can
be used to fill in for missing features or to enhance
features that are not in the core program.
• Add-ons of Interest:
– Gource: Version tree visualization tool by Google
– Tortoise: A Graphical User Interface for the VCSs
• TFS is a much more comprehensive system, using it for
one of its many features (VCS) would be a waste. As a
system though, it could improve many aspects of the
business. Since this comparison is based solely on the
softwares’ VCS capability, TFS has fallen to the bottom.