1. Introduction
2. VersionWeb interfaces
3. Users authentication
3.1. How to access VersionWeb?
3.2. How each user is validated?
4. Files Management
4.1. Doing a local checkout
4.2. Doing a remote checkout
4.3. Changing a text file using a remote checkout
4.4. Creating a directory inside the repository
4.5. Adding a file inside the repository
4.6. Creating a branch
4.7. Visualizing differences between two versions
4.8. Showing the history of a file
4.9. Listing versions and branches
4.10. Doing a checkout of a specific version or of a branch
4.11. Removing changes between two versions
5. Users Management
5.1. Adding, removing, changing and transferring users
6. Specific Groups
6.1. Retrieving versions
6.2. Viewing differences between two versions
6.3. How to receive notification about new versions
6.4. Sending suggestions about the page
1. Introduction

The World Wide Web has been presented as an environment where information evolves very rapidly. Because the Web information changes so much and so frequently, browser users usually become surprised when previously available information is no longer available. In the face of such problem, a software tool named VersionWeb is presented. The idea behind the tool is to make Web page version control available during browsing by users. The main goal of VersionWeb is to provide Webmasters with an easy way of controlling Web page versions, through the Web itself.

The Web information is a new approach to Information Technology. Thus, the development of Web applications can be seen as a new kind of software development. Recently, many software companies are starting gradually to adopt the disciplines of Software Configuration Management (SCM) as usual routines for software development. The changing process is a reality for large software systems. Changes are required throughout all life cycle of a system. During the development of large-scale software, uncontrolled modifications come up and can lead quickly to chaos. Thus, change management procedures must be carried out to ensure that costs and benefits could be analyzed and changes could be controlled. Developers of Web pages (authors or webmasters) face a hard job when many people are involved in the parallel development of sets of related HTML pages. As authors can work independently in their individual page copies, the integration of the copies in a final hyperdocument (merging two or more versions) becomes a known problematic issue. In addition, the volume of the involved documents usually is high, modifications in the documents happen fast and the modifications are difficult to track. In fact, to provide an efficient mechanism the change control should combine human procedures with automatic tools.

VersionWeb was developed to provide Webmasters with an easy way of controlling the Web page versions, through the Web itself. Additionally, during Web browsing the user is able to recover previously available information from the Web page, to visualize the differences between different versions of the page and to be notified when new versions of it become available. Another goal of the tool is to facilitate the cooperation among authors, allowing them to have simultaneous access to the files, to manage the different versions of a file, and to locate changes that have been made.

To provide its main functional feature, VersionWeb uses CVS (Concurrent Version System). CVS is an efficient file version control system. It allows simultaneous access to a file. The access can be made through a network and it is possible to visualize the differences between two file versions (except for binary files) as well as it can run under several operating systems. This work complements CVS by providing a Web-based interface for a friendlier interaction, since CVS has only a command-oriented interface.

The following sections describe the main interfaces of the VersionWeb.

2.VersionWeb interfaces

VersionWeb is composed by three basic interfaces:

There are three basics types of users of the VersionWeb: administrators (people authorized to manage all users of the VersionWeb), authors (people authorized to manipulate the files that are in the CVS repository) and browser users (people that can only retrieve versions for page visualization and for visualizing differences between two versions).

The users management is made by the administrators on the web. The basic interface for users management is shown in Figure 1.
 
 

Figure 1 - Users management interface

This interface shows the list of users of the VersionWeb (authors, administrators and specific groups of browser users). Through this interface is made the maintenance of users, tasks such as: add an user to the list of users of the VersionWeb, remove one user from a list, change data of users like name, login and password from a list and transfer  users from one list to another.

The files management is made by the authors on the web. Figure 2 shows the main interface for file management.
 
 

Figure 2 - Files management main interface

Through the file management interface more common CVS operations can be executed. All the file control is done by the authors on the Web, so that their actions are registered in the server by the CVS.

The interface that the browser users can access (through a link in the page which the user  is visiting) is illustrated in Figure 3. The author should to include a link in the page for the VersionWeb. If the author wants that only specifics groups of browser users access the versions of the page, he has to do the following:

<a href="hostname/versionweb.cgi?caminho_repositorio=value&DiretorioPagina=value&nome_pagina=value&>nome_link</a>.

If the author wants that all browser users access the versions of the page, he should put janelagrupos.cgi and not versionweb.cgi in the link. For example:

<a href="hostname/janelagrupos.cgi?caminho_repositorio=value&DiretorioPagina=value&nome_pagina=value&>nome_link</a>.


Figure 3 - Versions list for browser users

The interface illustrated in the Figure 3 is accessible by a link that must to be in the page that the user is visiting. The operations available in each interface are explained in more details in the next sections.

3.Users authentication

There are three types of users in the VersionWeb:

3.1. How to access the VersionWeb?

The first step to use the VersionWeb is the authentication of an user This gives him access to the main interfaces of the VersionWeb. The interfaces are shown depending upon the type of the user loging in Figure 4 shows the users authentication interface with fields to entry the necessary data for identification.
 
 

Figure 4 - Users authentication in the VersionWeb

The interface shown in Figure 4 has the following fields for data entry:

Type of user: Authors, Groups or Administrators (options in radio buttons).

