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

3.53 trunk/Scripts/Bash/Functions/Path

42563b
42563b
42563b
42563b

3.53.1 Goals

42563b
42563b

This section exists to organize files related to path

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

42563b
42563b
42563b

3.53.2 Description

42563b
42563b

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

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

42563b
42563b
42563b

3.53.2.1 Repository layout

42563b
42563b

The repository layout describes organization of files and directories

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

42563b

As convenction, inside CentOS Artwork Repository, we organize files

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

42563b

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

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

42563b

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

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

42563b

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

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

42563b

The CentOS Artwork Repository layout is firmly grounded on a

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

42563b
42563b
42563b

3.53.2.2 Repository name convenctions

42563b
42563b

Repository name convenctions help us to maintain consistency of names

42563b
inside the repository.
42563b

42563b

Repository name convenctions are applied to files and directories

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

42563b

Repository name convenctions are implemented inside the

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

42563b
42563b
42563b

3.53.2.3 Repository work flow

42563b
42563b

Repository work flow describes the steps and time intervals used to

42563b
produce CentOS corporate visual identity inside CentOS Artwork
42563b
Repository.  
42563b

42563b

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

42563b
cycle. 
42563b

42563b

Initially, we start working themes on their trunk development line

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

42563b

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

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

42563b

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

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

42563b

Both branches and tags, inside CentOS Artwork Repository, use

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

42563b
Convenction

Convenction

Do not freeze trunk development lines using tags

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

7e35dc
42563b

The trunk development line may introduce problems we cannot see

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

42563b

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

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

42563b

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

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

42563b

Before releasing a new major release of CentOS distribution we create

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

7e35dc
42563b
42563b

3.53.2.4 Parallel directories

42563b
42563b

Inside CentOS Artwork Repository, parallel directories are simple

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

42563b

Parallel directories take their structure from one unique parent

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

42563b

In some circumstances, parallel directories may be created removing

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

42563b

Another example of parallel directory is the documentation structure

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

42563b

Othertimes, parallel directories may add uncommon information to their

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

42563b

When one parent directory changes, all their related parallel

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

c12cdc
42563b
42563b

3.53.2.5 Syncronizing path information

42563b
42563b

Parallel directories are very useful to keep repository organized but

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

42563b

In such cases, functionalities like manual may confuse

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

42563b

In the specific case of documentation (the manual

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

42563b

There is no immediate way for manual, and similar

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

42563b
Warning

Warning

There is not support for URL reference inside

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

2c3589
42563b

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

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

42563b

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

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

c12cdc
42563b
42563b

3.53.2.6 What is the right place to store it?

42563b
42563b

Occasionly, you may find that new corporate visual identity components

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

42563b

The CentOS Community different free support vains (see:

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

42563b

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

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

42563b

When building parent directory structures, you may find that reaching

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

42563b

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

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

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

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

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

2c3589
42563b
42563b

3.53.3 Usage

6a8116
c12cdc
42563b
centos-art path --copy='SRC' --to='DST'
c12cdc
42563b

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

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

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

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

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

42563b
c12cdc
c12cdc
42563b
42563b
42563b

3.53.4 See also

300762
2c3589
42563b
3.48 trunk/Scripts/Bash  
42563b
42563b
3.49 trunk/Scripts/Bash/Functions  
2c3589
2c3589
4c79b5
4c79b5
4c79b5
42563b
[ < ]
42563b
[ > ]
4c79b5
   
300762
[ << ]
42563b
[ Up ]
42563b
[ >> ]
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>