Blog Post

Simple SVN Workflow


We have released ReqView 2.10.0-beta1 allowing you to check out a project from a Subversion (SVN) repository, edit the project, and commit changes from ReqView.

  Download ReqView Beta

Our customers have asked us for integrating ReqView with a version control system (VCS) so that they can collaborate with non-technical users without an external VCS client. We are happy to introduce a new integration with Subversion that makes team collaboration in ReqView much easier.

We chose SVN for several reasons. SVN is a very popular centralized open-source version control system (VCS) adopted by many customers because of its simplicity and robustness. SVN supports a centralized locking mechanism to prevent edit conflicts of ReqView project data (based on JSON), therefore it is more suitable than Git, the most popular distributed VCS.

If you are interested in this feature and want to test it with your requirements project, you can install SVN, initialize an SVN repository, and import a ReqView Project Folder into the repository.

You can use the following simple SVN workflow:

  • Check out a ReqView Project Folder from an SVN repository into a local SVN working copy
  • Open a ReqView Project Folder from the local SVN working copy
  • Display SVN information about the open project
  • Edit documents exclusively by locking / unlocking ReqView document files in the SVN repository
  • Update the open project by changes from other users
  • Commit project changes from the working copy to the SVN repository

Install SVN

You can download SVN command line tools for your platform from Apache Subversion page. It is also bundled with many popular SVN GUI clients, such as Tortoise SVN for Windows.

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

$ svn --version

If svn command is not found, make sure that Subversion executable binary is present in the system or the user environment variable PATH.

SVN Administration

Before your team can start working with a ReqView project you need to set up an SVN repository and import the ReqView project.

Set up SVN Repository

You can simply install an SVN repository on your PC as described in Setting up a local repository. For production use, your network administrator should set up an SVN repository for your ReqView projects on your intranet or in cloud.

SVN repositories can be very flexibly structured into sub-folders to manage your project(s). You can choose if you want to store a single project or multiple projects in the repository, see Recommended Repository Layout.

Single-project SVN repositories have typically trunk, branches, and tags sub-folders at the top level to store the main branch, development branches and baselines. Multi-project SVN repositories are typically structured into sub-folders by projects at the top level and each project then have the same structure as described for single-project SVN repositories.

Import Project to SVN

You can import your ReqView Project Folder into a single-project SVN repository as follows:

  1. Create a new project folder <reqview_project> storing the working copy of your project in your local file system. Feel free to choose your custom name for the project.
  2. Create empty <reqview_project>/trunk and <reqview_project>/tags subfolders. Because ReqView only works with a single branch, we do not need to create branches subfolder.
  3. In ReqView, open your project and save it to <reqview_project>/trunk by File > Save as Folder. The working copy of your ReqView project should have the following structure:
  4. Open command line from the working copy <reqview_project>, and then import the project to SVN repository by svn import command:
    $ svn import <svn_repository> -m "Initial import of ReqView project"

SVN User Workflow

Connect to SVN Repository

Because ReqView does not store passwords you should save login credentials to SVN before using ReqView. If you use Tortoise SVN client then simply open the Repo-browser and in the Authentification dialog enable Save authentification option.

You can also log in to an SVN repository by svn info command:

$ svn info --username <user_name> --password <password> <svn_repository>

You can list all saved login credentials by svn auth command.

Check out Project from SVN

You can check out a ReqView project from the SVN repository to a local working copy using ReqView or using svn checkout command.

To check out the project from ReqView, click File, and select Check out from SVN. In the Check out Project from SVN dialog enter the URL of the trunk branch in the SVN repository, choose an empty folder for the working copy, and press OK.

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

$ mkdir <reqview_project>
$ svn checkout <svn_repository>/trunk <reqview_project>

To open an SVN working copy in ReqView, click File and select Open Folder. When the open project is managed in SVN, you will see icon in the top right corner of the screen.

Get SVN Info

To display the SVN information about the SVN working copy and the last version stored in the SVN repository, click Project and select SVN Information:

Edit Project and Commit Changes to SVN

The workflow for editing the project is the same as for a shared Project Folder, see Team Collaboration > Edit Documents Exclusively. When you leave Exclusive Edit Mode for an edited document (click Document and select Finish Editing Document or press CtrlShiftE), you can enter a commit message in Commit Changes dialog, and ReqView will automatically commit project changes to the SVN repository:

To commit project changes anytime during editing, click button in the top right corner of the screen, or click File and select Commit to SVN. Note that ReqView commits project changes to SVN automatically after adding or removing a document, changing project traceability, or reordering documents.

To update the open project by changes from other users, click Project and select Refresh Project or press CtrlR).

Next Steps

We plan to extend the SVN workflow in ReqView by the following operations:

  • Display SVN log of project changes
  • Create an SVN tag for a project baseline
  • Open an SVN revision of the project in a separate window
  • Compare the current project version with another SVN revision or a tag

At the moment, you can do these operations in an external SVN GUI client or from the command line.

Display SVN Log

To display the SVN log of changes, open Revision Log dialog in TortoiseSVN or use svn log log command.

Create SVN Tag

To create an SVN baseline from your working copy, open Copy (Branch / Tag) dialog in TortoiseSVN or use svn copy command:

$ svn copy . "^/tags/<tag_name>" -m "Create baseline"

Switch to SVN Tag

To switch the current working copy <reqview_project> to a baseline, open Switch to (Branch / Tag) dialog in TortoiseSVN or use svn switch command:

$ svn switch "^/tags/<tag_name>"

To open the baseline in another working copy <reqview_project_tag>, open Checkout dialog in TortoiseSVN or use svn checkout command:

$ svn checkout <svn_repository>/tags/<tag_name> <reqview_project_tag>

Then, you can open the working copy <reqview_project_tag> with the (read-only) baseline in ReqView.

Compare with SVN Tag

You can save the project baseline as a new Project File, share it with your team via a shared network drive, and compare the current project version with the Project File later, see Compare Projects.

We Need Your Feedback

Download ReqView Beta, try the SVN workflow described in this post, and let us know how we can improve this feature. Give the new feature its final shape!