Plastic SCM
   HOME

TheInfoList



OR:

Plastic SCM is a cross-platform commercial
distributed version control In software development, distributed version control (also known as distributed revision control) is a form of version control in which the complete codebase, including its full history, is mirrored on every developer's computer. Compared to centra ...
tool developed by Códice Software for
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
,
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
,
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
, and other operating systems. It includes a
command-line A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
tool, native GUIs,
diff In computing, the utility diff is a data comparison tool that computes and displays the differences between the contents of files. Unlike edit distance notions used for other purposes, diff is line-oriented rather than character-oriented, but it ...
and
merge Merge, merging, or merger may refer to: Concepts * Merge (traffic), the reduction of the number of lanes on a road * Merge (linguistics), a basic syntactic operation in generative syntax in the Minimalist Program * Merger (politics), the comb ...
tool and integration with a number of
IDEs Ides or IDES may refer to: Calendar dates * Ides (calendar), a day in the Roman calendar that fell roughly in the middle of the month. In March, May, July, and October it was the 15th day of the month; in other months it was the 13th. **Ides of Mar ...
. It is a full version control stack not based on
Git Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data inte ...
(although it can communicate with it).


Features

Plastic SCM is a full version control stack platform. It includes these components: * Server * Command line client * GUIs * Diff and merge tools * Web GUI * Web-based admin interface Some of its features include: * Support for heavy branching and merging: According to its creators, Plastic can handle unlimited branching and complex merge scenarios * Visual Branch Explorer: A timeline to represent branches, merges and changes in repositories, implemented in all of its GUIs * ACL-based security: Every object in the system can be secured with access control lists * Built-in three-way merge and side-by-side diff including language-aware support and history of a specific method or function * Directory versioning and support for versioning renames * Revision history for branched, renamed, moved, copied and deleted files * Blame/Annotate * Centralized operation (SVN/Perforce style) * Distributed operation (Git/Mercurial style) *
Atomic commit In the field of computer science, an atomic commit is an operation that applies a set of distinct changes as a single operation. If the changes are applied, then the atomic commit is said to have succeeded. If there is a failure before the atomic ...
s—the server assures that changesets are committed in the repository entirely * ''Shelving''—users can save and restore work in progress for task switching * Support for ASCII,
Unicode Unicode, formally The Unicode Standard,The formal version reference is is an information technology Technical standard, standard for the consistent character encoding, encoding, representation, and handling of Character (computing), text expre ...
, binary,
symbolic link In computing, a symbolic link (also symlink or soft link) is a file whose purpose is to point to a file or directory (called the "target") by specifying a path thereto. Symbolic links are supported by POSIX and by most Unix-like operating system ...
(on Unix), Mac-specific, and
UTF-16 UTF-16 (16-bit computing, 16-bit Unicode Transformation Format) is a character encoding capable of encoding all 1,112,064 valid code points of Unicode (in fact this number of code points is dictated by the design of UTF-16). The encoding is variab ...
files * Support for Mac OS X, Windows and Linux platforms * Server-side and client-side event triggers * High-latency network support: The network protocol used by Plastic is optimized for high-speed/high-latency networks * Gluon: GUI and workflow for non-developers (specially focused on game development) * Locking: Binary files and assets that can't be merged can use locking instead of branching/merging


Design

Plastic is a client/server system although in current terms of version control it can also be defined as a distributed revision control system, due to its ability to have very lightweight servers on the developer computer and push and pull branches between servers (similar to what
Git Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data inte ...
and
Mercurial Mercurial is a distributed revision control tool for software developers. It is supported on Microsoft Windows and Unix-like systems, such as FreeBSD, macOS, and Linux. Mercurial's major design goals include high performance and scalability, d ...
do). Developers work on files in their client
workspace Workspace is a term used in various branches of engineering and economic development. Business development Workspace refers to small premises provided, often by local authorities or economic development agencies, to help new businesses to estab ...
s, and check in changed files together in changesets.


Storage

Plastic SCM has 2 different families of storage for all its data and metadata: * Jet: An ad-hoc storage designed for high-performance, released with version 6.0. It is now the default storage. * Relational databases: Traditionally Plastic supported storing all data and metadata in relational databases: MySQL, SQL Server, SQLite, SQL Server Compact Edition, Firebird, Firebird Embedded, Postgresql and Oracle. Relational databases are still supported although Jet is now the default option.


Modes of operation

Plastic can work in 2 modes: * Centralized: With workspaces (working copies) connected directly to a server. Users perform checkin operations without the need for an additional push step. * Distributed: Users host their own repositories on their computers and push/pull to a central server.


Differences from Git

Plastic SCM is not based on Git although it can act as a Git server and a Git client. Differences can be summarized as: improvements in merge, native support for large files and projects, optional file-locking, can work distributed and centralized. There are differences in the branching structure too: while in Git branches are just pointers, in Plastic branches are containers. Plastic versions directories and files identifying them with "item ids" which is good for move/rename tracking, while Git relies on diffs to rebuild the renames/moves and doesn't version directories.


Interoperability with other version control systems


Git

Plastic can interoperate with Git in the following ways: * GitSync: Every Plastic client can push and pull from a Git repository. * GitServer: A Plastic server can act as a Git server, so any git client can push/pull to a Plastic server. * Fast-import/export support: Fast-export and fast-import commands are available to export Plastic repositories to Git intermediate format and import from Git intermediate format.


