Blame Manual/repository-html/repository_77.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
-->
52772c
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>
1856b7
<title>centos-art.sh: 2.70 The trunk/Scripts/Bash/Cli/Functions/Path Directory</title>
632e8b
1856b7
<meta name="description" content="centos-art.sh: 2.70 The trunk/Scripts/Bash/Cli/Functions/Path Directory">
1856b7
<meta name="keywords" content="centos-art.sh: 2.70 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
1856b7
[ < ]
52772c
[ > ]
632e8b
   
1856b7
[ << ]
1856b7
[ Up ]
1856b7
[ >> ]
632e8b
   
632e8b
   
632e8b
   
632e8b
   
1856b7
[Top]
1856b7
[Contents]
1856b7
[Index]
1856b7
[ ? ]
632e8b
52772c
52772c
52772c

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

632e8b
52772c
52772c
52772c

2.70.1 Goals

52772c
52772c

This section exists to organize files related to path

52772c
functiontionality.  The path functionality standardizes
52772c
movement, syncronization, branching, tagging, and general file
52772c
maintainance inside the repository. 
06d106

52772c
52772c
52772c

2.70.2 Description

52772c
52772c

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

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

52772c
52772c
52772c

2.70.2.1 Repository layout

52772c
52772c

The repository layout describes organization of files and directories

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

52772c

As convenction, inside CentOS Artwork Repository, we organize files

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

1856b7

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

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

52772c

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

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

1856b7

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

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

52772c

The CentOS Artwork Repository layout is firmly grounded on a

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

06d106
52772c
52772c

2.70.2.2 Repository name convenctions

52772c
52772c

Repository name convenctions help us to maintain consistency of names

52772c
inside the repository.
52772c

52772c

Repository name convenctions are applied to files and directories

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

52772c

Repository name convenctions are implemented inside the

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

52772c
52772c
52772c

2.70.2.3 Repository work flow

52772c
52772c

Repository work flow describes the steps and time intervals used to

52772c
produce CentOS corporate visual identity inside CentOS Artwork
52772c
Repository.  
52772c

52772c

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

52772c
cycle. 
52772c

52772c

Initially, we start working themes on their trunk development line

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

52772c

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

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

52772c

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

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

52772c

Both branches and tags, inside CentOS Artwork Repository, use

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

52772c
Convenction

Convenction

Do not freeze trunk development lines using tags

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

9bfd15
52772c

The trunk development line may introduce problems we cannot see

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

52772c

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

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

52772c

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

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

52772c

Before releasing a new major release of CentOS distribution we create

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

9bfd15
52772c
52772c

2.70.2.4 Parallel directories

9bfd15
52772c

Inside CentOS Artwork Repository, parallel directories are simple

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

52772c

Parallel directories take their structure from one unique parent

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

52772c

In some circumstances, parallel directories may be created removing

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

52772c

Another example of parallel directory is the documentation structure

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

52772c

Othertimes, parallel directories may add uncommon information to their

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

52772c

When one parent directory changes, all their related parallel

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

52772c
52772c
52772c

2.70.2.5 Syncronizing path information

632e8b
52772c

Parallel directories are very useful to keep repository organized but

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

52772c

In such cases, functionalities like manual may confuse

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

52772c

In the specific case of documentation (the manual

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

52772c

There is no immediate way for manual, and similar

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

52772c
Warning

Warning

There is not support for URL reference inside

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

632e8b
52772c

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

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

52772c

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

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

52772c
52772c
52772c

2.70.2.6 What is the right place to store it?

52772c
52772c

Occasionly, you may find that new corporate visual identity components

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

52772c

The CentOS Community different free support vains (see:

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

52772c

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

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

52772c

When building parent directory structures, you may find that reaching

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

52772c

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

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

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

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

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

52772c
52772c
52772c

2.70.3 Usage

52772c
52772c
52772c
centos-art path --copy='SRC' --to='DST'
52772c
52772c

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

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

52772c
52772c
centos-art path --delete='SRC'
52772c
52772c

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

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

52772c
52772c
52772c
632e8b
52772c
52772c

2.70.4 See also

632e8b
9bfd15
1856b7
2.62 The <tt>`trunk/Scripts/Bash'</tt> Directory  
9bfd15
9bfd15
632e8b
632e8b
632e8b
52772c
[ < ]
1856b7
[ > ]
632e8b
   
1856b7
[ << ]
52772c
[ Up ]
1856b7
[ >> ]
632e8b
632e8b

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

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