Alien-SVN

 view release on metacpan or  search on metacpan

src/subversion/CHANGES  view on Meta::CPAN

    * fixed: strip peg rev from default checkout directory (r18416)
    * fixed: diff crash with non-recursive checkout (r17231, 18539, -41)
    * fixed: 'svn ls' URL encoding bug with locks (r18665, -68)
    * fixed: unlock circumvents lock token check (r18691, -94)
    * fixed: repos-to-repos copy crash (r18451)
    * fixed: 'svnmerge' utility improvements (r18811)
    * translation updates for German, Swedish and Norwegian

  - Server:
    * fixed: set svn:date at the end of commit in fsfs (r18078)
    * fixed: don't wait for hook script background jobs (r18146)
    * fixed: mod_dav_svn should log the whole error chain (r18211)
    * fixed: uncomment section headers in repos config files (r18247, -50)
    * fixed: log scalability issues with many paths (r18395, -404)
    * fixed: better path input validation in mod_dav_svn (r18660)
    * fixed: assert in copy in fsfs and bdb (issue #2398)
    * fixed: RPM package bad interaction with NFS servers (issue #1456)

  - Both:
    * fixed: copyright years updated to include 2006 (r18021, -127)

src/subversion/CHANGES  view on Meta::CPAN


Version 0.33.0 (released 13 November 2003, revision r7737)
http://svn.apache.org/repos/asf/subversion/tags/0.33.0

                              NOTICES:

    1. This client may be incompatible with ra_dav servers <= 0.31.

    2. In order to make commits more responsive, repository
       deltification is no longer automatic.  However, you may want
       to run deltification as a background process in your repository
       post-commit hook.  For example, the new post-commit.tmpl file
       recommends 'nice -2 svnadmin deltify "$REPOS" -r "$REV" &'.

 User-visible changes:
 * now require APR/APU 0.9.5 (ships in Apache 2.0.48)
 * lose automatic deltification, but recommend it in post-commit (r7695, #1573)
 * new configuration and authn/authz support in ra_svn (r7604, r7601)
 * much faster checkouts and updates, over both svn:// and http:// (#1429)
 * new partial-authz feature: checkouts/updates just skip unauthorized items
 * new 'use-commit-times = yes' config option to use commit-time timestamps

src/subversion/INSTALL  view on Meta::CPAN



  E.  Alternative:  'svnserve' and ra_svn
      -----------------------------------

      An alternative network layer is libsvn_ra_svn (on the client
      side) and the 'svnserve' process on the server.  This is a
      simple network layer that speaks a custom protocol over plain
      TCP (documented in libsvn_ra_svn/protocol):

         $ svnserve -d     # becomes a background daemon
         $ svn checkout svn://localhost/usr/local/svn/repository

      You can use the "-r" option to svnserve to set a logical root
      for repositories, and the "-R" option to restrict connections to
      read-only access.  ("Read-only" is a logical term here; svnserve
      still needs write access to the database in this mode, but will
      not allow commits or revprop changes.)

      'svnserve' has built-in CRAM-MD5 authentication (so you can use
      non-system accounts), and can also be tunneled over SSH (so you

src/subversion/build/generator/ezt.py  view on Meta::CPAN

   the then-clause is substituted!

   [if-index INDEX_FROM_FOR odd] ... [else] ... [end]
   [if-index INDEX_FROM_FOR even] ... [else] ... [end]
   [if-index INDEX_FROM_FOR first] ... [else] ... [end]
   [if-index INDEX_FROM_FOR last] ... [else] ... [end]
   [if-index INDEX_FROM_FOR NUMBER] ... [else] ... [end]

   These five directives work similar to [if-any], but are only useful
   within a [for ...]-block (see above).  The odd/even directives are
   for example useful to choose different background colors for
   adjacent rows in a table.  Similar the first/last directives might
   be used to remove certain parts (for example "Diff to previous"
   doesn't make sense, if there is no previous).

   [is QUAL_NAME STRING] ... [else] ... [end]
   [is QUAL_NAME QUAL_NAME] ... [else] ... [end]

   The [is ...] directive is similar to the other conditional
   directives above.  But it allows to compare two value references or
   a value reference with some constant string.

src/subversion/doc/doxygen.conf  view on Meta::CPAN

# graphs generated by dot. A depth value of 3 means that only nodes reachable
# from the root by following a path via at most 3 edges will be shown. Nodes
# that lay further from the root node will be omitted. Note that setting this
# option to 1 or 2 may greatly reduce the computation time needed for large
# code bases. Also note that the size of a graph can be further restricted by
# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.

MAX_DOT_GRAPH_DEPTH    = 0

# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
# background. This is disabled by default, because dot on Windows does not
# seem to support this out of the box. Warning: Depending on the platform used,
# enabling this option may lead to badly anti-aliased labels on the edges of
# a graph (i.e. they become hard to read).

DOT_TRANSPARENT        = NO

# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This
# makes dot run faster, but since only newer versions of dot (>1.8.10)
# support this, this feature is disabled by default.

src/subversion/doc/user/cvs-crossover-guide.html  view on Meta::CPAN

<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>CVS to SVN Crossover Guide</title>
<style type="text/css">
body {
  font-family: sans-serif;
}
h1 {
  text-align: center;
}
h2 {
  background: #b0c0f0;
  margin: 0;
}
.h2 {
  border-left: 4px #b0c0f0 solid;
  margin-bottom: 2em;
}
hr {
  height: 1px;
  width: 80%;
}

src/subversion/doc/user/cvs-crossover-guide.html  view on Meta::CPAN

.sidebyside {
  padding: 0 2em;
  width: 100%;
  font-size: 80%;
}
.sidebyside th, .sidebyside td {
  width: 50%;
  border-width: 0 1px 2px 0;
  border-style: solid;
  border-color: black;
  background: #b0c0f0;
  vertical-align: top;
}
.sidebyside th {
  text-align: center;
  background: #90a0d0;
}
.bookref {
  font-size: 80%;
}
</style>
</head>

<body>

<h1>CVS to SVN Crossover Guide</h1>

src/subversion/subversion/libsvn_client/merge.c  view on Meta::CPAN

   describing a normalized range of revisions to be merged from the line
   history of SOURCE_LOC.  Order the objects from oldest to youngest.

   RA_SESSION is an RA session open to the repository of SOURCE_LOC; it may
   be temporarily reparented within this function.  Use RA_SESSION to find
   the location segments along the line of history of SOURCE_LOC.

   Allocate MERGE_SOURCES_P and its contents in RESULT_POOL.

   See `MERGEINFO MERGE SOURCE NORMALIZATION' for more on the
   background of this function.
*/
static svn_error_t *
normalize_merge_sources(apr_array_header_t **merge_sources_p,
                        const char *source_path_or_url,
                        const svn_client__pathrev_t *source_loc,
                        const apr_array_header_t *ranges_to_merge,
                        svn_ra_session_t *ra_session,
                        svn_client_ctx_t *ctx,
                        apr_pool_t *result_pool,
                        apr_pool_t *scratch_pool)

src/subversion/subversion/svn/svn.1  view on Meta::CPAN

who, when, and why changes occurred, etc., like CVS, RCS or SCCS.
\fBSubversion\fP keeps a single copy of the master sources.  This copy
is called the source ``repository''; it contains all the information
to permit extracting previous versions of those files at any time.

For more information about the Subversion project, visit 
http://subversion.apache.org.

Documentation for Subversion and its tools, including detailed usage
explanations of the \fBsvn\fP, \fBsvnadmin\fP, \fBsvnserve\fP and
\fBsvnlook\fP programs, historical background, philosophical 
approaches and reasonings, etc., can be found at 
http://svnbook.red-bean.com/.

Run `svn help' to access the built-in tool documentation.

src/subversion/subversion/svnadmin/svnadmin.1  view on Meta::CPAN

who, when, and why changes occurred, etc., like CVS, RCS or SCCS.
\fBSubversion\fP keeps a single copy of the master sources.  This copy
is called the source ``repository''; it contains all the information
to permit extracting previous versions of those files at any time.

For more information about the Subversion project, visit 
http://subversion.apache.org.

Documentation for Subversion and its tools, including detailed usage
explanations of the \fBsvn\fP, \fBsvnadmin\fP, \fBsvnserve\fP and
\fBsvnlook\fP programs, historical background, philosophical 
approaches and reasonings, etc., can be found at 
http://svnbook.red-bean.com/.

Run `svnadmin help' to access the built-in tool documentation.

src/subversion/subversion/svndumpfilter/svndumpfilter.1  view on Meta::CPAN

who, when, and why changes occurred, etc., like CVS, RCS or SCCS.
\fBSubversion\fP keeps a single copy of the master sources.  This copy
is called the source ``repository''; it contains all the information
to permit extracting previous versions of those files at any time.

For more information about the Subversion project, visit 
http://subversion.apache.org.

Documentation for Subversion and its tools, including detailed usage
explanations of the \fBsvn\fP, \fBsvnadmin\fP, \fBsvnserve\fP and
\fBsvnlook\fP programs, historical background, philosophical 
approaches and reasonings, etc., can be found at 
http://svnbook.red-bean.com/.

Run `svndumpfilter help' to access the built-in tool documentation.

src/subversion/subversion/svnlook/svnlook.1  view on Meta::CPAN

who, when, and why changes occurred, etc., like CVS, RCS or SCCS.
\fBSubversion\fP keeps a single copy of the master sources.  This copy
is called the source ``repository''; it contains all the information
to permit extracting previous versions of those files at any time.

For more information about the Subversion project, visit 
http://subversion.apache.org.

Documentation for Subversion and its tools, including detailed usage
explanations of the \fBsvn\fP, \fBsvnadmin\fP, \fBsvnserve\fP and
\fBsvnlook\fP programs, historical background, philosophical 
approaches and reasonings, etc., can be found at 
http://svnbook.red-bean.com/.

Run `svnlook help' to access the built-in tool documentation.

src/subversion/subversion/svnmucc/svnmucc.1  view on Meta::CPAN

who, when, and why changes occurred, etc., like CVS, RCS or SCCS.
\fBSubversion\fP keeps a single copy of the master sources.  This copy
is called the source ``repository''; it contains all the information
to permit extracting previous versions of those files at any time.

For more information about the Subversion project, visit 
http://subversion.apache.org.

Documentation for Subversion and its tools, including detailed usage
explanations of the \fBsvn\fP, \fBsvnadmin\fP, \fBsvnserve\fP and
\fBsvnlook\fP programs, historical background, philosophical 
approaches and reasonings, etc., can be found at 
http://svnbook.red-bean.com/.

Run `svnmucc --help' to access the built-in tool documentation.

src/subversion/subversion/svnrdump/svnrdump.1  view on Meta::CPAN

who, when, and why changes occurred, etc., like CVS, RCS or SCCS.
\fBSubversion\fP keeps a single copy of the master sources.  This copy
is called the source ``repository''; it contains all the information
to permit extracting previous versions of those files at any time.

For more information about the Subversion project, visit 
http://subversion.apache.org.

Documentation for Subversion and its tools, including detailed usage
explanations of the \fBsvn\fP, \fBsvnadmin\fP, \fBsvnserve\fP and
\fBsvnlook\fP programs, historical background, philosophical 
approaches and reasonings, etc., can be found at 
http://svnbook.red-bean.com/.

Run `svnrdump help' to access the built-in tool documentation.

src/subversion/subversion/svnserve/svnserve.8  view on Meta::CPAN

\fBsvnserve\fP [\fIoptions\fP]
.SH DESCRIPTION
\fBsvnserve\fP allows access to Subversion repositories using the svn
network protocol.  It can both run as a standalone server process, or
it can run out of inetd.  You must choose a mode of operation when you
start \fBsvnserve\fP.  The following options are recognized:
.PP
.TP 5
\fB\-d\fP, \fB\-\-daemon\fP
Causes \fBsvnserve\fP to run in daemon mode.  \fBsvnserve\fP
backgrounds itself and accepts and serves TCP/IP connections on the
svn port (3690, by default).
.PP
.TP 5
\fB\-\-listen\-port\fP=\fIport\fP
Causes \fBsvnserve\fP to listen on \fIport\fP when run in daemon mode.
.PP
.TP 5
\fB\-\-listen\-host\fP=\fIhost\fP
Causes \fBsvnserve\fP to listen on the interface specified by \fIhost\fP,
which may be either a hostname or an IP address.

src/subversion/subversion/svnserve/svnserve.8  view on Meta::CPAN

When combined with \fB\-\-tunnel\fP, overrides the pre-authenticated
username with the supplied \fIusername\fP.  This is useful in
combination with the ssh authorized_key file's "command" directive to
allow a single system account to be used by multiple committers, each
having a distinct ssh identity.
.PP
.TP 5
\fB\-T\fP, \fB\-\-threads\fP
When running in daemon mode, causes \fBsvnserve\fP to spawn a thread
instead of a process for each connection.  The \fBsvnserve\fP process
still backgrounds itself at startup time.
.PP
.TP 5
\fB\-\-config\-file\fP=\fIfilename\fP
When specified, \fBsvnserve\fP reads \fIfilename\fP once at program
startup and caches the \fBsvnserve\fP configuration.  The password
and authorization configurations referenced from \fIfilename\fP will
be loaded on each connection.  \fBsvnserve\fP will not read any
per-repository \fBconf/svnserve.conf\fP files when this option is
used.  See the \fBsvnserve.conf\fP(5) man page for details of the
file format for this option.

src/subversion/subversion/svnsync/svnsync.1  view on Meta::CPAN

who, when, and why changes occurred, etc., like CVS, RCS or SCCS.
\fBSubversion\fP keeps a single copy of the master sources.  This copy
is called the source ``repository''; it contains all the information
to permit extracting previous versions of those files at any time.

For more information about the Subversion project, visit 
http://subversion.apache.org.

Documentation for Subversion and its tools, including detailed usage
explanations of the \fBsvn\fP, \fBsvnadmin\fP, \fBsvnserve\fP and
\fBsvnlook\fP programs, historical background, philosophical 
approaches and reasonings, etc., can be found at 
http://svnbook.red-bean.com/.

Run `svnsync help' to access the built-in tool documentation.

src/subversion/subversion/svnversion/svnversion.1  view on Meta::CPAN

who, when, and why changes occurred, etc., like CVS, RCS or SCCS.
\fBSubversion\fP keeps a single copy of the master sources.  This copy
is called the source ``repository''; it contains all the information
to permit extracting previous versions of those files at any time.

For more information about the Subversion project, visit 
http://subversion.apache.org.

Documentation for Subversion and its tools, including detailed usage
explanations of the \fBsvn\fP, \fBsvnadmin\fP, \fBsvnserve\fP and
\fBsvnlook\fP programs, historical background, philosophical 
approaches and reasonings, etc., can be found at 
http://svnbook.red-bean.com/.

Run `svnversion --help' to access the built-in tool documentation.

src/subversion/subversion/tests/cmdline/merge_tree_conflict_tests.py  view on Meta::CPAN

                                       expected_disk,
                                       expected_status,
                                       expected_skip)


#----------------------------------------------------------------------

# Detect tree conflicts among files and directories,
# edited or deleted in a deep directory structure.
#
# See use cases 4-6 in notes/tree-conflicts/use-cases.txt for background.
# Note that we do not try to track renames.  The only difference from
# the behavior of Subversion 1.4 and 1.5 is the conflicted status of the
# parent directory.

# convenience definitions
leaf_edit = svntest.deeptrees.deep_trees_leaf_edit
tree_del = svntest.deeptrees.deep_trees_tree_del
leaf_del = svntest.deeptrees.deep_trees_leaf_del

disk_after_leaf_edit = svntest.deeptrees.deep_trees_after_leaf_edit

src/subversion/subversion/tests/cmdline/revert_tests.py  view on Meta::CPAN

  svntest.actions.run_and_verify_commit(wc_dir,
                                        expected_output,
                                        expected_status,
                                        None, wc_dir)

#----------------------------------------------------------------------

def revert_tree_conflicts_in_updated_files(sbox):
  "revert tree conflicts in updated files"

  # See use cases 1-3 in notes/tree-conflicts/use-cases.txt for background.

  svntest.actions.build_greek_tree_conflicts(sbox)
  wc_dir = sbox.wc_dir
  G = os.path.join(wc_dir, 'A', 'D', 'G')
  G_pi  = os.path.join(G, 'pi')
  G_rho = os.path.join(G, 'rho')
  G_tau = os.path.join(G, 'tau')

  # Duplicate wc for tests
  wc_dir_2 =  sbox.add_wc_path('2')

src/subversion/subversion/tests/cmdline/switch_tests.py  view on Meta::CPAN

                                        expected_disk,
                                        expected_status,
                                        None, None, None, None, None,
                                        False, '--ignore-ancestry')

#----------------------------------------------------------------------

# Detect tree conflicts among files and directories,
# edited or deleted in a deep directory structure.
#
# See use cases 1-3 in notes/tree-conflicts/use-cases.txt for background.
# Note that we do not try to track renames.  The only difference from
# the behavior of Subversion 1.4 and 1.5 is the conflicted status of the
# parent directory.

# convenience definitions
leaf_edit = svntest.deeptrees.deep_trees_leaf_edit
tree_del = svntest.deeptrees.deep_trees_tree_del
leaf_del = svntest.deeptrees.deep_trees_leaf_del

disk_after_leaf_edit = svntest.deeptrees.deep_trees_after_leaf_edit

src/subversion/subversion/tests/cmdline/update_tests.py  view on Meta::CPAN

                                        expected_output,
                                        expected_disk,
                                        expected_status,
                                        check_props = True)

#----------------------------------------------------------------------

# Detect tree conflicts among files and directories,
# edited or deleted in a deep directory structure.
#
# See use cases 1-3 in notes/tree-conflicts/use-cases.txt for background.

# convenience definitions
leaf_edit = svntest.deeptrees.deep_trees_leaf_edit
tree_del = svntest.deeptrees.deep_trees_tree_del
leaf_del = svntest.deeptrees.deep_trees_leaf_del

disk_after_leaf_edit = svntest.deeptrees.deep_trees_after_leaf_edit
disk_after_leaf_del = svntest.deeptrees.deep_trees_after_leaf_del
disk_after_tree_del = svntest.deeptrees.deep_trees_after_tree_del

src/subversion/tools/buildbot/master/public_html/buildbot.css  view on Meta::CPAN

	color: #999;
}

.table {
	border-spacing: 2px;
}

td.Project {
	color: #000;
	border: 1px solid #666666;
	background-color: #fff;
}

td.Event, td.Activity, td.Time, td.Builder {
/*	color: #333333; */
	border: 1px solid #666666;
	background-color: #eee;
	font-weight: normal;
}

td.Change {
	color: #fff;
	border: 1px solid #666666;
	background-color: #aaf;
}

/* LastBuild, BuildStep states */
.success {
	color: #FFFFFF;
	border: 1px solid #666666;
	background-color: #3b0;
}

.failure {
	color: #FFFFFF;
	border: 1px solid #666666;
	background-color: #d33;
}

.warnings {
	color: #FFFFFF;
	border: 1px solid #666666;
	background-color: #fa2;
}

.exception, td.offline {
	color: #FFFFFF;
	border: 1px solid #666666;
	background-color: #e0b0ff;
}

.start,.running, td.building {
	color: #555;
	border: 1px solid #666666;
	background-color: #fffc6c;
}

src/subversion/tools/dev/contribulyze.py  view on Meta::CPAN

  s += ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n'
  s += '<html><head>\n'
  s += '<meta http-equiv="Content-Type"'
  s += ' content="text/html; charset=UTF-8" />\n'
  if highlight_targets:
    s += '<style type="text/css">\n'
    s += ':target { border: 2px solid red; }\n'
    s += '</style>\n'
  s += '<title>%s</title>\n' % title
  s += '</head>\n\n'
  s += '<body style="text-color: black; background-color: white">\n\n'
  s += '<h1 style="text-align: center">%s</h1>\n\n' % page_heading
  s += '<hr />\n\n'
  return s


def html_footer():
  return '\n</body>\n</html>\n'


class Contributor(object):

src/subversion/tools/dist/collect_sigs.py  view on Meta::CPAN

    return "%dth" % N

shell_content = '''
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Signature collection for Subversion $version</title>
</head>
<body style="font-size: 14pt; text-align: justify;
  background-color: #f0f0f0; padding: 0 5%%">
<p>This page is used to collect <a href="%s/list">signatures</a> for the
proposed release of Apache Subversion $version.</p>
$content
</body>
</html>
''' % os.getenv('SCRIPT_NAME')

signature_area = '''
<hr/>
<form method="post" action="%s">

src/subversion/tools/dist/templates/nightly-candidates.ezt  view on Meta::CPAN


-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Subversion nightly tarballs (r[revnum])</title>
</head>
<body style="font-size: 14pt; text-align: justify;
  background-color: #f0f0f0; padding: 0 5%%">
<h1 style="font-size: 30pt; text-align: center;
  text-decoration: underline">WARNING</h1>

<p>The code you are about to download is an <i>automatically generated</i>
nightly release of Subversion (r[revnum]).</p>

<p>This distribution is automatically generated from the latest sources from
<a href="http://svn.apache.org/repos/asf/subversion/trunk/">Subversion trunk</a>.
It may not even compile, and is certainly <i>not</i> suitable for any sort of
production use.  This distribution has not been tested, and may cause any

src/subversion/tools/server-side/svnpubsub/irkerbridge.py  view on Meta::CPAN

      description='An SvnPubSub client that bridges the data to irker.',
      usage='Usage: %prog [options] CONFIG_FILE',
      )
  parser.add_option('--logfile',
      help='filename for logging')
  parser.add_option('--verbose', action='store_true',
      help="enable verbose logging")
  parser.add_option('--pidfile',
      help="the process' PID will be written to this file")
  parser.add_option('--daemon', action='store_true',
      help='run as a background daemon')

  options, extra = parser.parse_args(args)

  if len(extra) != 1:
    parser.error('CONFIG_FILE is requried')
  config_file = os.path.abspath(extra[0])

  logfile, pidfile = None, None
  if options.daemon:
    if options.logfile:

src/subversion/tools/server-side/svnpubsub/svnwcsub.py  view on Meta::CPAN

                      help='filename for logging')
    parser.add_option('--pidfile',
                      help="the process' PID will be written to this file")
    parser.add_option('--uid',
                      help='switch to this UID before running')
    parser.add_option('--gid',
                      help='switch to this GID before running')
    parser.add_option('--umask',
                      help='set this (octal) umask before running')
    parser.add_option('--daemon', action='store_true',
                      help='run as a background daemon')

    options, extra = parser.parse_args(args)

    if len(extra) != 1:
        parser.error('CONFIG_FILE is required')
    config_file = extra[0]

    if options.daemon and not options.logfile:
        parser.error('LOGFILE is required when running as a daemon')
    if options.daemon and not options.pidfile:

src/subversion/tools/xslt/svnindex.css  view on Meta::CPAN

  color: navy;
}

.footer {
  margin-top: 8em;
  padding: 0.5em 1em 0.5em;
  border: 1px solid;
  border-width: 1px 0;
  clear: both;
  border-color: rgb(30%,30%,50%) navy rgb(75%,80%,85%) navy;
  background: rgb(88%,90%,92%);
  font-size: 80%;
}

.svn {
  margin: 3em;
}

.rev {
  margin-right: 3px;
  padding-left: 3px;

src/subversion/tools/xslt/svnindex.css  view on Meta::CPAN

}

.file a {
  text-decoration: none;
  color: black;
}

.path {
  margin: 3px;
  padding: 3px;
  background: #FFCC66;
  font-size: 120%;
}

.updir {
  margin: 3px;
  padding: 3px;
  margin-left: 3em;
  background: #FFEEAA;
}

.file {
  margin: 3px;
  padding: 3px;
  margin-left: 3em;
  background: rgb(95%,95%,95%);
}

.file:hover {
  margin: 3px;
  padding: 3px;
  margin-left: 3em;
  background: rgb(100%,100%,90%);
/*  border: 1px black solid; */
}

.dir {
  margin: 3px;
  padding: 3px;
  margin-left: 3em;
  background: rgb(90%,90%,90%);
}

.dir:hover {
  margin: 3px;
  padding: 3px;
  margin-left: 3em;
  background: rgb(100%,100%,80%);
/*  border: 1px black solid; */
}



( run in 4.201 seconds using v1.01-cache-2.11-cpan-f56aa216473 )