### 12.4 The Version Control Contextual Menu

This section describes the version control contextual menu displayed when you right-click on an entity (e.g. a file, a directory, a project) from various parts of GPS, including the project view, the source editor and the VCS Explorer.

Depending on the context, some of the items described in this section won't be shown, which means that they are not relevant to the current context.

Remove project
  Only displayed on a project line. This will remove the selected project from the VCS Explorer.
Expand all
  Expand all VCS Explorer project nodes.
Collapse all
  Collapse all VCS Explorer project nodes.
Clear View
  Clear the VCS Explorer.
Query status
  Query the status of the selected item. Brings up the VCS Explorer.
Update
  Update the currently selected item (file, directory or project).
Commit
  Submits the changes made to the file to the repository, and queries the status for the file once the change is made.

  It is possible to tell GPS to check the file before the actual commit happens. This is done by specifying a `File checker` in the `VCS` tab of the project properties dialog. This `File checker` is in fact a script or executable that takes an absolute file name as argument, and displays any error message on the standard output. The VCS commit operation will actually occur only if nothing was written on the standard output.

  It is also possible to check the change-log of a file before commit, by specifying a `Log checker` in the project properties dialog. This works on change-log files in the same way as the `File checker` works on source files.

Open
  Open the currently selected file for writing. On some VCS systems, this is a necessary operation, and on other systems it is not.
View entire revision history
  Show the revision logs for all previous revisions of this file.
View specific revision history
  Show the revision logs for one previous revision of this file.
Compare against head revision
  Show a visual comparison between the local file and the most recent version of that file in the repository.
Compare against other revision
  Show a visual comparison between the local file and one specific version of that file in the repository.
Compare two revisions
  Show a visual comparison between two specific revisions of the file in the repository.
Compare base against head
  Show a visual comparison between the corresponding version of the file in the repository and the most recent version of that file.
Compare against tag/branch
  Only available on a Revision View and over a tag/branch. Show a visual comparison between the corresponding version of the file in the repository and the version of that file in the tag/branch.
Annotate
  Display the annotations for the file, i.e. the information for each line of the file showing the revision corresponding to that file, and additional information depending on the VCS system.

  When using CVS or Subversion, the annotations are clickable. Left-clicking on an annotation line will query and display the changelog associated to the specific revision for this line.

Remove Annotate
  Remove the annotations from the selected file.
Edit revision log
  Edit the current revision log for the selected file.
Edit global ChangeLog
  Edit the global ChangeLog entry for the selected file. see Working with global ChangeLog file.
Remove revision log
  Clear the current revision associated to the selected file.
Add
  Add a file to the repository, using the current revision log for this file. If no revision log exists, activating this menu will create one. The file is committed in the repository.
Add/No commit
  Add a file to the repository, using the current revision log for this file. If no revision log exists, activating this menu will create one. The file is not committed in the repository.
Remove
  Remove a file from the repository, using the current revision log for this file. If no revision log exists, activating this menu will create one. The modification is committed in the repository.
Remove/No commit
  Remove a file from the repository, using the current revision log for this file. If no revision log exists, activating this menu will create one. The modification is not committed in the repository.
Revert
  Revert a locale file to the repository revision, discarding all local changes.
Resolved
  Mark files' merge conflics as resolved. Some version control systems (like Subversion) will block any commit until this action is called.
Switch tag/bracnh
  Only available on a Revision View and over a tag/branch name. Will switch the tree starting from a selected root to this specific tag or branch.
Merge
  Only available on a Revision View and over a tag/branch name. Merge file changes made on this specific tag/branch.
View revision
  Only available on a Revision View and over a revision.
Commit as new Activity
  An action to prepare a group-commit in just one-click. This action will:
  - create an anonymous activity,
  - add all files selected into the VCS Explorer into the newly created anonymous activity,
  - open the activity log,

  Just fill the activity log and commit the anonymous activity.

Add to Activity
  A menu containing all the current activities. Selecting one will add the current file to this activity. This menu is present only if the file is not already part of an activity.
Remove from Activity
  Remove file from the given activity. This menu is present only if the file is already part of an activity.
Directory
  Only available when the current context contains directory information
  Add/No commit
    Add the selected directory into the VCS.
  Remove/No commit
    Remove the selected directory from the VCS.
  Commit
    Commit the selected directory into the VCS. This action is available only if the VCS supports commit on directories, see The VCS node.
  Add to Activity
    Add the selected directory into the VCS. This action is available only if the VCS supports commit on directories, see The VCS node.
  Query status for directory
    Query status for the files contained in the selected directory.
  Update directory
    Update the files in the selected directory.
  Query status for directory recursively
    Query status for the files in the selected directory and all subdirectories recursively. Links and hidden directories are not included.
  Update directory recursively
    Update the files in the selected directory and all subdirectories recursively. Links and hidden directories not included..
Project
  Only available when the current context contains project information
  List all files in project
    Bring up the VCS Explorer with all the source files contained in the project.
  Query status for project
    Query the status for all the source files contained in the project.
  Update project
    Update all the source files in the project.
  List all files in project and sub-projects
    Bring up the VCS Explorer with all the source files contained in the project and all imported sub-projects.
  Query status for project and sub-projects
    Query the status for all the source files contained in the project and all imported sub-projects.
  Update project and sub-projects
    Update all the source files in the project and all imported sub-projects.
Select files same status
  Select the files having the same status as the current selected file.
Filters
  Only available from the VCS Explorer. This menu controls filtering of the items displayed in the list.
  Show all status
    Do not filter out any file from the list in the VCS Explorer.
  Hide all status
    Filter out all the files from the list in the VCS Explorer.
  Show <status>
    When disabled, filter out the files with the given status from the VCS Explorer.