KDevelop5/Manual/Working with version control systems

From KDE UserBase Wiki
Revision as of 17:02, 16 April 2020 by John Hayes (talk | contribs) (Add initial git information)
Other languages:

Working with version control systems

If you are working with larger projects, chances are that the source code is managed by a version control system such as subversion or git. The following section is written with subversion in view but will be equally true if you use git or any other supported version control system.

Subversion

First not that if the directory in which a project is located is under version control, KDevelop will automatically notice. In other words: It is not necessary that you tell KDevelop to check out a copy itself when setting up your project; it is ok to point KDevelop at a directory into which you have previously checked out a copy from the repository. If you have such a directory under version control, open the Projects tool view. There are then a number of things you can do:

  • If your directory has become outdated, you can update it from the repository: Click on the project name with the right mouse button, go to the menu Subversion and select Update. This will bring all files that belong to this project up to date with respect to the repository.
  • If you want to restrict this action to individual subdirectories or files, then expand the tree view of this project to the level you want and right click on a subdirectory or file name, then do the same as above.
  • If you've edited one or more files, expand the view of this project to the directory in which these files are located and right click on the directory. This gives you a menu item Subversion that offers you different choices. Choose Compare to base to see the differences between the version you have edited and the version in the repository you had previously checked out (the revision "base"). The resulting view will show the "diffs" for all files in this directory.
  • If you only edited a single file, you can also get the Subversion menu for this file by simply right clicking on the corresponding file name in the project view. Even simpler, just right clicking into the Editor view in which you have opened this file will also give you this menu option.
  • If you want to check in one or more edited files, right click either on an individual file, subdirectory, or whole project and select Subversion -> Commit. This will get you into Review mode, the third mode besides Code and Debug as you can see in the top right corner of the KDevelop main window. The picture on the right shows you how this looks. In Review mode, the top part shows you diffs for the entire subdirectory/project and each individual changed file with changes highlighted (see the various tabs on this part of the window). By default, all changed files are in the changeset you are about to commit, but you can unselect some of the files if their modifications are unrelated to what you want to commit. For example, in the example on the right I have unselected step-32.cc and step-32.prm because the changes in these files have nothing to do with the other ones I made to this project and I don't yet want to check them in yet (I may later want to do so in a separate commit). After reviewing the changes you can enter a commit message into the text box and hit Commit on the right to send things off.
  • As with seeing differences, if you want to check in a single file you can also just right click into the editor window to get the Subversion -> Commit menu item.

Git

Since git is becoming more and more popular with companies programmers, let us look at the options for git. Whether you right-click on the project name or on an individual file, one of the menu choices it gives you is Git. When clicked it produces the submenu shown on the right with some of the more common git commands.

Commit
Commit your changes to the local repository with an optional message describing the changes made.
Push
Update the remote repository, a local branch, or a remote branch with the changes you have commited to your local repository.
Pull
Fetch from and integrate with the local repository from the remote repository, a remote branch, or a local branch.
Add
Add the file to the list of files to be commited when you perform the commit. This can be used as many times as needed before the commit.
Revert
Reverse an earlier commit due to a commit error or a patch that is creating a problem.