Blame Manual/repository-html/repository_71.html

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

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

632e8b
632e8b
632e8b
632e8b

2.67.1 Goals

632e8b
632e8b

This section exists to organize files related to path

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

632e8b
632e8b
632e8b

2.67.2 Description

632e8b
632e8b

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

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

632e8b
632e8b
632e8b

2.67.2.1 Repository layout

632e8b
632e8b

The repository layout describes organization of files and directories

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

632e8b

As convenction, inside CentOS Artwork Repository, we organize files

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

632e8b

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

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

632e8b

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

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

632e8b

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

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

632e8b

The CentOS Artwork Repository layout is firmly grounded on a

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

632e8b
632e8b
632e8b

2.67.2.2 Repository name convenctions

632e8b
632e8b

Repository name convenctions help us to maintain consistency of names

632e8b
inside the repository.
632e8b

632e8b

Repository name convenctions are applied to files and directories

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

632e8b

Repository name convenctions are implemented inside the

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

632e8b
632e8b
632e8b

2.67.2.3 Repository work flow

632e8b
632e8b

Repository work flow describes the steps and time intervals used to

632e8b
produce CentOS corporate visual identity inside CentOS Artwork
632e8b
Repository.  
632e8b

632e8b

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

632e8b
cycle. 
632e8b

632e8b

Initially, we start working themes on their trunk development line

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

632e8b

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

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

632e8b

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

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

632e8b

Both branches and tags, inside CentOS Artwork Repository, use

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

632e8b
Convenction

Convenction

Do not freeze trunk development lines using tags

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

632e8b
632e8b

The trunk development line may introduce problems we cannot see

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

632e8b

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

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

632e8b

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

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

632e8b

Before releasing a new major release of CentOS distribution we create

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

632e8b
632e8b
632e8b

2.67.2.4 Parallel directories

632e8b
632e8b

Inside CentOS Artwork Repository, parallel directories are simple

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

632e8b

Parallel directories take their structure from one unique parent

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

632e8b

In some circumstances, parallel directories may be created removing

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

632e8b

Another example of parallel directory is the documentation structure

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

632e8b

Othertimes, parallel directories may add uncommon information to their

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

632e8b

When one parent directory changes, all their related parallel

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

632e8b
632e8b
632e8b

2.67.2.5 Syncronizing path information

632e8b
632e8b

Parallel directories are very useful to keep repository organized but

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

632e8b

In such cases, functionalities like manual may confuse

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

632e8b

In the specific case of documentation (the manual

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

632e8b

There is no immediate way for manual, and similar

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

632e8b
Warning

Warning

There is not support for URL reference inside

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

632e8b
632e8b

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

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

632e8b

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

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

632e8b
632e8b
632e8b

2.67.2.6 What is the right place to store it?

632e8b
632e8b

Occasionly, you may find that new corporate visual identity components

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

632e8b

The CentOS Community different free support vains (see:

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

632e8b

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

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

632e8b

When building parent directory structures, you may find that reaching

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

632e8b

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

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

632e8b
centos-art manual --read=turnk/
632e8b
centos-art manual --read=turnk/Identity/
632e8b
centos-art manual --read=turnk/Identity/Themes/
632e8b
centos-art manual --read=turnk/Identity/Themes/Motifs/
632e8b
centos-art manual --read=turnk/Identity/Themes/Motifs/TreeFlower/
632e8b
632e8b

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

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

632e8b
632e8b
632e8b

2.67.3 Usage

632e8b
632e8b
632e8b
centos-art path --copy='SRC' --to='DST'
632e8b
632e8b

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

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

632e8b
632e8b
centos-art path --delete='SRC'
632e8b
632e8b

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

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

632e8b
632e8b
632e8b
632e8b
632e8b
632e8b

2.67.4 See also

632e8b
632e8b
632e8b
2.60 The <tt>`trunk/Scripts/Bash'</tt> Directory  
632e8b
632e8b
632e8b
632e8b
632e8b
632e8b
[ < ]
632e8b
[ > ]
632e8b
   
632e8b
[ << ]
632e8b
[ Up ]
632e8b
[ >> ]
632e8b
632e8b

632e8b
 <font size="-1">
632e8b
  This document was generated on March, 4 2011 using texi2html 1.76.
632e8b
 </font>
632e8b
 
632e8b
632e8b

632e8b
</body>
632e8b
</html>