Blame Manual/repository-html/repository_62.html

ee1f37
ee1f37
<html>
ee1f37
ee1f37
ee1f37
Permission is granted to copy, distribute and/or modify this document
ee1f37
under the terms of the GNU Free Documentation License, Version 1.2 or
ee1f37
any later version published by the Free Software Foundation; with no
ee1f37
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
ee1f37
copy of the license is included in the section entitled GNU Free
ee1f37
Documentation License.  
ee1f37
-->
406f69
ee1f37
ee1f37
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
ee1f37
            Karl Berry  <karl@freefriends.org>
ee1f37
            Olaf Bachmann <obachman@mathematik.uni-kl.de>
ee1f37
            and many others.
ee1f37
Maintained by: Many creative people <dev@texi2html.cvshome.org>
ee1f37
Send bugs and suggestions to <users@texi2html.cvshome.org>
ee1f37
ee1f37
-->
ee1f37
<head>
f66721
<title>CentOS Artwork Repository: 2.57 The trunk/Scripts/Bash/Cli/Functions/Path Directory</title>
ee1f37
f66721
<meta name="description" content="CentOS Artwork Repository: 2.57 The trunk/Scripts/Bash/Cli/Functions/Path Directory">
f66721
<meta name="keywords" content="CentOS Artwork Repository: 2.57 The trunk/Scripts/Bash/Cli/Functions/Path Directory">
ee1f37
<meta name="resource-type" content="document">
ee1f37
<meta name="distribution" content="global">
ee1f37
<meta name="Generator" content="texi2html 1.76">
ee1f37
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
ee1f37
<style type="text/css">
ee1f37
ee1f37
@import "/home/centos/artwork/trunk/Identity/Models/Css/Texi2html/common.css";
ee1f37
ee1f37
a.summary-letter {text-decoration: none}
ee1f37
pre.display {font-family: serif}
ee1f37
pre.format {font-family: serif}
ee1f37
pre.menu-comment {font-family: serif}
ee1f37
pre.menu-preformatted {font-family: serif}
ee1f37
pre.smalldisplay {font-family: serif; font-size: smaller}
ee1f37
pre.smallexample {font-size: smaller}
ee1f37
pre.smallformat {font-family: serif; font-size: smaller}
ee1f37
pre.smalllisp {font-size: smaller}
ee1f37
span.sansserif {font-family:sans-serif; font-weight:normal;}
ee1f37
ul.toc {list-style: none}
ee1f37
-->
ee1f37
</style>
ee1f37
ee1f37
ee1f37
</head>
ee1f37
ee1f37
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
ee1f37
ee1f37
f66721
[ < ]
f66721
[ > ]
ee1f37
   
f66721
[ << ]
f66721
[ Up ]
f66721
[ >> ]
ee1f37
   
ee1f37
   
ee1f37
   
ee1f37
   
56a476
[Top]
56a476
[Contents]
f66721
[Index]
56a476
[ ? ]
ee1f37
f66721
f66721
f66721

2.57 The <tt>`trunk/Scripts/Bash/Cli/Functions/Path'</tt> Directory

f66721
f66721
f66721
f66721

2.57.1 Goals

063806
f66721

This section exists to organize files related to path

f66721
functiontionality.  The path functionality standardizes
f66721
movement, syncronization, branching, tagging, and general file
f66721
maintainance inside the repository. 
063806

f66721
f66721
f66721

2.57.2 Description

f66721
f66721

"CentOS like trees, has roots, trunk, branches, leaves and

f66721
flowers.  Day by day they work together in freedom, ruled by the laws
f66721
of nature and open standards, to show the beauty of its existence."
063806

063806
063806
f66721

2.57.2.1 Repository layout

f66721
f66721

The repository layout describes organization of files and directories

f66721
inside the repository. The repository layout provides the standard
f66721
backend required for automation scripts to work correctly. If such
f66721
layout changes unexpectedly, automation scripts may confuse themselves
f66721
and stop doing what we expect from them to do.
f66721

f66721

As convenction, inside CentOS Artwork Repository, we organize files

f66721
and directories related to CentOS corporate visual identity under
f66721
three top level directories named: <tt>`trunk/'</tt>, <tt>`branches/'</tt>,
f66721
and <tt>`tags/'</tt>. 
f66721

f66721

The <tt>`trunk/'</tt> directory (see section The <tt>`trunk'</tt> Directory) organizes the main