Perforce

Plastic can do bi-directional sync with Perforce depots to ease migration


Other version controls

Import/export from other systems is achieved through Git's fast-import/export format.


Availability, release cycle and supported platforms

Plastic SCM is available to download from the plasticscm.com website. Major releases are published yearly as pre-built
executable In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instruction (computer science), instructi ...
s for
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
,
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
, and
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
. Minor releases are available on a weekly basis.


Licensing and terms of use

Plastic SCM is free for individuals (Personal Edition), non-profit organizations and
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
projects (Community Edition). Cloud Edition is a commercial version for teams that do not need an on-premise server. Customers pay per active monthly user and cloud storage. The subscription includes all the Plastic SCM software. Enterprise Edition is a commercial version for teams over 15 users, typically used by corporations. It can be purchased in perpetual edition mode or with a monthly or annual subscription.


History

Codice Software started in August 2005 backed by an angel investor and the founders. The goal was to create a version control stronger than SVN in branching and merging and more affordable for SME than the commercial alternatives available at the time. In October 2006, they released the first version of Plastic SCM and was officially presented in Tech Ed 2006 in
Barcelona Barcelona ( , , ) is a city on the coast of northeastern Spain. It is the capital and largest city of the autonomous community of Catalonia, as well as the second most populous municipality of Spain. With a population of 1.6 million within ci ...
. In 2007, Codice was the first Spanish SME to achieve CMMI L2 using SCRUM. Plastic SCM was featured by Novell as one of the companies using Mono commercially. Plastic SCM 2.0 was launched in March 2008. In 2009, Codice secures its first round of VC backed by Bullnet Capital, a Spanish firm specializing in tech companies. Plastic SCM was a Jolt Award finalist in the Change and Configuration Management category, announced in December 2008. Plastic SCM 3.0 was launched in July 2010 and it featured Xdiff/Xmerge: their first approach to track moved code in diffs and merges. In December 2010, Plastic SCM announces "method history", a feature that allows the user to calculate the history of a given method/function instead of the history of a full file. In 2011, Francisco Monteverde joined the company as CEO while Pablo Santos, founder, was appointed as CTO and President of the board. Plastic SCM 4.0 was launched on November 23, 2011 and introduced a major change in the internal design: versioning and merge tracked was moved from a per-file approach to a per-changeset approach, which helped improving later Git-interop. Since 4.0, Plastic started to be more oriented toward game development, specially considering the weaknesses of Git in terms of big repositories and files. Version 4.1 was launched in April 2012. In 2013, Codice launches SemanticMerge, a tool that diffs and merges based on code structure and not text. The technology was later integrated inside Plastic. Semantic builds on top of the previous work done on the Xdiff/Xmerge tool. Later that year Semantic added Java support to complement the initial .NET offering. Pablo Santos introduced cross-file diff and merge detection in QCon 2013 in San Francisco. In 2013, Plastic SCM started natively supporting the Git network protocol, which virtually converts any Plastic installation into a Git client. Plastic SCM 5.0 is launched in September 2013. It features built-in semantic diff, refactor detection and method history. Other features are path based security, client changelists and improved cloaked rules. Version 5.4 later expands some of these features and add a few more: encrypted servers, JavaCLI (a Java client to support HP-UX and Solaris scripting), multi-core file upload and download, Plastic Gluon (developed in collaboration with Telltale ), a GUI for artists in game development, WAN optimized data transfer, submodules, transformable workspaces. Plastic 5.4 evolves as Plastic's primary version and in December 2014 a new native GUI for Linux is launched replacing the previous cross-platform one. 5.4 includes a new native MacOS GUI too. In January 2016, Plastic Cloud was launched as a cloud repo hosting system. In March 2016, Plastic Cloud Edition was launched, a new version designed for teams who do not need an on-premise server. Version 6.0 was finally released in January 2017. It features a new data storage system called Jet, full backward compatibility up to 5.0 and floating licenses support. 6.0 continues evolving during 2017. Plastic SCM 7.0 was launched in March 2018 including a new Branch Explorer design, new web-based administration interface, and improvements in MacOS and Linux GUIs. The mergebots feature was launched in September 2018. Mergebots are a way to implement DevOps with server-side agents that detect when branches have to be merged after testing them on a CI system. Plastic SCM 8.0 was released in January 2019. On August 17 2020, it was revealed that
Unity Technologies Unity Software Inc. (doing business as Unity Technologies) is a video game software development company based in San Francisco. It was founded in Denmark in 2004 as Over the Edge Entertainment (OTEE) and changed its name in 2007. Unity Technolo ...
, the creators of the game engine
Unity Unity may refer to: Buildings * Unity Building, Oregon, Illinois, US; a historic building * Unity Building (Chicago), Illinois, US; a skyscraper * Unity Buildings, Liverpool, UK; two buildings in England * Unity Chapel, Wyoming, Wisconsin, US; a h ...
, had acquired Codice Software.


See also

*
List of revision control software This is a list of notable software for version control. Local data model In the local-only approach, all developers must use the same file system. Open source * Revision Control System (RCS) – stores the latest version and backward del ...
*
Comparison of revision control software In software development, version control is a class of systems responsible for managing changes to computer programs or other collections of information such that revisions have a logical and consistent organization. The following tables includ ...


Notes


References

* * * * * * {{Revision control software Proprietary version control systems File comparison tools