Chinaunix首页 | 论坛 | 博客
  • 博客访问: 477819
  • 博文数量: 122
  • 博客积分: 1403
  • 博客等级: 中尉
  • 技术积分: 1668
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-11 13:31
文章分类

全部博文(122)

文章存档

2018年(5)

2017年(12)

2014年(15)

2013年(33)

2012年(4)

2011年(53)

分类: 项目管理

2011-02-18 16:24:47

Discuss advantages and disadvantages for SCM tools

    Compare among these tools

Compare these SCM tools below, discuss their advantages and disadvantages.

        VSS

1.1.1        Introduction

Microsoft Visual SourceSafe is a file-level version control system that permits many types of organizations to work on several project versions at the same time. This capability is particularly beneficial in a software development environment, where it is used in maintaining parallel code versions. However, the product can also be used to maintain files for any other type of team.

Visual SourceSafe supports cross-platform development by allowing collaborative editing and sharing of data. It is designed to handle the tracking and portability issues involved in maintaining one source control base, for example, a software code base, across multiple operating systems. For developers, Visual SourceSafe accommodates reusable or object-oriented code. It makes it easier for you to track the applications that use particular code modules.

At a minimum, Visual SourceSafe does the following:

·         Helps protect your team from accidental file loss.

·         Allows back-tracking to earlier versions of a file.

·         Supports branching, sharing, merging, and management of file releases.

·         Tracks versions of entire projects.

·         Tracks modular code (one file that is reused, or shared, by multiple projects).

Compatibility

The current release of Visual SourceSafe is fully compatible with database versions 6.0 and earlier.

Version Control and File Sharing

Visual SourceSafe allows the quick and efficient sharing of files among projects. The organization of files into projects makes team coordination intuitive. When you add a file to Visual SourceSafe, the file is stored on the database and made available to other users. Changes that have been made to the file are saved so that any user can recover an old version at any time. Members of your team can see the latest version of a file, make changes to local file copies, and save new versions in the database. When a set of files is ready to deliver, Visual SourceSafe makes it easy to share and obtain different versions of the selected set of files.

Extensibility

Using the Visual SourceSafe automation interfaces, you can write extensions based on Visual SourceSafe as needed for your environment. Extensions are usually provided in the form of stand-alone applications written to the automation interfaces. You can also extend Visual SourceSafe functionality by writing an add-in or plug-in that is compatible with the integrated development environment (IDE) of the third-party program that will run the software package.

Parallel Development

Visual SourceSafe supports parallel development and cross-platform development techniques. Such support allows individual team members to complete different parts and versions of a project at the same time, instead of being stalled while waiting for each to other to finish certain tasks. Two- and three-way file merging operations are supported, and Visual SourceSafe includes a number of mechanisms for resolving merge conflicts. File merge operations enable independent work without the need to synchronize changes with those made by other individuals.

In support of parallel operations, Visual SourceSafe also includes a label promotion feature to advance files as needed to different versions of a project. It also supports the use of share, pin, and branch operations for parallel development on a project over an extended period of time.

Developer Support

More and more, developers are accessing Visual SourceSafe functions from their development environments within third-party programs. Visual SourceSafe can be easily integrated with Visual Studio and other development tools, such as Microsoft Access. Visual SourceSafe supports a developer environment in many ways by allowing:

·         Setting of folder policies to enable group development scenarios.

·         Bug fixes

·         Easy transition to a new release of an existing project

·         Batch/nightly builds

·         Automation of source code control events

·         Access to automation interfaces

·         Source control over slow connections

·         Configuration of new projects for isolated Web development

·         Addition of a new Web developer to an existing team Web project

·         Tracking of programming modules to allow reusable or object-oriented code

Database Maintenance

Visual SourceSafe provides a number of powerful database maintenance tools to keep your databases operating efficiently and securely. It supports archive and restoration through easy-to-use wizards, as well as several command line-based maintenance utilities.

1.1.2        Advantage

·         Simple operation

·         Perfect joint with development tools of MS

1.1.3        Disadvantage

·         Slow performance for large project

·         Limited support the branch and parallel development

·         Only support Windows OS

        CVS--Concurrent Versions System

1.2.1        Introduction

CVS, a free, open source tool, is perhaps the most popular Open Source SCM tool. Even though it has some serious shortcomings, CVS is used for dozens of open source projects, including Apache WWW server, FreeBSD, NetBSD, OpenBSD, GNOME, and Xemacs. CVS is one of the first Open Source version control projects, which is used by many people, but it has its shortcomings.

1.2.2        Advantages

·         Legacy systems may use CVS

·         Many clients have built-in-support for CVS

1.2.3        Disadvantages

·         It is not possible to rename or move a file or directory in the repository.

·         Moving files without losing data cannot be done without the sysadmin

·         File metadata is not versioned

·         Need for tags, etc. because of cost of branching large trees

·         Diffs only transferred from the server to the client

·         Limited support for binary files

·         pserver sends clear text passwords

        SVN --CollabNet Subversion

Subversion is a freeware/Open Source SCM system. Subversion supports atomic commit, that means that if an operation on the repository is interrupted in the middle, the repository will not be left in an inconsistent state, it only takes effect after the entire commit has succeeded. The revision numbers are per-commit, not per-file like in CVS. Another very important feature is the possibility to move or rename a file or directory without losing the history log of that file or directory. In comparing to CVS, Subversion has a very cheap branch/ tag option: it copies files or directories to a different location at the repository level(with retaining the history). These copies are actually no duplicates but a new directory entry that point to an existing tree, so there is no need to worry about the growing repository data. With Subversion it is possible to define permissions to access to different parts of a remote repository. The WebDAV-based service supports defining HTTP permissions for various directories of the repository.

