m (Development/Architecture/KDE 3 Architecture/VCS Frontend moved to Development/Architecture/KDE3/VCS Frontend)
KDE Architecture - Version Control System (VCS) Frontend
Subversion (SVN) is the version control system (VCS) which many open source projects - including KDE - are using. It stores all sources codes in a central place, called the repository. From the repository, developers can check out a current version of the project or snapshots of it at arbitrary points of time. In contrast to some other revision control systems, it is not necessary to lock files one wants to work on. So development can be highly parallelized.
Whenever a developer has finished a task, he commits his code (accompanied by a log message). SVN takes the job to merge the changes made by several developers. It can of course happen that developers work on the same piece of code, resulting in a conflicting set of changes (in practice this occurs seldom, and is often a sign of a lack of communication). In this case SVN rejects a commit; only after all conflicts are resolved, a file can be commited.
So far, this has been a description of the basic features of SVN one usually has to cope with. But SVN can provide a lot more: One can maintain several branches of a project (e.g. KDE 3.4 and KDE 3.5 are branches in the branches directory), merge changes from one branch to another, ask for differences between revisions, the revision history of files etc.
kdesvn intends to provide a friendly, graphical interface to SVN and is technically a frontend for the command line client 'svn'. It gives the user an easy to understand overview of status of his working directory (also called the sandbox), giving information about which files have been modified since the last update, which have been added or removed. Furthermore, it provides access to the following features:
Before Subversion the KDE project used the revision control system CVS. CVS works similar to SVN, but SVN is sometimes called "The better CVS". There is a frontend for CVS called Cervisia.