We to other people using the same
We have seen a good list of configuration management tools in previous post “Top Open Source Solutions for Version Control”. Subversion (SVN) is one of the popular and open source configuration management tool. It is centralized system which consists of a centralized repository database and several command line tools. SVN is mainly used in collaborative environment where multiple people work on same code base, but it can be used to manage personal projects.Before going into details, lets try to understand few terminologies first.RepositoryA repository is a central database in SVN where we store all our versioned artifacts. It keeps a history of all versioned files. We can create a repository on server or on a local PC. Front-end version control tool acts as clients of the repository. The client connects to the repository and then can read, write, modify the files in the repository. The changes made by the client in the repository become available to other people using the same repository.Working CopyWorking copy is a private copy of specific revision of central repository. It helps us to work easily and efficiently on the local machine. Working copy is a private workspace for every developer. So the developer can work independently from other people using the same repository.Commit/ Check-in and Update/ Check-outWhile people use working copy and work in isolation from the rest of the team, they also need to upload their changes in a central repository so the rest of the team can get their changes. Commit is the process of uploading the changes back into the central repository. The other team can synchronize their working copy with latest changes by updating their working copy. Checkout is a process of updating working copy.TrunkA trunk is a main development directory where developers check-in all latest changes. Usually the trunk directory maintains the main line of development.BranchesBranch is created from the trunk or another branch and used to maintain a separate line of development. Developers create branch when they want to work on multiple features or bug fixes simultaneously. Branches can be merged later in to trunk or another branch.TagThe tag is read only snapshot of the project. When developers want to store particular revision they create a tag of repository (or selected files/directories in the repository) by giving distinctive name.