f66721
development line of CentOS corporate visual identity. Inside
f66721
<tt>`trunk/'</tt> directory structure, the CentOS corporate visual
f66721
identity concepts are implemented using directories.  There is one
f66721
directory level for each relevant concept inside the repository. The
f66721
<tt>`trunk/'</tt> directory structure is mainly used to perform
f66721
development tasks related to CentOS corporate visual identity.
f66721

f66721

The <tt>`branches/'</tt> directory () oranizes

f66721
parallel development lines to <tt>`trunk/'</tt> directory. The
f66721
<tt>`branches/'</tt> directory is used to set points in time where
f66721
develpment lines are devided one from another taking separte and
f66721
idependent lives that share a common past from the point they were
f66721
devided on. The <tt>`branches/'</tt> directory is mainly used to perform
f66721
quality assurance tasks related to CentOS corporate visual identity.
f66721

f66721

The <tt>`tags/'</tt> directory (see section The <tt>`tags'</tt> Directory) organizes parallel frozen

f66721
lines to <tt>`branches/'</tt> directory.  The parallel frozen lines are
f66721
immutable, nothing change inside them once they has been created.  The
f66721
<tt>`tags/'</tt> directory is mainly used to publish final releases of
f66721
CentOS corporate visual identity.
f66721

f66721

The CentOS Artwork Repository layout is firmly grounded on a

