Part II. Version Control Tools

“You ought to see that bird from here,” said Rabbit. “Unless it’s a fish.” “It isn’t a fish, it’s a bird,” said Piglet. “So it is,” said Rabbit. “Is it a starling or a blackbird?” said Pooh. “That’s the whole question,” said Rabbit. “Is it a blackbird or a starling?”

“Kanga and Baby Roo Come to the Forest,” Winnie the Pooh, A. A. Milne

In all things, it is useful to know exactly what you are dealing with at any point in time. In software development, where source code is changing perpetually, this is particularly important. This is why version control systems play such a crucial role in modern software development environments. The advantages of using such a system are well known. A well-designed version control solution facilitates teamwork by allowing many developers to work on the same project (or even the same files) simultaneously without stepping on each other’s toes. It provides a central place to store your application source code as well as a reliable history of the changes that have been made over the life of the project. It also allows developers to return to a previous stable version of the source code if need be. And it allows developers to identify (or “tag”) a particular version of the source code, such as for a particular release. In modern development environments, version control systems are an essential building brick for more sophisticated techniques such as Continuous Integration (see Chapters 5, 6, and 7).

In Java projects, the ...

Get Java Power Tools now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.