Blame Manual/repository-html/repository_58.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>
96f432
<title>CentOS Artwork Repository: 2.56 The Filesystem/trunk/Scripts/Bash/Cli/Functions/Path Directory</title>
ee1f37
96f432
<meta name="description" content="CentOS Artwork Repository: 2.56 The Filesystem/trunk/Scripts/Bash/Cli/Functions/Path Directory">
96f432
<meta name="keywords" content="CentOS Artwork Repository: 2.56 The Filesystem/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
982d5c
[ < ]
982d5c
[ > ]
ee1f37
   
982d5c
[ << ]
982d5c
[ Up ]
5cb5a7
[ >> ]
ee1f37
   
ee1f37
   
ee1f37
   
ee1f37
   
56a476
[Top]
56a476
[Contents]
5cb5a7
[Index]
56a476
[ ? ]
ee1f37
982d5c
982d5c
96f432

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

982d5c
982d5c
982d5c
982d5c

2.56.1 Goals

982d5c
982d5c

This section exists to organize files related to path

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

982d5c
982d5c
982d5c

2.56.2 Description

982d5c
982d5c

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

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

982d5c
982d5c
982d5c

2.56.2.1 Repository layout

982d5c
982d5c

The repository layout describes organization of files and directories

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

982d5c

As convenction, inside CentOS Artwork Repository, we organize files

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

96f432

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

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

96f432

The <tt>`branches/'</tt> directory (@pxref{branches}) oranizes parallel

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

96f432

The <tt>`tags/'</tt> directory (@pxref{tags}) organizes parallel frozen

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

982d5c

The CentOS Artwork Repository layout is firmly grounded on a

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

982d5c
982d5c
982d5c

2.56.2.2 Repository name convenctions

982d5c
982d5c

Repository name convenctions help us to maintain consistency of names

982d5c
inside the repository.
982d5c

982d5c

Repository name convenctions are applied to files and directories

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

982d5c

Repository name convenctions are implemented inside the

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

982d5c
982d5c
982d5c

2.56.2.3 Repository work flow

982d5c
982d5c

Repository work flow describes the steps and time intervals used to

982d5c
produce CentOS corporate visual identity inside CentOS Artwork
982d5c
Repository.  
982d5c

982d5c

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

982d5c
cycle. 
982d5c

982d5c

Initially, we start working themes on their trunk development line

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

982d5c

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

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

982d5c

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

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

982d5c

Both branches and tags, inside CentOS Artwork Repository, use

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

982d5c
Convenction

Convenction

Do not freeze trunk development lines using tags

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

010b2d
982d5c

The trunk development line may introduce problems we cannot see

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

982d5c

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

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

982d5c

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

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

982d5c

Before releasing a new major release of CentOS distribution we create

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

010b2d
982d5c
982d5c

2.56.2.4 Parallel directories

982d5c
982d5c

Inside CentOS Artwork Repository, parallel directories are simple

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

982d5c

Parallel directories take their structure from one unique parent

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

982d5c

In some circumstances, parallel directories may be created removing

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

982d5c

Another example of parallel directory is the documentation structure

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

982d5c

Othertimes, parallel directories may add uncommon information to their

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

982d5c

When one parent directory changes, all their related parallel

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

010b2d
982d5c
982d5c

2.56.2.5 Syncronizing path information

982d5c
982d5c

Parallel directories are very useful to keep repository organized but

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

982d5c

In such cases, functionalities like manual may confuse

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

982d5c

In the specific case of documentation (the manual

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

982d5c

There is no immediate way for manual, and similar

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

982d5c
Warning

Warning

There is not support for URL reference inside

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

ee1f37
982d5c

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

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

982d5c

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

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

ee1f37
982d5c
982d5c

2.56.2.6 What is the right place to store it?

982d5c
982d5c

Occasionly, you may find that new corporate visual identity components

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

982d5c

The CentOS Community different free support vains (see:

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

982d5c

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

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

982d5c

When building parent directory structures, you may find that reaching

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

982d5c

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

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

982d5c
centos-art manual --read=turnk/
982d5c
centos-art manual --read=turnk/Identity/
982d5c
centos-art manual --read=turnk/Identity/Themes/
982d5c
centos-art manual --read=turnk/Identity/Themes/Motifs/
982d5c
centos-art manual --read=turnk/Identity/Themes/Motifs/TreeFlower/
010b2d
982d5c

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

982d5c
change the location we used above by the one you are trying to know
982d5c
concepts for.
010b2d

ee1f37
982d5c
982d5c

2.56.3 Usage

010b2d
010b2d
982d5c
centos-art path --copy='SRC' --to='DST'
010b2d
982d5c

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

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

010b2d
982d5c
centos-art path --delete='SRC'
010b2d
982d5c

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

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

982d5c
010b2d
010b2d
010b2d
982d5c
982d5c

2.56.4 See also

010b2d
982d5c
96f432
2.49 The <tt>`Filesystem/trunk/Scripts/Bash'</tt> Directory  
982d5c
982d5c
ee1f37
ee1f37
ee1f37
982d5c
[ < ]
982d5c
[ > ]
ee1f37
   
982d5c
[ << ]
982d5c
[ Up ]
5cb5a7
[ >> ]
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>