Integration with CVS / Subversion

As you've probably already noticed all of our specification files have rcsversion="$Revision$" and rcsdate="$Date$" when the files are stored in a control version system such as CVS, the $Revision$ is replaced by something like $Revision 1.2 $ and $Date$ with something like $Date 2006/11/13 15:16:47 $. This is particularly useful when you want to keep track of the version and the date of the last changes of the specification.

XINS allows you also to freeze the different parts of the specification. This is particularly useful if the person or department using the API is not the same as the one designing it or implementing the API. This way the different parties can assume the required input or output parameters. If for some reasons a function or a type changes, the specification documentation would mark the function or type in red with a tag "broken freeze".

To freeze a function, a type or a result code add the attribute freeze next to the name in api.xml. The value of this attribute should be the version of the frozen specification.

For example

<api name="myproject" owner="johnd"
rcsversion="$Revision: 1.102 $" rcsdate="$Date: 2013/01/02 17:28:58 $">
  <function name="MyFunction" freeze="1.3" />

  <type name="Gender" freeze="1.1" />
  <type name="LastName" />

  <resultcode name="NoVowel" freeze="1.2" />
</api>

You can also specify in the xins-projects.xml the root of the cvsweb location:

<cvsweb href="http://cvs.mycompany.com/cvsweb/myprojects" />

If this element is provided, broken freeze will provide you with a link where you will be able to see the changes done for this item since it has been frozen. If you use viewcvs only the first provided link will work.