Blame Manuals/Repository/repository-html/repository_57.html

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

3.54 trunk/Scripts/Bash/Functions/Path

fa7cae
fa7cae
fa7cae
fa7cae

3.54.1 Goals

fa7cae
fa7cae

This section exists to organize files related to path

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

fa7cae
fa7cae
fa7cae

3.54.2 Description

fa7cae
fa7cae

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

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

fa7cae
fa7cae
fa7cae

3.54.2.1 Repository layout

fa7cae
fa7cae

The repository layout describes organization of files and directories

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

fa7cae

As convenction, inside CentOS Artwork Repository, we organize files

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

fa7cae

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

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

fa7cae

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

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

fa7cae

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

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

fa7cae

The CentOS Artwork Repository layout is firmly grounded on a

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

fa7cae
fa7cae
fa7cae

3.54.2.2 Repository name convenctions

fa7cae
fa7cae

Repository name convenctions help us to maintain consistency of names

fa7cae
inside the repository.
fa7cae

fa7cae

Repository name convenctions are applied to files and directories

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

fa7cae

Repository name convenctions are implemented inside the

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

fa7cae
fa7cae
fa7cae

3.54.2.3 Repository work flow

fa7cae
fa7cae

Repository work flow describes the steps and time intervals used to

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

fa7cae

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

fa7cae
cycle. 
fa7cae

fa7cae

Initially, we start working themes on their trunk development line

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

fa7cae

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

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

fa7cae

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

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

fa7cae

Both branches and tags, inside CentOS Artwork Repository, use

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

fa7cae
Convenction

Convenction

Do not freeze trunk development lines using tags

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

b0644c
fa7cae

The trunk development line may introduce problems we cannot see

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

fa7cae

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

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

fa7cae

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

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

fa7cae

Before releasing a new major release of CentOS distribution we create

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

4a9d2a
fa7cae
fa7cae

3.54.2.4 Parallel directories

fa7cae
fa7cae

Inside CentOS Artwork Repository, parallel directories are simple

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

fa7cae

Parallel directories take their structure from one unique parent

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

fa7cae

In some circumstances, parallel directories may be created removing

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

fa7cae

Another example of parallel directory is the documentation structure

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

fa7cae

Othertimes, parallel directories may add uncommon information to their

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

fa7cae

When one parent directory changes, all their related parallel

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

4a9d2a
fa7cae
fa7cae

3.54.2.5 Syncronizing path information

fa7cae
fa7cae

Parallel directories are very useful to keep repository organized but

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

fa7cae

In such cases, functionalities like manual may confuse

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

fa7cae

In the specific case of documentation (the manual

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

fa7cae

There is no immediate way for manual, and similar

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

fa7cae
Warning

Warning

There is not support for URL reference inside

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

4a9d2a
fa7cae

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

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

fa7cae

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

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

4a9d2a
fa7cae
fa7cae

3.54.2.6 What is the right place to store it?

fa7cae
fa7cae

Occasionly, you may find that new corporate visual identity components

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

fa7cae

The CentOS Community different free support vains (see:

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

fa7cae

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

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

fa7cae

When building parent directory structures, you may find that reaching

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

fa7cae

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

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

fa7cae
centos-art manual --read=turnk/
fa7cae
centos-art manual --read=turnk/Identity/
fa7cae
centos-art manual --read=turnk/Identity/Themes/
fa7cae
centos-art manual --read=turnk/Identity/Themes/Motifs/
fa7cae
centos-art manual --read=turnk/Identity/Themes/Motifs/TreeFlower/
4a9d2a
fa7cae

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

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

4a9d2a
fa7cae
fa7cae

3.54.3 Usage

ec5f63
4a9d2a
fa7cae
centos-art path --copy='SRC' --to='DST'
4a9d2a
fa7cae

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

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

4a9d2a
fa7cae
centos-art path --delete='SRC'
4a9d2a
fa7cae

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

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

fa7cae
4a9d2a
4a9d2a
fa7cae
fa7cae
fa7cae

3.54.4 See also

300762
ec5f63
fa7cae
3.49 trunk/Scripts/Bash  
fa7cae
fa7cae
3.50 trunk/Scripts/Bash/Functions  
ec5f63
ec5f63
ec5f63
300762
300762
fa7cae
[ < ]
fa7cae
[ > ]
300762
   
300762
[ << ]
fa7cae
[ Up ]
fa7cae
[ >> ]
300762
4c79b5

4c79b5
 <font size="-1">
acd47b
  This document was generated on February, 26 2011 using texi2html 1.76.
4c79b5
 </font>
4c79b5
 
4c79b5
4c79b5

4c79b5
</body>
4c79b5
</html>