Log in Sign up
Back to Discover
💻

Version control

technology Maturity 5-7 war conflict
This article covers sensitive topics: war_conflict. Parents can manage visibility in Parental Controls.

Computers can save many versions of a file.

Revision controlled project visualization-2010-24-02.svg
Revision controlled project visualization-2010-24-02.svg
This helps people work together. You can see old work too. It helps fix mistakes fast. It is like a time machine for files. Can you find an old file?

42 words

People use tools to track file changes. These tools are called version control. They keep a history of your work.

Revision controlled project visualization-2010-24-02.svg
Revision controlled project visualization-2010-24-02.svg

This is helpful for teams. Many people can work on one file. They can work from different places. This helps them work together well.

Sometimes, a mistake happens in a file. You can use the tool to go back. It lets you see an old version. This makes it easy to fix bugs.

Each change gets a new number. The tool also saves the time. It shows who made the change. This keeps everything very neat.

It is a great way to stay organized.

108 words

When people work on computer files, they need to stay organized. They use a tool called version control. This tool tracks the history of a file. It shows every change made over time.

Revision controlled project visualization-2010-24-02.svg
Revision controlled project visualization-2010-24-02.svg

Version control is very helpful for teams. Many people can work on the same project at once. They might even live in different parts of the world. This tool helps them work together without making big mistakes.

Sometimes, a person finds a bug. A bug is a mistake in the code. Version control lets you look at old versions. You can even revert a file. This means you turn it back to how it was before.

People often work on a branch. A branch is a separate path of work. One branch might fix bugs. Another branch might add new features. This is called a trunk and a branch. Later, you can perform a merge. A merge joins the different paths back together.

Each version has a number. It also has a timestamp. This tells you when the change happened. It also shows who made the change. This makes it easy to see the history of the work.

195 words

Version control is a way to organize and track computer files. It is a very important practice for software engineers. This practice is also called source code management or revision control. It helps people keep track of different versions of a file's history.

Revision controlled project visualization-2010-24-02.svg
Revision controlled project visualization-2010-24-02.svg
You can use it to see old versions of a file. You can even revert a file to how it looked before. This is helpful for many kinds of work. It is used in word processors and even on Wikipedia.

Working on software can be a hard job for teams. Different developers often work on the same code at the same time. They might work on one version to fix bugs. This is often called a branch. At the same time, they might work on a different version to add new features. This main path is called the trunk.

Revision controlled project visualization-2010-24-02.svg
Revision controlled project visualization-2010-24-02.svg
Without version control, people might just keep many copies of the same file. This is very inefficient and can lead to many mistakes. Version control automates these steps to make things easier.

People have been working on these tools for a long time. One early tool was IBM's OS/360 IEBUPDTE from 1962. Later, two tools called The Librarian and Panvalet were used. In 1972, a system called the Source Code Control System, or SCCS, began. Its manual was published on December 4, 1975. This was likely the first deliberate revision control system. Later, the Revision Control System arrived in 1982. Then came the Concurrent Versions System, which added network features. Eventually, tools like Subversion and Git became very popular.

When you change a file, it is not updated in the main storage right away. First, you must retrieve it through a process called checking out. The file you edit on your computer is called a working copy. When you are finished, you must check it in or commit it.

Revision controlled project visualization-2010-24-02.svg
Revision controlled project visualization-2010-24-02.svg
Each version gets a specific version number or revision level. Every change also has a timestamp and a name. This tells you exactly when the change happened and who did it. This makes it easy to compare different versions of the same work.

Think of version control like a tree with branches. The main part of the tree is the trunk. When someone starts a new task, they create a branch. This is a separate path of work that grows away from the trunk.

Revision controlled project visualization-2010-24-02.svg
Revision controlled project visualization-2010-24-02.svg
When the work is done, the branch can be joined back to the trunk. This joining process is called a merge. Merging can be a complex task if the changes overlap. Some systems use one central repository to hold all the data. Other systems are distributed, so there is no single main storage. This allows people to work together from anywhere in the world.

475 words

