Blame Manuals/Repository/repository-html/repository_55.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
-->
bf28e1
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>
c12cdc
<title>CentOS Artwork Repository: 3.52 trunk/Scripts/Bash/Functions/Path</title>
4c79b5
c12cdc
<meta name="description" content="CentOS Artwork Repository: 3.52 trunk/Scripts/Bash/Functions/Path">
c12cdc
<meta name="keywords" content="CentOS Artwork Repository: 3.52 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
4c79b5
d11e55
[ < ]
d11e55
[ > ]
4c79b5
   
4c79b5
[ << ]
300762
[ Up ]
c12cdc
[ >> ]
4c79b5
   
4c79b5
   
4c79b5
   
4c79b5
   
4c79b5
[Top]
4c79b5
[Contents]
c12cdc
[Index]
4c79b5
[ ? ]
4c79b5
c12cdc
d11e55
c12cdc

3.52 trunk/Scripts/Bash/Functions/Path

b0644c
b0644c
d11e55
e37211

3.52.1 Goals

b0644c
c12cdc

This section exists to organize files related to path

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

035049
d11e55
e37211

3.52.2 Description

b0644c
c12cdc

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

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

2c3589
6a8116
c12cdc

3.52.2.1 Repository layout

c12cdc
c12cdc

The repository layout describes organization of files and directories

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

c12cdc

As convenction, inside CentOS Artwork Repository, we organize files

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

c12cdc

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

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

c12cdc

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

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

c12cdc

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

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

c12cdc

The CentOS Artwork Repository layout is firmly grounded on a

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

c12cdc
c12cdc
c12cdc

3.52.2.2 Repository name convenctions

c12cdc
c12cdc

Repository name convenctions help us to maintain consistency of names

c12cdc
inside the repository.
c12cdc

c12cdc

Repository name convenctions are applied to files and directories

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

c12cdc

Repository name convenctions are implemented inside the

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

c12cdc
c12cdc
c12cdc

3.52.2.3 Repository work flow

c12cdc
c12cdc

Repository work flow describes the steps and time intervals used to

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

c12cdc

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

c12cdc
cycle. 
c12cdc

c12cdc

Initially, we start working themes on their trunk development line

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

c12cdc

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

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

c12cdc

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

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

c12cdc

Both branches and tags, inside CentOS Artwork Repository, use

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

c12cdc
Convenction

Convenction

Do not freeze trunk development lines using tags

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

c12cdc
c12cdc

The trunk development line may introduce problems we cannot see

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

c12cdc

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

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

c12cdc

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

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

c12cdc

Before releasing a new major release of CentOS distribution we create

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

c12cdc
c12cdc
c12cdc

3.52.2.4 Parallel directories

c12cdc
c12cdc

Inside CentOS Artwork Repository, parallel directories are simple

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

c12cdc

Parallel directories take their structure from one unique parent

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

c12cdc

In some circumstances, parallel directories may be created removing

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

c12cdc

Another example of parallel directory is the documentation structure

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

c12cdc

Othertimes, parallel directories may add uncommon information to their

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

c12cdc

When one parent directory changes, all their related parallel

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

c12cdc
c12cdc
c12cdc

3.52.2.5 Syncronizing path information

c12cdc
c12cdc

Parallel directories are very useful to keep repository organized but

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

c12cdc

In such cases, functionalities like manual may confuse

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

c12cdc

In the specific case of documentation (the manual

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

c12cdc

There is no immediate way for manual, and similar

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

c12cdc
Warning

Warning

There is not support for URL reference inside

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

c12cdc
c12cdc

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

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

c12cdc

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

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

c12cdc
c12cdc
c12cdc

3.52.2.6 What is the right place to store it?

c12cdc
c12cdc

Occasionly, you may find that new corporate visual identity components

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

c12cdc

The CentOS Community different free support vains (see:

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

c12cdc

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

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

c12cdc

When building parent directory structures, you may find that reaching

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

c12cdc

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

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

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

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

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

c12cdc
c12cdc
4a9d2a

3.52.3 Usage

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

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

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

c12cdc
c12cdc
centos-art path --delete='SRC'
c12cdc
c12cdc

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

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

c12cdc
c12cdc
4a9d2a
ec5f63
c12cdc
008ee0

3.52.4 See also

bc3531
c12cdc
c12cdc
3.47 trunk/Scripts/Bash  
c12cdc
c12cdc
3.48 trunk/Scripts/Bash/Functions  
c12cdc
c12cdc
4c79b5
2c8180
4c79b5
c12cdc
[ < ]
c12cdc
[ > ]
4c79b5
   
4c79b5
[ << ]
d11e55
[ Up ]
c12cdc
[ >> ]
4c79b5
4c79b5

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

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