Repository Path: absolute path where the CVS repository resides within file system in the server.

Login: username for identification of the user.

Password: password of the user.

3.2. How each user should be validated?

After the procedure of authentication, each user has access only to the interface that he is authorized to use.

4. File management

If the validation of an author is ok, he will have access to the file management window of the repository that he requested at the moment of his login. Figure 5 shows the content (directories and files) of the CVS repository and operations allowed in the main file management interface.
 


Figure 5 - Files management main interface

The available operations are:

1- Directory List: It lists (shows) the content of a selected directory.

2- Up Level: It goes up one level in the directory tree.

3- Rename: It renames the selected file or directory.

4- Delete: It removes the selected file or directory from the repository.

5- Remote Checkout: It makes the remote checkout (current version) of the selected file (this option is only available to text file). This option should be used only to do small changes to files. When an user makes a remote checkout, he gets the interface illustrated in Figure 6.

Figure 6 - Interface to change text files when making a remote checkout

Through the interface above, the user can change the content of a file and make the commit (button "Commit") generating a new version. Moreover, the user can write a comment about the changes made in the file in the field "Log message" before making the commit.

6- Local Checkout: It makes local checkouts (current version) of the selected file (text or binary file) or directory to the user's machine. This option should be used to larger changes, when the commit won't be made very soon. When the user makes a local checkout, he get the interface shown in Figure 7.
 


Figure 7 - List of files to download

The interface, shown in the figure above, lists the files for download when the user makes a local checkout of an entire directory. The changes to the files should be made in the user's machine.

7- Versions History: It opens a new window with the list of versions of the selected file showing: author, date, hour and log message. This option is used only for files. Figure 8 shows the interface with the history of a file. Through this interface, the user can see all versions of the file, versions's authors, date, hour and comments of changes.
 


Figure 8 - History log for a file

8- Versions List: It opens a new window with the list of versions and branches of a selected file with operations to local checkout, to remote checkout and to remove changes between any two versions. This option is used only for files. Figure 9 shows the interface obtained using this option.
 
 

Figure 9 - Versions and  branches of a file

The interface, illustrated in Figure 9, offers the following options:


Figure 10 - Area to change text files when make a remote checkout of a specific version

For example, imagine that there are 3 versions of a file x (versions 1.1, 1.2 e 1.3). If the user does a checkout of the version 1.3, changes it and makes a commit, the CVS will generate the version 1.4 automatically. But if the user does the checkout of the revision 1.2, the CVS can not generate the version 1.3 because it already exists. Then, the user should specify a number for the version when commit, in this case, a branch (1.2.1 or 1.2.2 or 1.2.3, ...).
 

9- Diffs: It opens a new window with operations to visualize the differences of content between any two versions of the selected file. The interface obtained through this option is illustrated in Figure 11.
 
 

Figure 11 - Versions list to visualize differences

The author can view differences of content between any couple of the page versions using colors or CVS text format. Moreover, he can view these differences using the source of the page or using the page itself (if the file is in html). The author should select the form for viewing, select two different versions and click on the button "Show differences". Figure 12 shows an example of difference visualization by colors.
 


Figure 12 -  Visualization differences between two versions of a file (source of a html file) by colors

10- Create directory: It creates a directory inside the repository in the current directory.

11- Add file: It adds a file that is local to the repository in the current directory.

12- Commit of the local checkout: It commits a file which had a local checkout (current version). For this operation, the name of file should not be changed. The author should find the  file in his machine and make a commit. A new version will be generated, subsequent to that from which the local checkout was done..

13- Reload this page: It reloads the interface shown in Figure 5 to show recently added files.

5. User management

If the validated user is an administrator, he will have access to the interface for user management of the VersionWeb shown in Figure 13. It shows the list of users of the VersionWeb (authors, groups and administrators).
 
 

Figure 13 - Users management in VersionWeb

In the figure above, the following operation are allowed:

1- Insert: add an user in one of the lists of users. For this, select the type of user (radio button), fill all the fields and click on the button "Insert".

2- Change: change user's data (name, login and password). For this, select the user in one of the lists, change the data filling the fields and click on the button "Change".

3- Delete: remove a user from a list of users. For this, select the user in one of the lists and click on the button "Delete".

4- Transfer: move a user from one list to another. For this, select the user in one of the lists, select the new list (radio button) and click on the button "Transfer".

6. Specific groups of browser users

If the validated user belongs to a group, he has access to the interface shown in Figure 14. This interface offer four options:

Figure 14 shows the version list of a page that an user is visiting. Also, it shows the authors and date for each version of the page.

Figure 14 - Versions list for browser users

1- Retrieve version: The user can retrieve any version from the list for viewing through a simple click on the version and a click on the button "Retrieve Version". A new browser window will be opened with the version of the page.

2- View differences: The user can view differences of content between any two versions of a page by colors or by CVS text format. He also can view these differences using the  source code of the page or using the view of the page. The user should select these forms for viewing, select two different versions and click on the button "Show differences".

3- Notification: The user can request to receive a notification about a new version of the page. For doing this, he should fill the fields name and e-mail for notification and click on the button "Send".

4- Send comments: The user can send comment and criticism about the page or changes of the page. For doing  this, he should fill the field for comments and click on the button "Send".


 
 

Marinalva Dias Soares