## 6.2. Distributed sets

A distributed set contains books that are located in a version-controlled repository. Although several version control systems exist, this version of Publican supports only one: Subversion (SVN). By setting the repository location and titles of the included books in the `publican.cfg` file, each book can be exported to build the entire set. The procedure that follows will guide you through the process of creating a set named My Set containing Book A and Book B.

Important

The following procedure assumes that Book A and Book B already exist and are available in your SVN repository. Currently Publican only supports SVN.

Procedure 6.2. Creating a set

1. Run the following command in a shell to create a set named `My_Set` branded in the Red Hat style and in which the XML will be written in American English.

       $ publican create --type=Set --name=My_Set --brand=RedHat  --lang=en-US

2. Add the following lines to the `publican.cfg` file:

       books: Book_A Book_B
       repo: http://PATH-TO-YOUR-SVN-REPOSITORY
       scm: SVN

   Your repository path should end in the directory before the book you need.

3. Open the `My_Set.xml` file in an editor. For each book in the set, add an `xi:include` reference to the primary XML file from the book. The primary XML file for Book A will be `Book_A.xml` and for Book B, `Book_B.xml`. The `My_Set.xml` file should now look like this:

       <?xml version="1.0"?>
       <!DOCTYPE set PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
       "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
       ]>

       <set>
       	<xi:include href="Set_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
       	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
       	<xi:include href="Book_A/Book_A.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
       	<xi:include href="Book_B/Book_B.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
       	<xi:include href="Revision_History.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
       </set>

4. To make your set XML valid, you will need to comment out the following lines in `My_Set.xml`

       <remark>NOTE: the href does not contain a language! This is CORRECT!</remark>
       <remark><xi:include href="My_Other_Book/My_Other_Book.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></remark>
       <setindex></setindex>

5. Test your set by running the publican build --formats=test --langs=en-US command.

   Important

   When building a set, the publican clean_ids command will be run over each book because of the constraint that IDs must be unique across all books. Be careful of creating IDs that rely on content that may not be available when building books independently of the set.