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
-->
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>
d11e55
<title>CentOS Artwork Repository: 3.54 trunk/Scripts/Bash/Functions/Path</title>
4c79b5
d11e55
<meta name="description" content="CentOS Artwork Repository: 3.54 trunk/Scripts/Bash/Functions/Path">
d11e55
<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
d11e55
[ < ]
d11e55
[ > ]
4c79b5
   
4c79b5
[ << ]
4c79b5
[ Up ]
d11e55
[ >> ]
4c79b5
   
4c79b5
   
4c79b5
   
4c79b5
   
4c79b5
[Top]
4c79b5
[Contents]
d11e55
[Index]
4c79b5
[ ? ]
4c79b5
d11e55
d11e55
d11e55

3.54 trunk/Scripts/Bash/Functions/Path

d11e55
d11e55
d11e55
d11e55

3.54.1 Goals

b0644c
d11e55

This section exists to organize files related to path

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

d11e55
d11e55
d11e55

3.54.2 Description

d11e55
d11e55

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

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

c2a1bc
af3979
d11e55

3.54.2.1 Repository layout

d11e55
d11e55

The repository layout describes organization of files and directories

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

d11e55

As convenction, inside CentOS Artwork Repository, we organize files

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

d11e55

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

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

d11e55

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

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

d11e55

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

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

d11e55

The CentOS Artwork Repository layout is firmly grounded on a

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

7e35dc
af3979
d11e55

3.54.2.2 Repository name convenctions

2b5e61
d11e55

Repository name convenctions help us to maintain consistency of names

d11e55
inside the repository.
c2a1bc

d11e55

Repository name convenctions are applied to files and directories

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

d11e55

Repository name convenctions are implemented inside the

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

2b5e61
af3979
d11e55

3.54.2.3 Repository work flow

d11e55
d11e55

Repository work flow describes the steps and time intervals used to

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

d11e55

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

d11e55
cycle. 
d11e55

d11e55

Initially, we start working themes on their trunk development line

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

d11e55

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

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

d11e55

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

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

d11e55

Both branches and tags, inside CentOS Artwork Repository, use

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

d11e55
Convenction

Convenction

Do not freeze trunk development lines using tags

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

7e35dc
d11e55

The trunk development line may introduce problems we cannot see

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

d11e55

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

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

d11e55

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

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

d11e55

Before releasing a new major release of CentOS distribution we create

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

7fa1fb
af3979
d11e55

3.54.2.4 Parallel directories

d11e55
d11e55

Inside CentOS Artwork Repository, parallel directories are simple

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

d11e55

Parallel directories take their structure from one unique parent

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

d11e55

In some circumstances, parallel directories may be created removing

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

d11e55

Another example of parallel directory is the documentation structure

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

d11e55

Othertimes, parallel directories may add uncommon information to their

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

d11e55

When one parent directory changes, all their related parallel

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

7e35dc
d11e55
d11e55

3.54.2.5 Syncronizing path information

d11e55
d11e55

Parallel directories are very useful to keep repository organized but

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

d11e55

In such cases, functionalities like manual may confuse

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

d11e55

In the specific case of documentation (the manual

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

d11e55

There is no immediate way for manual, and similar

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

d11e55
Warning

Warning

There is not support for URL reference inside

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

7e35dc
d11e55

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

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

d11e55

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

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

7e35dc
d11e55
d11e55

3.54.2.6 What is the right place to store it?

d11e55
d11e55

Occasionly, you may find that new corporate visual identity components

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

d11e55

The CentOS Community different free support vains (see:

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

d11e55

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

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

d11e55

When building parent directory structures, you may find that reaching

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

d11e55

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

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

d11e55
centos-art manual --read=turnk/
d11e55
centos-art manual --read=turnk/Identity/
d11e55
centos-art manual --read=turnk/Identity/Themes/
d11e55
centos-art manual --read=turnk/Identity/Themes/Motifs/
d11e55
centos-art manual --read=turnk/Identity/Themes/Motifs/TreeFlower/
7e35dc
d11e55

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

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

c2a1bc
d11e55
d11e55

3.54.3 Usage

bf28e1
7e35dc
d11e55
centos-art path --copy='SRC' --to='DST'
7e35dc
d11e55

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

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

7e35dc
d11e55
centos-art path --delete='SRC'
7e35dc
d11e55

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

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

d11e55
7e35dc
7e35dc
7e35dc
af3979
d11e55

3.54.4 See also

300762
ec5f63
d11e55
3.49 trunk/Scripts/Bash  
d11e55
d11e55
3.50 trunk/Scripts/Bash/Functions  
ec5f63
ec5f63
ec5f63
300762
300762
d11e55
[ < ]
d11e55
[ > ]
300762
   
300762
[ << ]
d11e55
[ Up ]
d11e55
[ >> ]
300762
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>