Collaborate via Git

Documentation / Collaborate

You can manage your ReqView projects in Git, the most popular distributed Version Control System (VCS) today. You can use the following simple Git workflow in ReqView:

  • Clone a remote Git repository into a local repository and check out the default branch to a local Git working tree
  • Open a ReqView Project Folder from the local Git working tree
  • Show Git information about the open project
  • Edit documents exclusively by locking ReqView document files in the Git repository
  • Commit your project changes to the remote Git repository
  • Update the open project from the Git repository to display project changes made by other users

This workflow allows more editors to edit different documents at the same time. For instance, one editor can edit a system requirements specification document while another editor is editing a system verification document.

To enable Git integration, click Edit, select Preferences, and tick Integrate with Git.

Install Git Client

Download and install Git command line tools for your platform before using Git integration in ReqView.

  • Windows: Run WinGet command winget install --id Git.Git -e --source winget.
  • Linux: Run apt-get command sudo apt-get install git on Ubuntu or Debian Linux.
  • Mac: Git is installed with XCode automatically. To install a newer version, run Homebrew command brew install git.

You can verify if the installation was successful by the following command:

$ git --version

If git command is not found, make sure that it is present in the system or the user environment variable PATH.

Connect to Git Repository

Before you can follow the Git workflow for a ReqView project, your Git administrator must set up a remote Git repository and import the project into the repository as described in Git Administration.

When you connect to the repository for the first time, you need to enter and save login credentials because ReqView does not store any passwords. We recommend using the Git Credential Manager (GCM) developed primarily by GitHub, Inc. The GCM provides secure authentication experience and supports multi-factor authentication via the HTTPS protocol for GitHub, GitLab, Bitbucket, Azure DevOps and others out of the box. For example, the GCM opens the following authentication window when connecting to a Git repository hosted at GitLab.com:

Git Credential Manager window for GitLab.com

On Windows, the GCM is installed with Git. On Linux and Mac, follow GCM Install Instructions to install it manually. To verify that the GCM is installed, run git credential-manager -h and check that the command shows help. To verify that the GCM is configured properly, run git config --get-all credential.helper and check that the command only prints the string “manager”.

You can also use any other Git credential helper to avoid entering password for each git command. Or, use Git with the SSH protocol – configure SSH public key authentication (without a password) or set up an SSH authentication agent to cache your SSH keys (such as ssh-agent, or Pageant).

For more information, check the documentation of your Git provider:

Clone Repository

You can clone a remote Git repository that stores a project using ReqView or the git clone command. ReqView uses the default branch usually named master or main.

To clone a Git repository, open ReqView, click File, select Git and then Clone Repository. In the Clone Git Repository dialog enter the URL of the remote Git repository, choose an empty folder for the working tree, and press OK.

Clone remote Git repository with a ReqView project

To check out the project using the command line, switch to the parent folder of the working tree, and run:

$ mkdir <reqview_project>
$ git clone <git_repository> <reqview_project>

To open the project in ReqView, click File, then Open Folder, and select the project folder in the Git working tree.

When a project is open from a Git working tree, the icon in the top right corner of the screen will indicate that the open project is managed in Git.

Create Workspace

If you need to work with linked projects, you can create a local workspace with a predefined hierarchy of project folders. To create the local workspace, run the script prepared by your administrator, see Git Administration > Create Workspace.

Show Git Information

To display information about the Git working tree and the last version stored in the Git repository, click File select Git and then Information:

Display Git information about a ReqView project

Edit Project

When you switch to the Project pane and click on a document, it is opened as read-only, which is indicated by the icon displayed in the top right corner of the screen.

To edit the document exclusively, click Document and select Start Editing Document, or press CtrlShiftE, or click . The edited document is locked in the remote Git repository automatically to prevent merge conflicts with other users.

Note: ReqView locks files in Git using an internal Git mechanism, which is ignored by other Git clients. To avoid merge conflicts, do not edit ReqView projects using other tools and ReqView at the same time.

To commit and push intermediate changes to the remote Git repository during editing, click File, select Git, and then Commit, or click . In the Commit Changes dialog, enter a commit message and press OK:

Commit a changed ReqView project to the Git repository

To finish editing the document, click Document and select Finish Editing Document, or press CtrlShiftE, or click . If the document has local changes, enter a commit message in the Commit Changes dialog. The edited document is unlocked in the Git repository automatically to allow other users to edit. All edited documents are also unlocked in the Git repository when the project is closed or saved as another Project File or Project Folder.

Note: Project changes are committed to the Git repository automatically when you add or remove a document, change project traceability, group documents, or import or export ReqIF.

To revert all local changes to the latest version in the Git repository, click File, select Git, then Revert, and finally press OK in the Revert Changes dialog.

Update Project

To update the current project with changes from the Git repository, click Project and select Refresh Project, or press CtrlR, or click in the Project pane.

To update the current project including all loaded linked projects with changes from the Git repository, click Project, select Linked Projects and then Refresh All Projects, or press CtrlShiftR, or click in the Linked Projects pane.

To enable updating projects opened from a folder on application startup automatically, click Edit, select Preferences, and check Refresh project on startup and open.

Clean Working Tree

If a Git action is canceled manually, the Git working tree may be left with locked index and may need to be cleaned up. To clean up the Git working tree, click File, mouseover Git, select Cleanup and then refresh the project.

Updated for version 2.19.0