Revision control, also known as version control, source control or software configuration management In software engineering, software configuration management is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines (SCM), is the management of changes to documents, programs A computer program is a sequence of instructions written to perform a specified task for a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute the instructions. The same program in its human-, and other information stored as computer files A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished. Computer files can be considered as the modern. It is most commonly used in software development Software development is the act of working to produce/create software. This software could be produced for a variety of purposes - the three most common purposes are to meet specific needs of a specific client/business, to meet a perceived need of some set of potential users , or for personal use (e.g. a scientist may write software to automate a, where a team A team comprises a group of people or animals linked in a common purpose. Teams are especially appropriate for conducting tasks that are high in complexity and have many interdependent subtasks of people may change the same files. Changes are usually identified by a number or letter code, termed the "revision number", "revision level", or simply "revision". For example, an initial set of files is "revision 1". When the first change is made, the resulting set is "revision 2", and so on. Each revision is associated with a timestamp A timestamp is a sequence of characters, denoting the date and/or time at which a certain event occurred. This data is usually presented in a consistent format, allowing for easy comparison of two different records and tracking progress over time; the practice of recording timestamps in a consistent manner along with the actual data is called and the person making the change. Revisions can be compared, restored, and with some types of files, merged.
Version control systems (VCSes - singular VCS) most commonly run as stand-alone applications, but revision control is also embedded in various types of software like word processors A word processor is a computer application used for the production (including composition, editing, formatting, and possibly printing) of any sort of printable material (e.g., OpenOffice.org Writer OpenOffice.org Writer is the word processor component of the OpenOffice.org software package. Writer is a word processor similar to Microsoft Word and Corel's WordPerfect, with some of their features, Microsoft Word Microsoft Word is a word processor designed by Microsoft. It was first released in 1983 under the name Multi-Tool Word for Xenix systems. Subsequent versions were later written for several other platforms including IBM PCs running DOS , the Apple Macintosh (1984), the AT&T Unix PC (1985), Atari ST (1986), SCO UNIX, OS/2, and Microsoft Windows (, KWord KWord is a free word processor, a member of the KOffice project and of the K Desktop Environment, Pages Pages is a word processor and page layout application developed by Apple. It is part of the iWork productivity suite and runs on the Mac OS X operating system. The first version of Pages was announced on January 11, 2005 and was released one month later. The most recent version, Pages 4, was released on January 6, 2009 as a component of iWork '09, etc.), spreadsheets (e.g., OpenOffice.org Calc Calc is similar to Microsoft Excel, with a roughly equivalent range of features. Calc is capable of opening and saving most spreadsheets in Microsoft Excel file format. It provides a number of features not present in Excel, including a system that automatically defines series for graphing based on the layout of the user's data. Calc is also, Microsoft Excel Microsoft Excel is a spreadsheet application written and distributed by Microsoft for Microsoft Windows and Mac OS X. It features calculation, graphing tools, pivot tables and a macro programming language called VBA (Visual Basic for Applications). It has been the most widely used spreadsheet application available for these platforms since version, KSpread KSpread is a free software spreadsheet application that is part of KOffice, an integrated office suite for the KDE Desktop Environment, Numbers Numbers is a spreadsheet application developed by Apple Inc. as part of the iWork productivity suite alongside Keynote and Pages. Numbers 1.0 was announced on August 7, 2007 and runs on Mac OS X v10.4 "Tiger" and Mac OS X v10.5 "Leopard" only, etc.), and in various content management systems In a CMS, data can be defined as nearly anything - documents, movies, pictures, phone numbers, scientific data, etc. CMSs are frequently used for storing, controlling, revising, semantically enriching, and publishing documentation. Content that is controlled is industry-specific. For example, entertainment content differs from the design documents (e.g., Drupal Drupal is a free and open source content management system (CMS) written in PHP and distributed under the GNU General Public License. It is used as a back-end system for at least 1% of all websites worldwide ranging from personal blogs to larger corporate and political sites including whitehouse.gov and data.gov.uk. It is also used for knowledge, Joomla Joomla! is an open source content management system platform for publishing content on the World Wide Web and intranets as well as a Model–view–controller Web application framework. It is written in PHP, stores data in MySQL and includes features such as page caching, RSS feeds, printable versions of pages, news flashes, blogs, polls, search,, WordPress WordPress is an open source CMS, often used as a blog publishing application powered by PHP and MySQL. It has many features including a plugin architecture and a templating system. Used by over 300 of the 10,000 biggest websites, WordPress is the most popular blog software in use today). Integrated revision control is a key feature of wiki software Wiki software is software that runs a wiki, or a website that allows users to collaboratively create and edit web pages using a web browser. A wiki system is usually a web application that runs on one or more web servers. The content, including all current and previous revisions, is usually stored in either a file system or a database. Wiki packages such as MediaWiki MediaWiki is a popular free web-based wiki software application developed by and used on all projects of the Wikimedia Foundation, as well as on many other wiki websites worldwide. It is written in the PHP programming language with a backend database, DokuWiki DokuWiki is wiki software aimed at small companies’ documentation needs. DokuWiki is licensed under GPL 2 and written in the programming language PHP. It works on plain text files and thus needs no database. Its syntax is similar to the one used by MediaWiki and makes sure the data files remain readable outside the wiki, TWiki TWiki is a Perl-based structured wiki application, typically used to run a collaboration platform, knowledge or document management system, a knowledge base, or team portal. Users can create wiki applications using the TWiki Markup Language, and developers can extend its functionality with plugins etc. In wikis Wikis may exist to serve a specific purpose, and in such cases, users use their editorial rights to remove material that is considered "off topic." Such is the case of the collaborative encyclopedia Wikipedia. In contrast, open purpose wikis accept content without firm rules as to how the content should be organized, revision control allows for the ability to revert a page to a previous revision, which is critical for allowing editors to track each other's edits, correct mistakes, and defend public wikis against vandalism and spam Spam is the abuse of electronic messaging systems to send unsolicited bulk messages indiscriminately. While the most widely recognized form of spam is e-mail spam, the term is applied to similar abuses in other media: instant messaging spam, Usenet newsgroup spam, Web search engine spam, spam in blogs, wiki spam, online classified ads spam, mobile.
Software tools for revision control are essential for the organization of multi-developer projects.[1]
Contents |
Overview
Engineering revision control developed from formalized processes based on tracking revisions of early blueprints or bluelines In a variety of combination's and strengths, these two chemicals are mixed together in water and coated onto paper. The resulting coating is then dried yielding the specially treated paper commercially sold as Diazo paper. This solution can also be applied to polyester film or to vellum. This system of control implicitly allowed returning to any earlier state of the design, for cases in which an engineering dead-end was reached in the development of the design. Likewise, in computer software engineering Software engineering is a profession and field of study dedicated to designing, implementing, and modifying software so that it is of higher quality, more affordable, maintainable, and faster to build. The term software engineering first appeared in the 1968 NATO Software Engineering Conference, and was meant to provoke thought regarding the, revision control is any practice that tracks and provides control over changes to source code. Software developers A software developer is a person or organization concerned with facets of the software development process. They can be involved in aspects wider than design and coding, a somewhat broader scope of computer programming or a specialty of project managing including some aspects of software product management. This person may contribute to the sometimes use revision control software to maintain documentation and configuration files In computing, configuration files, or config files configure the initial settings for some computer programs. They are used for user applications, server processes and operating system settings. The files are often written in ASCII and line-oriented, with lines terminated by a newline or carriage return/line feed pair, depending on the operating as well as source code. Also, version control is widespread in business and law. Indeed, "contract redline" and "legal blackline" are some of the earliest forms of revision control, and are still employed with varying degrees of sophistication. An entire industry has emerged to service the document revision control needs of business and other users, and some of the revision control technology employed in these circles is subtle, powerful, and innovative. The most sophisticated techniques are beginning to be used for the electronic tracking of changes to CAD Computer-aided design is the use of computer technology for the design of objects, real or virtual. CAD often involves more than just shapes. As in the manual drafting of technical and engineering drawings, the output of CAD often must convey also symbolic information such as materials, processes, dimensions, and tolerances, according to files (see product data management Product data management is the business function often within product lifecycle management[citation needed] that is responsible for the creation, management and publication of product data), supplanting the "manual" electronic implementation of traditional revision control.
As teams design, develop and deploy software, it is common for multiple versions of the same software to be deployed in different sites and for the software's developers to be working simultaneously on updates. Bugs A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's source code or its design, and a few are caused by and other features of the software are often only present in certain versions (because of the fixing of some problems and the introduction of others as the program develops). Therefore, for the purposes of locating and fixing bugs, it is vitally important to be able to retrieve and run different versions of the software to determine in which version(s) the problem occurs. It may also be necessary to develop two versions of the software concurrently (for instance, where one version has bugs fixed, but no new features (branch), while the other version is where new features are worked on (trunk The trunk refers to the unnamed branch of a file tree under revision control. The trunk is usually meant to be the base of a project on which development progresses. If developers are working exclusively on the trunk, it always contains the latest cutting-edge version of the project, but therefore may also be the most unstable version. Another).
At the simplest level, developers could simply retain multiple copies of the different versions of the program, and label them appropriately. This simple approach has been used on many large software projects. While this method can work, it is inefficient as many near-identical copies of the program have to be maintained. This requires a lot of self-discipline on the part of developers, and often leads to mistakes. Consequently, systems to automate some or all of the revision control process have been developed.
Moreover, in software development, legal and business practice and other environments, it has become increasingly common for a single document or snippet of code to be edited by a team, the members of which may be geographically dispersed and may pursue different and even contrary interests. Sophisticated revision control that tracks and accounts for ownership of changes to documents and code may be extremely helpful or even necessary in such situations.
Revision control may also track changes to configuration files, such as those typically stored in /etc or /usr/local/etc on Unix systems. This gives system administrators another way to easily track changes made and a way to roll back to earlier versions should the need arise.
Source-management models
Traditional revision control systems use a centralized model where all the revision control functions take place on a shared server In computing, a server is any combination of hardware or software designed to provide services to clients. When used alone, the term typically refers to a computer which may be running a server operating system, but is also used to refer to any software or dedicated hardware capable of providing services. If two developers try to change the same file at the same time, without some method of managing access the developers may end up overwriting each other's work. Centralized revision control systems solve this problem in one of two different "source management models": file locking and version merging.
Atomic operations
Computer scientists speak of atomic operations if the system is left in a consistent state even if the operation is interrupted. The commit operation is usually the most critical in this sense. Commits are operations which tell the revision control system you want to make a group of changes you have been making final and available to all users. Not all revision control systems have atomic commits; notably, the widely-used CVS The Concurrent Versions System , also known as the Concurrent Versioning System, is a free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers (potentially widely separated in space and/or time) to collaborate lacks this feature.
File locking
The simplest method of preventing "concurrent access" problems involves locking files File locking is a mechanism that restricts access to a computer file by only allowing one user or process access at any specific time. The purpose of locking is to prevent the classic interceding update scenario so that only one developer at a time has write access to the central "repository" copies of those files. Once one developer "checks out" a file, others can read that file, but no one else may change that file until that developer "checks in" the updated version (or cancels the checkout).
File locking has both merits and drawbacks. It can provide some protection against difficult merge conflicts when a user is making radical changes to many sections of a large file (or group of files). However, if the files are left exclusively locked for too long, other developers may be tempted to bypass the revision control software and change the files locally, leading to more serious problems.
Version merging
Most version control systems, such as CVS The Concurrent Versions System , also known as the Concurrent Versioning System, is a free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers (potentially widely separated in space and/or time) to collaborate, allow multiple developers to edit the same file at the same time. The first developer to "check in" changes to the central repository always succeeds. The system provides facilities to merge changes into the central repository, thus preserving the changes from the first developer when the other developers check in.
The second developer checking in code will need to take care with the merge, to make sure that the changes are compatible and that the merge operation does not introduce its own logic errors within the program.
The concept of a reserved edit can provide an optional means to explicitly lock a file for exclusive write access, even though a merging capability exists.
Distributed revision control
Distributed revision control (DRCS) takes a peer-to-peer approach, as opposed to the client-server approach of centralized systems. Rather than a single, central repository on which clients synchronize, each peer's working copy of the codebase is a bona-fide Good faith, or in Latin bona fides , is good, honest intention (even if producing unfortunate results) or belief. In law, it is the mental and moral state of honesty, conviction as to the truth or falsehood of a proposition or body of opinion, or as to the rectitude or depravity of a line of conduct. This concept is important in law, especially repository.[2] Distributed revision control conducts synchronization by exchanging patches patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file. The patch file is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments. Updating files with patch is often referred to as (change-sets) from peer to peer. This results in some important differences from a centralized system:
- No canonical, reference copy of the codebase exists by default; only working copies.
- Common operations (such as commits, viewing history, and reverting changes) are fast, because there is no need to communicate with a central server.[3]
Rather, communication is only necessary when pushing or pulling changes to or from other peers.
- Each working copy effectively functions as a remote backup of the codebase and of its change-history, providing natural security against data loss.[3]
Open systems
An "open system" of distributed revision control is characterized by its support for independent branches, and its heavy reliance on merge operations. Its general characteristics include:
- Every working copy is effectively a branch.
- The system implements each branch as a working copy, with merges conducted by ordinary patch exchange, from branch to branch.
- Code forking therefore occurs more readily, where desired, because every working copy is a potential fork. (By the same token, undesirable forks are easier to mend because, if the dispute can be resolved, re-merging the code is easy.)
- It may be possible to "cherry-pick" single changes, selectively pulling them from peer to peer.
- New peers can freely join, without applying for access to a server.
One of the first open systems, BitKeeper BitKeeper is a software tool for distributed revision control of computer source code. A sophisticated distributed system, BitKeeper competes largely against other professional systems such as Rational ClearCase and Perforce[dubious – discuss]. BitKeeper is produced by BitMover Inc., a privately held company based in Campbell, California and, served in the development of the Linux kernel The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software. When the makers of BitKeeper decided in 2005 to restrict its licensing,[4] Linux developers looked for a free replacement.
As of 2010[update], common open systems in free use include:
- Bazaar Bazaar is a distributed revision control system sponsored by Canonical Ltd., designed to make it easier for anyone to contribute to free and open source software projects, as of 2008[update] used by Ubuntu Ubuntu , is a computer operating system based on the Debian GNU/Linux distribution[5] and MySQL MySQL is a relational database management system that runs as a server providing multi-user access to a number of databases. MySQL is officially pronounced /maɪˌɛskjuːˈɛl/ ("My S-Q-L"), but is often pronounced /maɪˈsiːkwəl/ ("My Sequel"). It is named for original developer Michael Widenius's daughter My[6]
- Darcs Darcs is a distributed revision control system by David Roundy that was designed to replace traditional centralized source control systems such as CVS and Subversion. Two particular features in its design distinguish it from CVS. Each copy of the source tree acts as a full repository, allowing several different versions to be maintained in
- Git Git is a free distributed revision control, or software source code management project with an emphasis on being fast. Git was initially designed and developed by Linus Torvalds for Linux kernel development, created by Linus Torvalds Linus Benedict Torvalds (Swedish pronunciation: [ˈliːnɵs ˈtuːrvalds] ; born December 28, 1969 in Helsinki, Finland) is a Finnish software engineer best known for having initiated the development of the Linux kernel and git revision control system. He later became the chief architect of the Linux kernel, and now acts as the project's, influenced by BitKeeper BitKeeper is a software tool for distributed revision control of computer source code. A sophisticated distributed system, BitKeeper competes largely against other professional systems such as Rational ClearCase and Perforce[dubious – discuss]. BitKeeper is produced by BitMover Inc., a privately held company based in Campbell, California and and Monotone, aiming at very high performance, currently used for the Linux kernel The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software, the GNOME desktop environment, X.org, DragonFlyBSD and under investigation by KDE[7]
- Mercurial, started with same aims as Git, currently used by Mozilla project, NetBeans, GoogleCode and OpenJDK (as well as other open source Sun projects)
- Monotone
- SVK
For a full list, see the comparison of revision control software.
Replicated systems
A replicated system of distributed revision control depends on a replicated database. A check-in is equivalent to a distributed commit. Successful commits create a single baseline, which reduces the need for merges. An example of a replicated distributed system is Code Co-op.
Integration
Some of the more advanced revision-control tools offer many other facilities, allowing deeper integration with other tools and software-engineering processes. Plugins are often available for IDEs such as Oracle JDeveloper, IntelliJ IDEA, Eclipse and Visual Studio. NetBeans IDE and Xcode come with integrated version control support.
Common vocabulary
Terminology can vary from system to system, but some terms in common usage include:[8][9]
- Baseline
- An approved revision of a document or source file from which subsequent changes can be made. See the discussion of baselines, labels, and tags (below).
- Branch
- A set of files under version control may be branched or forked at a point in time so that, from that time forward, two copies of those files may develop at different speeds or in different ways independently of each other.
- Change
- A change (or diff, or delta) represents a specific modification to a document under version control. The granularity of the modification considered a change varies between version control systems.
- Change list
- On many version control systems with atomic multi-change commits, a changelist, change set, or patch identifies the set of changes made in a single commit. This can also represent a sequential view of the source code, allowing the examination of source "as of" any particular changelist ID.
- Checkout
- A check-out (or co) creates a local working copy from the repository. A user may specify a specific revision or obtain the latest.
- Commit
- A commit (checkin, ci or, more rarely, install, submit or record) occurs when writing or merging a copy of the changes made to the working copy into the repository.
- Conflict
- A conflict occurs when different parties make changes to the same document, and the system is unable to reconcile the changes. A user must resolve the conflict by combining the changes, or by selecting one change in favour of the other.
- Delta compression
- Most revision control software uses delta compression, which retains only the differences between successive versions of files. This allows for more efficient storage of many different versions of files.
- Dynamic stream
- A stream in which some or all file versions are mirrors of the parent stream's versions.
- Export
- An export resembles a check-out except that it creates a clean directory tree without the version-control metadata used in a working copy. Often used prior to publishing the contents.
- Head
- The most recent commit.
- Import
- An import involves copying a local directory tree (that is not currently a working copy) into the repository for the first time.
- Label
- See tag.
- Mainline
- Similar to trunk, but there can be a mainline for each branch.
- Merge
- A merge or integration is an operation in which two sets of changes are applied to a file or set of files.
- This may happen when one user, working on those files, updates their working copy with changes made, and checked into the repository, by other users.[clarification needed] Conversely, this same process may happen in the repository when a user tries to check-in changes.
- It may happen after a set of files has been branched, then a problem that existed before the branching is fixed in one branch and this fix needs merging into the other.
- It may happen after creating a branch; followed by independent development of the code in those files; and finally incorporating those changes into a single, unified trunk.
- Promote
- The act of copying file content from a less controlled location into a more controlled location. For example, from a user's workspace into a repository, or from a stream to its parent.[10]
- Repository
- The repository is where files' current and historical data are stored, often on a server. Sometimes also called a depot (for example, by SVK, AccuRev and Perforce).
- Resolve
- The act of user intervention to address a conflict between different changes to the same document.
- Reverse integration
- The process of merging different team branches into the main trunk of the versioning system.
- Revision
- Also version: A version is any change in form. In SVK, a Revision is the state at a point in time of the entire tree in the repository.
- Ring
- [citation needed] See tag.
- Share
- The act of making one file or folder available in multiple branches at the same time. When a shared file is changed in one branch, it is changed in other branches.
- Stream
- A container for branched files that has a known relationship to other such containers. Streams form a hierarchy; each stream can inherit various properties (like versions, namespace, workflow rules, subscribers, etc.) from its parent stream.
- Tag
- A tag or label refers to an important snapshot in time, consistent across many files. These files at that point may all be tagged with a user-friendly, meaningful name or revision number. See the discussion of baselines, labels, and tags (below).
- Trunk
- The unique line of development that is not a branch (sometimes also called Baseline or Mainline)
- Update
- An update (or sync) merges changes made in the repository (by other people, for example) into the local working copy.
- Working copy
- The working copy is the local copy of files from a repository, at a specific time or revision. All work done to the files in a repository is initially done on a working copy, hence the name. Conceptually, it is a sandbox.
Baselines, labels, and tags
Most often only one of the terms baseline, label, or tag is used in documentation or discussion[citation needed] and can be considered synonyms. Most revision control tools will use only one of these similar terms (baseline, label, tag) to refer to the action of identifying a snapshot ("label the project") or the record of the snapshot ("try it with baseline X"). However, in most projects some snapshots are more significant than others, such as those used to indicate published releases, branches, or milestones.
When both the term baseline and either of label or tag are used together in the same context, label and tag usually refer to the mechanism within the tool of identifying or making the record of the snapshot, and baseline indicates the increased significance of any given label or tag.
Most formal discussion of configuration management uses the term baseline.
See also
- Comparison of revision control software
- Distributed revision control
- Software configuration management (SCM)
- Software versioning
- Versioning file system
References
- ^ "Rapid Subversion Adoption Validates Enterprise Readiness and Challenges Traditional Software Configuration Management Leaders". EETimes. May 17, 2007. http://www.eetimes.com/press_releases/bizwire/showPressRelease.jhtml?articleID=608063&CompanyId=2. Retrieved June 1, 2007. "Version management is essential to software development and is considered the most critical component of any development environment."
- ^ Wheeler, David. "Comments on Open Source Software / Free Software (OSS/FS) Software Configuration Management (SCM) Systems". http://www.dwheeler.com/essays/scm.html. Retrieved May 8, 2007.
- ^ a b O'Sullivan, Bryan. "Distributed revision control with Mercurial". http://hgbook.red-bean.com/hgbook.html. Retrieved July 13, 2007.
- ^ "Bitmover ends free Bitkeeper, replacement sought for managing Linux kernel code". Wikinews. April 7, 2005. http://en.wikinews.org/wiki/Bitmover_ends_free_Bitkeeper%2C_replacement_sought_for_managing_Linux_kernel_code.
- ^ "Ubuntu in Launchpad". Canonical Ltd. http://launchpad.net/ubuntu. Retrieved 2008-10-21.
- ^ Arnö, Kaj (2008-06-19). "Version Control: Thanks, BitKeeper - Welcome, Bazaar". http://blogs.mysql.com/kaj/2008/06/19/version-control-thanks-bitkeeper-welcome-bazaar/. Retrieved 2008-06-19.
- ^ "Getting Started/Sources/Amarok Git Tutorial". KDE TechBase. KDE. August 25, 2009. http://techbase.kde.org/Getting_Started/Sources/KDE_git-tutorial. Retrieved October 9, 2009. "Amarok is now developed in a Git repository instead of SVN. This was done to help get into place all the needed infrastructure to convert all of KDE, including documentation."
- ^ Collins-Sussman, Ben; Fitzpatrick, B.W. and Pilato, C.M. (2004). Version Control with Subversion. O'Reilly. ISBN 0-596-00448-6. http://svnbook.red-bean.com/.
- ^ Wingerd, Laura (2005). Practical Perforce. O'Reilly. ISBN 0-596-10185-6. http://safari.oreilly.com/0596101856.
- ^ Accurev Concepts Manual, Version 4.7. Accurev, Inc.. July, 2008.
External links
- Eric Sink's Source Control HOWTO A primer on the basics of version control
- Visual Guide to Version Control
- Better SCM Initiative: Comparison A useful summary of different systems and their features.
|
|||||||||||||||||||||||||||||||
Categories: Version control | Revision control systems | Technical communication | Software development process
|
Thu, 24 Jun 2010 01:49:54 GMT+00:00
Ars Technica ... include a JavaScript debugging framework and an improved Git plugin that brings tightly-integrated distributed version control features to the IDE. ... Eclipse's Fifth 'Release Train' Is a Whopper ADT Magazine Eclipse Helios technologies arrive on the release train NetworkWorld.com Eclipse Helios Simultaneous Release InfoQ.com eWeek - iProgrammer
Michael Williams
Wed, 03 Feb 2010 14:07:20 GM
Version control. helps with all that. It keeps track of all the changes you make and lets you move back and forth through all the different versions of your project, even if the differences between versions are only tiny. ...
Q. I am part of a small development team creating multiplatform .NET programs. These are being developed such that they compile on both Windows and Ubuntu (and likely other Linuxes), using Visual Studio Express 2008 on Windows Vista and Windows XP, and MonoDevelop on Ubuntu. So far, we have been operating independently and then occasionally sending our code to one team member who then merges our work, and once verifying that it still compiles (or fixing any issues), then sends the latest revision back to all of the team members. However, this is starting to become a hassle, and while none of us have worked with any sort of source control before, we're aware that such systems exist. I have been looking for a no-cost solution that will feel… [cont.]
Asked by sven_the_tailor - Sat Dec 20 23:12:01 2008 - - 1 Answers - 0 Comments
A. Try searching for information on CVS and RCS. I'm not extremely familiar with them (used mildly only), but they may be of interest.
Answered by Erick - Sat Dec 20 23:36:22 2008