1.3.1        Advantages

·         Files and directories can be renamed or moved easily

·         Copies and branches are a constant time operation

·         Only diffs in both directions over network

·         Revision numbers apply to the entire repository

·         Integration into Apache allows the creation of complex access control models

·         Commits are repository-atomic.

·         Growing client and application plugin support

·         Support all kinds OS platform

·         Atomic operation

1.3.2        Disadvantages

·         Old projects and existing build systems need conversion

·         Not as wide-spread as CVS yet

·         Need larger disk (backup whole all objects)

·         Not back trundle after submit

        ClearCase

1.4.1        Introduction

ClearCase is the market leader and provides change management functionality in addition to the standard version control. ClearCase is part of a suite of products from Rational that implement Rationals’ “best practices” software development methodology, Unified Change Management.

·         Rational ClearCase provides life cycle management and control of software development assets. With integrated version control, automated workspace management, parallel development support, baseline management, and build and release management, Rational ClearCase provides the capabilities needed to create, update, build, deliver, reuse and maintain business-critical assets.

·         Local, remote and Web interfaces enable access virtually anytime, anywhere.

·         Linux, Windows, UNIX and mainframe (z/OS) development support enables enterprise-wide application and build development.

·         Rational ClearCase is seamlessly integrated with Rational ClearQuest for a complete software configuration management solution.

·         Visit the Software Configuration Management Product Library to find the most up-to-date resources for Rational ClearCase -- data sheet, analyst reports, demos, white papers, and more.

1.4.2        Advantages

·         Build management and auditing

·         Very simple to retrieve old versions

·         Labelling of product releases

1.4.3        Disadvantage

·         A very important disadvantage of ClearCase is the price, it is too expensive

·         It does not support Windows 98; there are still a few computers with Windows 98 platform.

        BitKeeper

1.5.1        Introduction

The BitKeeper Development Platform provides powerful configuration management capabilities and workflow control. BitKeeper was designed to solve many of the scaling, performance, and merge problems that legacy SCM sytems repeatedly introduce.With BitKeeper, developers become more productive, teams can work collaboratively without ever leaving a version control environment, and work is more likely to be peer reviewed.

1.5.2        Advantage

·         Increased Productivity
BitKeeper was designed to simplify source management tasks and provide an excellent infrastructure for debugging and reviewing code.

·         Reduce human error
BitKeeper updates are transactional. BitKeeper runs repository level integrity checks which catch problems immediately, while there is still time to fix them.

·         Reproducibility
Complex software projects with multiple developers require software configuration management tools that allow for the accurate reproducibility of past and present information. Because BitKeeper supports the concept of a logical unit of work where each unit is immutable -- it cannot change but can be added to -- BitKeeper produces a completely reproducible repository for any moment in time. BitKeeper manages the development process so that every phase of a project can be recreated at a future point in time. Not only are file contents revisioned, but such information as permissions and file deletion events.

·         Accountability
Because the repositories are completely reproducible at any point in time, it's easy to find out who made what changes, and what other files were changed at the same time. Debugging becomes a much more efficient and less frustrating endeavor with BitKeeper.

·         Disconnected/Distributed Operations
Every user's work area contains the revision history files such that all work may proceed without any interaction with the main repository, so it's not a necessity to have a TCP connection between all of the systems all of the time. Each work area is a fully functioning repository. Joe can clone a copy of a repository to his laptop and have 100% functionality while disconnected, on an airplane, at a conference, etc. BitKeeper includes tools that propagate changes from one repository to another.

·         Scalable
A common problem with most configuration management systems is they don't scale. They all work great for 1-5 developers, but they tend to fall apart when you have 1000 developers. BitKeeper's architecture is inherently scalable, so what works for five developers works equally well for 1,000 or 10,000.

·         Excellent merging tools
BitKeeper has unique merging algorithms that significantly reduce the chance of merge conflicts when compared to other tools. In the rare event of a merge conflict, BitKeeper includes a best in class three-way file merge which makes merging as easy as pointing and clicking. Customers have reported as much as a 18 times reduction in merge time using these tools.

·         Reliability
Multiple checksums on both the content and revision history of a file ensure that corruption due to hardware and operating system problems are caught early and without propagating through the SCM system. In addition, the distributed nature of BitKeeper repositories eliminates the single point of failure mode that can occur in client-server SCM systems.

1.5.3        Disadvantage

·         Not free as in speech.

·         Free as in beer to anyone willing to use Open Logging.

        Perforce

1.6.1        Introduction

Perforce is a popular tool in the academic community, perhaps because the company provides the tool for free to open source efforts Perforce is known for its simple architecture and unique branching model that promotes outwards instead of inwards towards the trees’ trunk. Perforce is a SCM system with emphasis on high performance, using RCS files plus a database. It supports versioning of most objects, change control, shared access, atomic commits, branching/merging, and auditing for software production teams.

1.6.2        Advantage

·         Labelling feature

·         Built-in defect tracking

·         Reporting system that can be accessed by popular reporting tools

1.6.3        Disadvantage

·         Very expensive tool

·         No directory versioning

 

 

阅读(1210) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~