Blame Manuals/Repository/Docbook/Introduction/Syncpaths.docbook

9c6207
<chapter id="intro-repoconvs-syncpaths">
054a7b
054a7b
    <title>Syncronizing Paths</title>
054a7b
054a7b
    <para>  
978692
        Once both master and auxiliar paths have been set in the
978692
        repository, they shouldn't be changed.  However, assuming you
978692
        need to change them, it is required that you also change the
978692
        relation between them, in order for both master and auxiliar
978692
        paths to retain their relation one another.  This process of
978692
        keeping relation between master and auxiliar paths updated is
054a7b
        known as <emphasis>path syncronization</emphasis>.
054a7b
    </para>
054a7b
    
054a7b
    <para>
054a7b
        Path syncronization is required for automation scripts to know
978692
        where to store final output, where to retrive translation, and
978692
        any information that might be desired. If the relation between
978692
        master paths and auxiliar paths is lost, there is no way for
054a7b
        <command>centos-art.sh</command> script to know where to
054a7b
        retrive the information it needs to work with.  Path
054a7b
        syncronization is the way we use to organize and extend the
054a7b
        information stored in the repository.
054a7b
    </para>
054a7b
    
054a7b
    <para>
978692
        Path syncronization involves both movement of files and
054a7b
        replacement of content inside files.  Movement of files is
054a7b
        related to actions like renaming files and directories inside
054a7b
        the repository.  Replacement of content inside files is
054a7b
        related to actions like replacing information (e.g., paths
054a7b
        information) inside files in order to keep file contents and
978692
        file locations consistent one another after the movement.
054a7b
    </para>
054a7b
054a7b
    <para>
054a7b
        The order followed to syncronize path information is very
978692
        important because the versioned nature of the files we are
978692
        working with. When a renaming action is performed, we avoid
978692
        making replacements inside files first and file movements
978692
        later. This would require two commit actions: one for the
978692
        files' internal changes and another for the file movement
978692
        itself.  Otherwise, we prefer to perform file movements first
978692
        and file internal replacements later. This way it is possible
978692
        to commit both changes as if they were just one.
054a7b
    </para>
054a7b
 
978692
    <note>
054a7b
        <para>
054a7b
            There is no support for URLs actions inside
054a7b
            <command>centos-art.sh</command> script.  The
054a7b
            <command>centos-art.sh</command> script is designed to
054a7b
            work with local files inside the working copy only. If you
054a7b
            need to perform URL actions directly, use Subversion
054a7b
            commands instead.
054a7b
        </para>
978692
    </note>
054a7b
054a7b
    <para>
054a7b
        At this moment there is no full implementation of path
054a7b
        syncronization process inside <command>centos-art.sh</command>
978692
        script and it is somthing we need to do oursleves. However,
978692
        the <quote>texinfo</quote> backend of help
978692
        functionality which provides a restricted implementation of
978692
        path syncronization to this specific area of documentation
978692
        through the <option>--copy</option>, <option>--delete</option>
978692
        and <option>--rename</option> options you can take as
978692
        reference to implement it in other areas.
054a7b
    </para>
978692
        
978692
    <para>
978692
        The plan for a full implementation of path syncronization
978692
        would be to create individual restricted implementations like
978692
        the one in <quote>texinfo</quote> backend for other areas that
978692
        demand it and then, create a higher implmentation that
978692
        combines them all as needed. This way, if we try to rename a
978692
        repository directory the higher action will define which are
978692
        all the restricted actions that should be performed in order
978692
        to make the full path syncronization.
978692
    </para>
978692
        
054a7b
    <para>
978692
        For example, if the directory we are renaming is a master
978692
        path, it is required to syncronize the related output and
978692
        localization auxiliar paths. On the other hand, if the
978692
        directory we are renaming through full path syncronization is
978692
        an auxiliar path, it is required to determine first what is
978692
        the related master path and later, perform the syncronization
978692
        from master path to auxiliar paths as if the path provided
978692
        would be the master path not the auxiliar path.  
054a7b
    </para>
054a7b
9c6207
</chapter>