f66721
Subversion base.  Subversion (http://subversion.tigris.org) is a
f66721
version control system, which allows you to keep old versions of files
f66721
and directories (usually source code), keep a log of who, when, and
f66721
why changes occurred, etc., like CVS, RCS or SCCS.  Subversion keeps a
f66721
single copy of the master sources.  This copy  is called the source
f66721
"repository"; it contains all the information to permit extracting
f66721
previous versions of those files at any time.
063806

063806
063806
f66721

2.57.2.2 Repository name convenctions

b9dbd3
f66721

Repository name convenctions help us to maintain consistency of names

f66721
inside the repository.
063806

f66721

Repository name convenctions are applied to files and directories

f66721
inside the repository layout. As convenction, inside the repository
f66721
layout, file names are all written in lowercase
f66721
(<samp>`01-welcome.png'</samp>, <samp>`splash.png'</samp>, <samp>`anaconda_header.png'</samp>,
f66721
etc.) and directory names are all written capitalized (e.g.,
f66721
<samp>`Identity'</samp>, <samp>`Themes'</samp>, <samp>`Motifs'</samp>, <samp>`TreeFlower'</samp>,
f66721
etc.).
010b2d

f66721

Repository name convenctions are implemented inside the

f66721
cli_getRepoName function of <tt>`centos-art.sh'</tt> script. With
f66721
cli_getRepoName function we reduce the amount of commands and
f66721
convenctions to remember, concentrating them in just one single place
f66721
to look for fixes and improvements.
b130a0

063806
063806
f66721

2.57.2.3 Repository work flow

f66721
f66721

Repository work flow describes the steps and time intervals used to

f66721
produce CentOS corporate visual identity inside CentOS Artwork
f66721
Repository.  
f66721

f66721

To illustrate repository work flow let's consider themes' development

f66721
cycle. 
f66721

f66721

Initially, we start working themes on their trunk development line

f66721
(e.g., <tt>`trunk/Identity/Themes/Motifs/TreeFlower/'</tt>), here we
f66721
organize information that cannot be produced automatically (i.e.,
f66721
background images, concepts, color information, screenshots, etc.).
f66721

f66721

Later, when theme trunk development line is considered "ready" for

f66721
implementation (e.g.,  all required backgrounds have been designed),
f66721
we create a branch for it (e.g.,
f66721
<tt>`branches/Identity/Themes/Motifs/TreeFlower/1/'</tt>).  Once the
f66721
branch has been created, we forget that branch and continue working
f66721
the trunk development line while others (e.g., an artwork quality
f66721
assurance team) test the new branch for tunning it up. 
f66721

f66721

Once the branch has been tunned up, and considered "ready" for

f66721
release, it is freezed under <tt>`tags/'</tt> directory (e.g.,
f66721
<tt>`tags/Identity/Themes/Motifs/TreeFower/1.0/'</tt>) for packagers,
f66721
webmasters, promoters, and anyone who needs images from that CentOS
f66721
theme the tag was created for.
f66721

f66721

Both branches and tags, inside CentOS Artwork Repository, use

f66721
numerical values to identify themselves under the same location.
f66721
Branches start at one (i.e., <samp>`1'</samp>) and increment one unit for each
f66721
branch created from the same trunk development line.  Tags start at
f66721
zero (i.e., <samp>`0'</samp>) and increment one unit for each tag created from
f66721
the same branch development line.
f66721

f66721
Convenction

Convenction

Do not freeze trunk development lines using tags

f66721
directly.  If you think you need to freeze a trunk development line,
f66721
create a branch for it and then freeze that branch instead.
b9dbd3

b130a0
f66721

The trunk development line may introduce problems we cannot see

f66721
immediatly. Certainly, the high changable nature of trunk development
f66721
line complicates finding and fixing such problems. On the other hand,
f66721
the branched development lines provide a more predictable area where
f66721
only fixes/corrections to current content are commited up to
f66721
repository. 
f66721

f66721

If others find and fix bugs inside the branched development line, we

f66721
could merge such changes/experiences back to trunk development line
f66721
(not visversa) in order for future branches, created from trunk, to
f66721
benefit.
f66721

f66721

Time intervals used to create branches and tags may vary, just as

f66721
different needs may arrive. For example, consider the release schema
f66721
of CentOS distribution: one major release every 2 years, security
f66721
updates every 6 months, support for 7 years long. Each time a CentOS
f66721
distribution is released, specially if it is a major release, there is
f66721
a theme need in order to cover CentOS distribution artwork
f66721
requirements. At this point, is where CentOS Artwork Repository comes
f66721
up to scene. 
f66721

f66721

Before releasing a new major release of CentOS distribution we create

f66721
a branch for one of several theme development lines available inside
f66721
the CentOS Artwork Repository, perform quality assurance on it, and
f66721
later, freeze that branch using tags. Once a the theme branch has been
f66721
frozen (under <tt>`tags/'</tt> directory), CentOS Packagers (the persons
f66721
whom build CentOS distribution) can use that frozen branch as source
f66721
location to fulfill CentOS distribution artwork needs. The same
f66721
applies to CentOS Webmasters (the persons whom build CentOS websites),
f66721
and any other visual manifestation required by the project.
f66721

aaf678
063806
f66721

2.57.2.4 Parallel directories

f66721
f66721

Inside CentOS Artwork Repository, parallel directories are simple

f66721
directory entries built from a common parent directory and placed in a
f66721
location different to that, the common parent directory is placed on.
f66721
Parallel directories are useful to create branches, tags,
f66721
translations, documentation, pre-rendering configuration script, and
f66721
similar directory structures.
f66721

f66721

Parallel directories take their structure from one unique parent

f66721
directory. Inside CentOS Artwork Repository, this unique parent
f66721
directory is under <tt>`trunk/Identity'</tt> location.  The
f66721
<tt>`trunk/Identity'</tt> location must be considered the reference for
f66721
whatever information you plan to create inside the repository.
f66721

f66721

In some circumstances, parallel directories may be created removing

f66721
uncommon information from their paths. Uncommon path information
f66721
refers to those directory levels in the path which are not common for
f66721
other parallel directories.  For example, when rendering
f66721
<tt>`trunk/Identity/Themes/Motifs/TreeFlower/Distro'</tt> directory
f66721
structure, the <tt>`centos-art.sh'</tt> script removes the
f66721
<tt>`Motifs/TreeFlower/'</tt> directory levels from path, in order to
f66721
build the parallel directory used to retrived translations, and
f66721
pre-rendering configuration scripts required by render
f66721
functionality.
f66721

f66721

Another example of parallel directory is the documentation structure

f66721
created by manual functionality. This time,
f66721
<tt>`centos-art.sh'</tt> script uses parallel directory information with
f66721
uncommon directory levels to build the documentation entry required by
f66721
Texinfo documentation system, inside the repository.
f66721

f66721

Othertimes, parallel directories may add uncommon information to their

f66721
paths. This is the case we use to create branches and tags. When we
f66721
create branches and tags, a numerical identifier is added to parallel
f66721
directory structure path. The place where the numerical identifier is
f66721
set on is relevant to corporate visual identity structure and should
f66721
be carefully considered where it will be.
f66721

f66721

When one parent directory changes, all their related parallel

f66721
directories need to be changed too. This is required in order for
f66721
parallel directories to retain their relation with the parent
f66721
directory structure.  In the other hand, parallel directories should
f66721
never be modified under no reason but to satisfy the relation to their
f66721
parent directory structure.  Liberal change of parallel directories
f66721
may suppresses the conceptual idea they were initially created for;
f66721
and certainly, things may stop working the way they should do.
063806

063806
f66721
f66721

2.57.2.5 Syncronizing path information

f66721
f66721

Parallel directories are very useful to keep repository organized but

f66721
introduce some complications.  For instance, consider what would
f66721
happen to functionalities like manual (<samp>`trunk Scripts Bash
f66721
Functions Manual'</samp>) that rely on parent directory structures to create
f66721
documentation entries (using parallel directory structures) if one of
f66721
those parent directory structures suddenly changes after the
f66721
documentation entry has been already created for it? 
f66721

f66721

In such cases, functionalities like manual may confuse

f66721
themselves if path information is not updated to reflect the relation
f66721
with its parent directory.  Such functionalities work with parent
f66721
directory structure as reference; if a parent directory changes, the
f66721
functionalities dont't even note it because they work with the last
f66721
parent directory structure available in the repository, no matter what
f66721
it is. 
f66721

f66721

In the specific case of documentation (the manual

f66721
functionality), the problem mentioned above provokes that older parent
f66721
directories, already documented, remain inside documentation directory
f66721
structures as long as you get your hands into the documentation
f66721
directory structure (<tt>`trunk/Manuals'</tt>) and change what must be
f66721
changed to match the new parent directory structure.
f66721

f66721

There is no immediate way for manual, and similar

f66721
functionalities that use parent directories as reference, to know when
f66721
and how directory movements take place inside the repository. Such
f66721
information is available only when the file movement itself takes
f66721
place inside the repository. So, is there, at the moment of moving
f66721
files, when we need to syncronize parallel directories with their
f66721
unique parent directory structure.
f66721

f66721
Warning

Warning

There is not support for URL reference inside

f66721
<tt>`centos-art.sh'</tt> script.  The <tt>`centos-art.sh'</tt> script is
f66721
designed to work with local files inside the working copy only.
f66721

063806
f66721

As CentOS Artwork Repository is built over a version control system,

f66721
file movements inside the repository are considered repository
f66721
changes. In order for these repository changes to be versioned, we
f66721
need to, firstly, add changes into the version control system, commit
f66721
them, and later, perform movement actions using version control system
f66721
commands. This configuration makes possible for everyone to know about
f66721
changes details inside the repository; and if needed, revert or update
f66721
them back to a previous revision.
f66721

f66721

Finally, once all path information has been corrected, it is time to

f66721
take care of information inside the files. For instance, considere
f66721
what would happen if you make a reference to a documentation node, and
f66721
later the documentation node you refere to is deleted. That would make
f66721
Texinfo to produce error messages at export time. So, the
f66721
<tt>`centos-art.sh'</tt> script needs to know when such changes happen, in
f66721
a way they could be noted and handled without producing errors.
f66721

063806
f66721
f66721

2.57.2.6 What is the right place to store it?

f66721
f66721

Occasionly, you may find that new corporate visual identity components

f66721
need to be added to the repository. If that is your case, the first
f66721
question you need to ask yourself, before start to create directories
f66721
blindly all over, is: What is the right place to store it?
f66721

f66721

The CentOS Community different free support vains (see:

f66721
http://wiki.centos.org/GettingHelp) are the best place to find
f66721
answers to your question, but going there with hands empty is not good
f66721
idea. It may give the impression you don't really care about. Instead,
f66721
consider the following suggestions to find your own comprehension and
f66721
so, make your propositions based on it.
f66721

f66721

When we are looking for the correct place to store new files, to bear

f66721
in mind the corporate visual identity structure used inside the CentOS
f66721
Artwork Repository (see section The <tt>`trunk/Identity'</tt> Directory) would be probaly the best
f66721
advice we could offer, the rest is just matter of choosing appropriate
f66721
names.  To illustrate this desition process let's consider the
f66721
<tt>`trunk/Identity/Themes/Motifs/TreeFlower'</tt> directory as example.
f66721
It is the trunk development line of TreeFlower artistic motif.
f66721
Artistic motifs are considered part of themes, which in turn are
f66721
considered part of CentOS corporate visual identity.
f66721

f66721

When building parent directory structures, you may find that reaching

f66721
an acceptable location may take some time, and as it uses to happen
f66721
most of time; once you've find it, that may be not a definite
f66721
solution.  There are many concepts that you need to play with, in
f66721
order to find a result that match the conceptual idea you try to
f66721
implement in the new directory location. To know which these concepts
f66721
are, split the location in words and read its documentation entry from
f66721
less specific to more specific.
f66721

f66721

For example, the <tt>`trunk/Identity/Themes/Motifs/TreeFlower'</tt>

f66721
location evolved through several months of contant work and there is
f66721
no certain it won't change in the future, even it fixes quite well the
f66721
concept we are trying to implement.  The concepts used in
f66721
<tt>`trunk/Identity/Themes/Distro/Motifs/TreeFlower'</tt> location are
f66721
described in the following commands, respectively:
f66721

f66721
centos-art manual --read=turnk/
f66721
centos-art manual --read=turnk/Identity/
f66721
centos-art manual --read=turnk/Identity/Themes/
f66721
centos-art manual --read=turnk/Identity/Themes/Motifs/
f66721
centos-art manual --read=turnk/Identity/Themes/Motifs/TreeFlower/
063806
f66721

Other location concepts can be found similary as we did above, just

f66721
change the location we used above by the one you are trying to know
f66721
concepts for.
f66721

010b2d
f66721
f66721

2.57.3 Usage

063806
063806
f66721
centos-art path --copy='SRC' --to='DST'
063806
f66721

Copy <samp>`SRC'</samp> to <samp>`DST'</samp> and schedule <samp>`DST'</samp> for

f66721
addition (with history).  In this command, <tt>`SRC'</tt> and <tt>`DST'</tt>
f66721
are both working copy (WC) entries.
063806

063806
f66721
centos-art path --delete='SRC'
063806
f66721

Delete <samp>`DST'</samp>. In order for this command to work the file or

f66721
directory you intend to delete should be under version control first.
f66721
In this command, <tt>`SRC'</tt> is a working copy (WC) entry.  
063806

f66721
063806
063806
063806
063806
f66721

2.57.4 See also

ee1f37
f66721
f66721
2.50 The <tt>`trunk/Scripts/Bash'</tt> Directory  
f66721
f66721
ee1f37
ee1f37
ee1f37
f66721
[ < ]
f66721
[ > ]
ee1f37
   
f66721
[ << ]
f66721
[ Up ]
f66721
[ >> ]
ee1f37
ee1f37

ee1f37
 <font size="-1">
406f69
  This document was generated on March, 1 2011 using texi2html 1.76.
ee1f37
 </font>
ee1f37
 
ee1f37
ee1f37

ee1f37
</body>
ee1f37
</html>