Version control is a fundamental software engineering practice used to organize and track the history of computer files. It is also known as revision control, source control, or source code management. While it is most commonly used for text files containing source code, it can manage almost any type of file. This practice is a key part of software configuration management. By using version control, developers can view old versions of a file or revert a file to a previous state. This capability is essential for maintaining stability in complex digital environments.

When teams develop software, they often need to manage multiple versions at once. For example, a team might need to fix bugs in an old version while simultaneously building new features in a newer version. To do this, developers use different paths of development. One path might be a branch, which contains bug fixes but no new features. The other path is often called the trunk, where new features are actively developed. Without version control, developers might try to manage this by keeping many separate copies of a program. This manual method is inefficient and requires great self-discipline to avoid mistakes. It also creates a security burden, as someone must constantly manage read, write, and execute permissions to prevent the code base from being compromised.

Modern version control systems automate these complex operational steps. When a developer wants to work on a file, they must first retrieve it through a process called checking out. The copy of the file that the developer edits on their local computer is known as a working copy. Changes made to this working copy are not immediately reflected in the main storage, which is called the repository. To save these changes to the repository, the developer must perform a check-in, also known as a commit. Each time a commit occurs, the system assigns a version number, revision, or revision level to the file. Every version is also associated with a specific timestamp and the name of the person who made the change. This allows users to compare, restore, or merge different revisions with precision.

There are two primary ways that these systems are structured: centralized and distributed. In a centralized system, there is a single authoritative data store called the repository. All check-outs and check-ins are performed against this one central location. In contrast, distributed revision control means that no single repository is the sole authority. In these systems, data can be checked out and checked into any repository. When a user checks data into a different repository, the system interprets this action as a merge or a patch. This distributed nature allows teams to work together even if they are geographically dispersed and pursuing different interests.

To visualize how these versions relate to one another, computer scientists often use graph theory. In a simple scenario with no branching, revisions form a linear graph, which is a single line of development. The most recent version in this line is called the HEAD revision or the tip. However, when developers create branches, the structure becomes a directed tree. In this model, the main path of development is called the trunk or the mainline. If a developer creates a new branch based on the HEAD, the original HEAD is no longer a tip because it now has a child.

Revision controlled project visualization-2010-24-02.svg
Revision controlled project visualization-2010-24-02.svg

The structure becomes even more complex during a process called a merge. A merge occurs when a revision is based on more than one previous revision. This usually happens when changes made in two different branches are combined into a single branch. When this occurs, the graph is no longer a simple tree; it becomes a rooted directed acyclic graph, or DAG. It is called acyclic because the "parents" of a revision are always located backwards in time. Merging can be a difficult task if the changes in the different branches overlap. In such cases, the merge may require manual intervention or the rewriting of code to resolve conflicts.

The history of these tools shows a long evolution of managing data. Early precursors include IBM's OS/360 IEBUPDTE software update tool from 1962. Later, tools like The Librarian and Panvalet were used for IBM 360/370 installations. A full system for source code control, the Source Code Control System (SCCS), was started in 1972. Its manual, published on December 4, 1975, suggested it was the first deliberate revision control system. Other important milestones include the Revision Control System (RCS) in 1982 and the Concurrent Versions System (CVS), which added network features. These paved the way for dominant successors like Subversion and the modern rise of distributed tools like Git.

Beyond software, version control concepts have roots in other professional fields. Engineering revision control grew from processes used to track early blueprints. Engineers used revision tables to track changes and "revision clouds" to highlight modified areas on drawings. This allowed them to return to earlier design states if they reached a dead end. Similarly, the legal and business worlds use early forms of revision control, such as "contract redlining" or "legal blacklining," to track changes in documents. Whether in a digital repository or on a physical blueprint, the goal remains the same: to maintain a clear and reliable history of change.

876 words
🖼️ Images & Media (1)
File:Revision controlled project visualization-2010-24-02.svg
Revision controlled project...
Up Next
💻
Web content management system
Technology
More to explore

What is Nepedia?

A free, ad-free encyclopedia for children. Every article is written at five reading levels, so the same page works for a five-year-old and a fifteen-year-old — use the level switcher above to see this one change. No account needed to read.