Blame Documentation/Tcar-ug/Repository/Convenctions/syncpaths.docbook

3c5068
<sect1 id="repo-convs-syncpaths">
054a7b
3c5068
    <title>Syncronizing Repository Paths</title>
054a7b
054a7b
    <para>  
ad4658
        Once both master and auxiliar paths have been related in the
ad4658
        repository, they shouldn't be changed except you absolutly
ad4658
        need to do so. In this cases, when you need to change master
ad4658
        or auxiliar paths, it is required that you also change the
ad4658
        relation between them so as to retain their bond.  This
ad4658
        process of keeping master and auxiliar paths
ad4658
        <quote>connected</quote> between themselves is known as
ad4658
        <emphasis>path syncronization</emphasis>.
054a7b
    </para>
054a7b
    
054a7b
    <para>
054a7b
        Path syncronization is required for automation scripts to know
ad4658
        where to store final output, where to retrive translation
ad4658
        messages from, and whatever information you might need to
ad4658
        count with. If the relation between master paths and auxiliar
ad4658
        paths is lost, there is no way for automation scripts to know
ad4658
        where to retrive the information they need to work with or
ab3c3a
        where to store the output information produced from it.
ab3c3a
        Through path syncronization we organize and extend the content
ab3c3a
        production inside the repository.
054a7b
    </para>
054a7b
    
054a7b
    <para>
ab3c3a
        Path syncronization affects 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
ab3c3a
        file locations consistent one another after a file has been
ab3c3a
        moved.
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
ad4658
        working with. When a renaming action needs to be performed
ad4658
        inside the repository, we avoid making replacements inside
ad4658
        files first and file movements later. This would demand two
ad4658
        commit actions: one for the files' internal changes and
ab3c3a
        another for the file movement itself.  Instead, we prefer to
ad4658
        perform file movements first and files' internal replacements
ad4658
        later.  This way it is possible to commit both changes as if
ad4658
        they were just one.
054a7b
    </para>
054a7b
 
978692
    <note>
ad4658
    <para>
ad4658
        There is no support for URLs actions inside
ad4658
        <command>centos-art.sh</command> script.  The
ad4658
        <command>centos-art.sh</command> script is designed to work
ad4658
        with local files inside the working copy only. If you need to
ad4658
        perform URL actions directly, use Subversion's commands
ad4658
        instead.
ad4658
    </para>
978692
    </note>
054a7b
054a7b
    <para>
ab3c3a
        At this moment there isn't full implementation of path
ab3c3a
        syncronization inside <command>centos-art.sh</command> script
ab3c3a
        and that is somthing we need to do oursleves. However, the
ab3c3a
        <quote>texinfo</quote> backend inside the
ab3c3a
        <function>help</function> functionality does provide a restricted
ab3c3a
        implementation of path syncronization to documentation area
978692
        through the <option>--copy</option>, <option>--delete</option>
ab3c3a
        and <option>--rename</option> options. You can read this
ab3c3a
        implementation and use it as reference to implement path
ab3c3a
        syncronization in other areas.
054a7b
    </para>
978692
        
978692
    <para>
978692
        The plan for a full implementation of path syncronization
ab3c3a
        inside <command>centos-art.sh</command> script would be to
ab3c3a
        create individual restricted implementations like the one in
ab3c3a
        <quote>texinfo</quote> backend for other areas that demand it
ab3c3a
        and then, create a higher implmentation that combines them all
ab3c3a
        as needed. This way, if we try to rename a repository
ab3c3a
        directory, the higher action can know which are all the
ab3c3a
        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
ab3c3a
        would be the master path not the auxiliar path.
054a7b
    </para>
054a7b
ad4658
</sect1>