<!DOCTYPE html><html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Mapping CVS Paths // P4Convert: User Guide</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1 with Perforce customizations" />
<link rel="home" href="copyright.html" title="P4Convert: User Guide" />
<link rel="up" href="chapter.config.html" title="Configuration" />
<link rel="prev" href="config.general.cvs.html" title="General CVS converter settings." />
<link rel="next" href="config.labeling_CVS_paths.html" title="Labeling CVS Paths" />
<meta name="Section-title" content="Mapping CVS Paths" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="vendor/bootstrap/css/bootstrap.css" />
<link rel="stylesheet" href="vendor/prettify/prettify.css" />
<link rel="stylesheet" href="css/perforce.css" />
<link rel="stylesheet" href="css/print.css" media="print" />
<link rel="shortcut icon" href="images/favicon.ico" />
<!--[if lt IE 9]>
<script type="text/javascript" src="vendor/respond/respond.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/ie.css"/>
<![endif]-->
</head>
<body><a id="page-top"></a><div id="header">
<div class="container"><button name="toc" type="button" class="toc"><span class="glyphicon glyphicon-list"></span></button><span class="logo"><a href="http://www.perforce.com/documentation"></a></span><h1><a href="index.html" class="title"><span class="brand"></span><span class="guide-title">P4Convert: User Guide</span><span class="guide-subtitle">
(April 2015)
</span></a></h1><a title="Download a PDF version of this guide" class="pdf" href="ethel.pdf"><span class="glyphicon glyphicon-book"></span></a><button name="search" type="button" class="search" title="Search this guide"><span class="glyphicon glyphicon-search"></span></button></div>
<div id="progress"></div>
</div>
<div id="content" class="content" tabindex="-1">
<div class="container">
<!---->
<div class="section" id="config.mapping_CVS_paths">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both">Mapping CVS Paths</h2>
</div>
</div>
</div>
<p>
CVS paths are mapped into Perforce using the original RCS file structure, but
prefixed with the branch name. The converter uses a branch name 'main' for the
initial 1.1 branch and the symbol names for subsequent branches.
</p>
<p>
If requires an optional path map can be provided to remap the CVS path to a new
structure within Perforce. When designing a path map, care must be taken to
insure that all CVS paths have a destination mapping.
</p>
<div class="orderedlist">
<ol class="orderedlist" type="1">
<li class="listitem">
<p>
To enable CVS path mapping create a file called <em class="parameter"><code>path.map</code></em>
with regex and group match.
</p>
</li>
<li class="listitem">
<p>
Only the first matching entry is used.
</p>
</li>
<li class="listitem">
<p>
The regex and group match are seperated by ', ' (or in regex terms ',\s+').
</p>
</li>
<li class="listitem">
<p>
Lines starting with '#' are ignored.
</p>
</li>
</ol>
</div>
<p>
For example, 'trunk' is renamed to 'main', but other entries are left as-is.
</p><pre lang="perl" class="programlisting">
# path.map
trunk/(.*), //import/main/{1}
(.*), //import/{1}
</pre><p>
Note: if no file is found the default 'depot' and 'subPath' options are used to
generate the map, preserving the original behaviour.
CVS paths will always stat with the 'branch' name. 'main' for 1.1 and the symbol
for other branches.
</p><pre lang="perl" class="programlisting">
# path.map
main/projA/(.*), //import/projA/MAIN/{1}
release_(.*)/projA/(.*), //import/projA/REL{1}/{2}
(.*)/projA/(.*), //import/projA/TAG-{1}/{2}
(.*), //import/unexpected/{1}
</pre><p>
</p>
<div class="note admonition">
<h3 class="title">Note</h3>
Adding a catch all is a good idea (as shown in the last line with the
'unexpected' directory).
</div>
<p>
</p>
</div>
</div>
</div>
<div id="nav" class="toc"></div>
<div id="search">
<div class="input"><input id="search-text" type="search" placeholder="Search this guide" /><button name="clear" type="button" class="clear"><span class="glyphicon glyphicon-remove-sign"></span></button></div>
<div class="controls">
<div class="substring"><input type="checkbox" class="substring" name="substring" value="hide" checked="1" /><span class="description">Hide partial matches</span></div>
<div class="highlighter"><input type="checkbox" class="highlight" name="highlight" value="show" checked="1" /><span class="description">Highlight matches</span></div>
</div>
<div class="count"><span class="number">0</span> matching pages
</div>
<ul class="results"></ul>
</div>
<div id="footer">
<div class="container"><a accesskey="p" class="nav-prev" title="Press 'p', or left-arrow, to view the previous page" href="config.general.cvs.html"><span class="glyphicon glyphicon-chevron-left"></span><div class="label">Previous</div>
<div class="title">General CVS converter settings.</div></a><a accesskey="n" class="nav-next" title="Press 'n', or right-arrow, to view the next page" href="config.labeling_CVS_paths.html"><span class="glyphicon glyphicon-chevron-right"></span><div class="label">Next</div>
<div class="title">Labeling CVS Paths</div></a></div>
</div><script type="text/javascript" src="vendor/jquery/jquery-1.11.3.min.js"></script><script type="text/javascript" src="vendor/bootstrap/js/bootstrap.js"></script><script type="text/javascript" src="vendor/cookie/jquery.cookie.js"></script><script type="text/javascript" src="vendor/highlight/jquery.highlight.js"></script><script type="text/javascript" src="vendor/jsrender/jsrender.js"></script><script type="text/javascript" src="vendor/touchwipe/jquery.touchwipe.min.js"></script><script type="text/javascript" src="vendor/prettify/prettify.js"></script><script defer="1" type="text/javascript" src="js/index.js"></script><script defer="1" type="text/javascript" src="js/toc.js"></script><script defer="1" type="text/javascript" src="js/perforce.js"></script></body>
</html>