<!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>Setup // 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="copyright.html" title="P4Convert: User Guide" />
<link rel="prev" href="index.html" title="What is p4convert for?" />
<link rel="next" href="chapter.config.html" title="Configuration" />
<meta name="Section-title" content="Setup" />
<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><noscript>
<div id="noscript">JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</div>
</noscript>
<div id="header"><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><button name="search" type="button" class="search"><span class="glyphicon glyphicon-search"></span></button></div>
<div id="content" class="content" tabindex="-1">
<div class="container">
<!---->
<div class="chapter" id="chapter.setup">
<div class="titlepage">
<div>
<div>
<h1 class="title">Setup</h1>
</div>
</div>
</div>
<div class="section" id="setup.requirements">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both">System Requirements</h2>
</div>
</div>
</div>
<div class="orderedlist">
<ol class="orderedlist" type="1">
<li class="listitem">
<p>
[SVN] an unzipped Subversion dump file of the repository to be converted
(generated without the <em class="parameter"><code>--delta</code></em> flag).
</p>
</li>
<li class="listitem">
<p>
[CVS] an unzipped CVSROOT directory containing the RCS files of the
repository to be converted.
</p>
</li>
<li class="listitem">
<p>
System must have <span class="bold"><strong>Java SE Runtime 1.7</strong></span>.
</p>
</li>
<li class="listitem">
<p>
System must have the Perforce Server binaries 2010.2 or greater.
</p>
</li>
<li class="listitem">
<p>
[Import Mode] A running Perforce Server (typically empty) with no
pending changes in the conversion area.
</p>
</li>
<li class="listitem">
<p>
[Convert Mode] An empty Perforce Root directory for the generated
archive and journal files.
</p>
</li>
</ol>
</div>
<div class="section" id="setup.requirements.resource_tips">
<div class="titlepage">
<div>
<div>
<h3 class="title">Resource Tips:</h3>
</div>
</div>
</div>
<p>
Running some conversions, particularly in Conversion Mode can
be very memory intensive, as a mapping of revisions and integrations
is kept in memory. For large conversions, or conversions with
excessive branching, more memory will needed by the JVM.
</p>
<p>
The <em class="parameter"><code>--info</code></em> option will scan the Subversion dump
file and report usage data to help estimate the required memory for
Convert Mode. For example:
</p><pre lang="bash" class="programlisting">
java -jar p4convert.jar --type=SVN --repo=<path_to_svn_dumpfile> --info
</pre><p>
Use the <em class="parameter"><code>-Xmx</code></em> flags to increase the memory
allocated to the JVM. For example, to allocate 64GB (65536MB) use:
</p><pre lang="bash" class="programlisting">
java -Xmx65536M -jar p4convert.jar --config=myConfig.cfg
</pre></div>
</div>
<div class="section" id="setup.caveats">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both">Caveats</h2>
</div>
</div>
</div>
<div class="orderedlist">
<ol class="orderedlist" type="1">
<li class="listitem">
<p>
The following table lists the combinations of tested operating systems
and Perforce Server versions.
</p>
<div class="informaltable">
<table border="0">
<colgroup>
<col class="os" />
<col class="10.2" />
<col class="14.1" />
</colgroup>
<thead>
<tr>
<th>
<p>Operating System</p>
</th>
<th>
<p>10.2</p>
</th>
<th>
<p>14.1</p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>Ubuntu 10.04</p>
</td>
<td>
<p>supported</p>
</td>
<td>
<p>supported</p>
</td>
</tr>
<tr>
<td>
<p>Darwin 11.4.0</p>
</td>
<td>
<p>supported</p>
</td>
<td>
<p>supported</p>
</td>
</tr>
<tr>
<td>
<p>Windows 7x64</p>
</td>
<td>
<p>supported</p>
</td>
<td>
<p>supported</p>
</td>
</tr>
<tr>
<td>
<p>SunOS 5.10</p>
</td>
<td>
<p>supported</p>
</td>
<td>
<p>supported</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>
It is likely that other combinations will work, however it is not
possible to test all combinations.
</p>
<p>
Please contact Perforce if you have any OS or version queries.
</p>
</li>
<li class="listitem">
<p>
[Import Mode] Symbolic links are not supported in Import Mode on
Windows.
</p>
</li>
<li class="listitem">
<p>
Perforce keyword expansions are different from the Subversion
standard and may yield different results when synced. CVS keyword
detection is not yet supported.
</p>
</li>
</ol>
</div>
</div>
<div class="section" id="setup.usage">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both">Setup and Usage</h2>
</div>
</div>
</div>
<p>
Download the self-contained JAR from Perforce and check that Java SE
runtime is installed with version 1.7 or greater.
</p>
<p>
For usage details, execute the jar with no options:
</p><pre lang="bash" class="programlisting">
usage: java -jar p4convert.jar
-c,--config <arg> Use configuration file
-d,--default Generate a configuration file
-E,--end <arg> End revision, for incremental (SVN)
-e,--extract <arg> Extract a revision
-i,--info Report on repository usage
-r,--repo <arg> Repository file/path
-S,--start <arg> Start revision, for incremental (SVN)
-t,--type <arg> SCM type (CVS | SVN)
--tags <arg> find tags to specified depth
--tree <arg> (with --info), display tree to specified depth
-u,--users List repository users
-v,--version Version string
Example: standard usage.
java -jar p4convert.jar --config=myFile.cfg
Example: generate a CVS configuration file.
java -jar p4convert.jar --type=CVS --default
Example: report Subversion repository usage.
java -jar p4convert.jar --type=SVN --repo=/path/to/repo.dump --info
</pre><p>
To create a default configuration file using the <em class="parameter"><code>--default</code></em>
option. You will need to specify the SCM type using <em class="parameter"><code>--type</code></em>
(with a value of SVN or CVS). The generated file (default.cfg) will
contain a set of default configuration options based on your platform.
Rename the <em class="parameter"><code>default.cfg</code></em> to your own configuration.
To run a conversion using your configuration file, execute the jar with
the <em class="parameter"><code>--config</code></em> flag specifying you config file.
For example:
</p><pre class="programlisting">
java -jar p4convert.jar --config=myFile.cfg
</pre></div>
<div class="section" id="setup.generate_dump_file">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both">Generating a Subversion Dump file</h2>
</div>
</div>
</div>
<p>
For Subversion conversions, both Import and Convert modes require a
Subversion dumpfile as the historic data source. A dumpfile can be
generated in several different ways, two of which are detailed below:
</p>
<div class="itemizedlist">
<ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p>
Using the svnadmin command:
</p><pre lang="bash" class="programlisting">
svnadmin dump <em class="replaceable"><code>local_repo_path</code></em> > dumpfile.dmp
</pre><p>
Replace <em class="replaceable"><code>local_repo_path</code></em> with the path to
the Subversion repo. Do not use the <em class="parameter"><code>--delta</code></em>
flag option as the results cannot be parsed by the conversion tool.
</p>
</li>
<li class="listitem">
<p>
Using the remote dump command:
</p><pre lang="bash" class="programlisting">
rsvndump <em class="replaceable"><code>url</code></em> > dumpfile.dmp
</pre><p>
Replacing <em class="replaceable"><code>url</code></em> with the remote Subversion
server. For example: <code class="literal">http://</code> or
<code class="literal">file://</code> or <code class="literal">svn://</code>. Note that
for large servers generating the dump file locally is significantly
faster, so you might also consider creating a local copy of the
subversion depot using
<a class="link" href="http://svn.apache.org/repos/asf/subversion/trunk/notes/svnsync.txt" target="_top">svnsync</a>,
before generating the dump file.
</p>
</li>
</ul>
</div>
</div>
<div class="section" id="setup.cvs_root">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both">Selecting a CVS root</h2>
</div>
</div>
</div>
<p>
For CVS conversions, both Import and Convert modes require a path
containining RCS files as the historic data source. CVSROOT can be filtered
or imported on a per module basis. The converter will only import file
revisions under the specified CVSROOT path.
</p>
</div>
</div>
</div>
</div>
<div id="nav" class="toc">
<div class="cover"></div>
<ul class="toc nav">
<li><a href="index.html"><span class="prefix"></span>What is p4convert for?</a><a class="expander"><span class="glyphicon glyphicon-chevron-down"></span></a><ul class="nav">
<li><a href="index.html#about.import_mode"><span class="prefix"></span>Import Mode (front door)</a></li>
<li><a href="index.html#about.convert_mode"><span class="prefix"></span>Convert Mode (back door)</a></li>
<li><a href="index.html#about.incremental_updates"><span class="prefix"></span>Incremental Updates (front door)</a></li>
</ul>
</li>
<li class="active"><a href="chapter.setup.html"><span class="prefix">1. </span>Setup</a><a class="expander"><span class="glyphicon glyphicon-chevron-down"></span></a><ul class="nav">
<li><a href="chapter.setup.html#setup.requirements"><span class="prefix"></span>System Requirements</a><a class="expander"><span class="glyphicon glyphicon-chevron-down"></span></a><ul class="nav">
<li><a href="chapter.setup.html#setup.requirements.resource_tips"><span class="prefix"></span>Resource Tips:</a></li>
</ul>
</li>
<li><a href="chapter.setup.html#setup.caveats"><span class="prefix"></span>Caveats</a></li>
<li><a href="chapter.setup.html#setup.usage"><span class="prefix"></span>Setup and Usage</a></li>
<li><a href="chapter.setup.html#setup.generate_dump_file"><span class="prefix"></span>Generating a Subversion Dump file</a></li>
<li><a href="chapter.setup.html#setup.cvs_root"><span class="prefix"></span>Selecting a CVS root</a></li>
</ul>
</li>
<li><a href="chapter.config.html"><span class="prefix">2. </span>Configuration</a><a class="expander"><span class="glyphicon glyphicon-chevron-down"></span></a><ul class="nav">
<li><a href="chapter.config.html#config.general.core"><span class="prefix"></span>Core converter settings.</a></li>
<li><a href="chapter.config.html#config.general.p4"><span class="prefix"></span>General Perforce converter settings.</a></li>
<li><a href="chapter.config.html#config.general.svn"><span class="prefix"></span>General Subversion converter settings.</a></li>
<li><a href="chapter.config.html#config.general.cvs"><span class="prefix"></span>General CVS converter settings.</a></li>
<li><a href="chapter.config.html#config.mapping_CVS_paths"><span class="prefix"></span>Mapping CVS Paths</a></li>
<li><a href="chapter.config.html#config.labeling_CVS_paths"><span class="prefix"></span>Labeling CVS Paths</a></li>
<li><a href="chapter.config.html#config.general.selective_and_incremental_conversions"><span class="prefix"></span>Subversion: Selective and Incremental Conversions</a></li>
<li><a href="chapter.config.html#config.filtering_subversion_paths"><span class="prefix"></span>Filtering Subversion paths</a></li>
<li><a href="chapter.config.html#config.labeling_subversion_paths"><span class="prefix"></span>Labeling Subversion Paths</a></li>
<li><a href="chapter.config.html#config.changelist_offset_options"><span class="prefix"></span>Changelist Offset options</a></li>
<li><a href="chapter.config.html#config.unicode_support"><span class="prefix"></span>Unicode Support</a><a class="expander"><span class="glyphicon glyphicon-chevron-down"></span></a><ul class="nav">
<li><a href="chapter.config.html#config.unicode_support.normalization"><span class="prefix"></span>Normalisation</a></li>
<li><a href="chapter.config.html#config.unicode_support.subversion_properties"><span class="prefix"></span>Subversion Properties</a></li>
</ul>
</li>
<li><a href="chapter.config.html#config.advanced"><span class="prefix"></span>Advanced Configuration</a><a class="expander"><span class="glyphicon glyphicon-chevron-down"></span></a><ul class="nav">
<li><a href="chapter.config.html#config.advanced.directory_properties"><span class="prefix"></span>Directory Properties</a></li>
<li><a href="chapter.config.html#config.advanced.empty_changelists"><span class="prefix"></span>Empty changelists</a></li>
<li><a href="chapter.config.html#config.advanced.username_translation"><span class="prefix"></span>Username translation</a></li>
<li><a href="chapter.config.html#config.advanced.binary_file_detection"><span class="prefix"></span>Binary file detection</a></li>
<li><a href="chapter.config.html#config.advanced.changelist_description_format"><span class="prefix"></span>Changelist Description Format</a></li>
<li><a href="chapter.config.html#config.advanced.case_sensitivity"><span class="prefix"></span>Case Sensitivity</a></li>
<li><a href="chapter.config.html#config.advanced.rcs_keyword_expansion"><span class="prefix"></span>RCS Keyword expansion (svn:keywords)</a></li>
<li><a href="chapter.config.html#config.advanced.merge_information"><span class="prefix"></span>Merge Information (svn:mergeinfo)</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="chapter.running.html"><span class="prefix">3. </span>Running P4Convert</a><a class="expander"><span class="glyphicon glyphicon-chevron-down"></span></a><ul class="nav">
<li><a href="chapter.running.html#running.import_mode"><span class="prefix"></span>Import Mode</a><a class="expander"><span class="glyphicon glyphicon-chevron-down"></span></a><ul class="nav">
<li><a href="chapter.running.html#running.import_mode.configuration"><span class="prefix"></span>Configuration options specific to Import Mode</a></li>
</ul>
</li>
<li><a href="chapter.running.html#running.convert_mode"><span class="prefix"></span>Convert Mode</a><a class="expander"><span class="glyphicon glyphicon-chevron-down"></span></a><ul class="nav">
<li><a href="chapter.running.html#running.convert_mode.configuration"><span class="prefix"></span>Configuration options specific to Conversion Mode</a></li>
</ul>
</li>
<li><a href="chapter.running.html#running.post_conversion"><span class="prefix"></span>Post Conversion [Conversion Mode]</a></li>
</ul>
</li>
<li><a href="chapter.notes.html"><span class="prefix">4. </span>Notes</a><a class="expander"><span class="glyphicon glyphicon-chevron-down"></span></a><ul class="nav">
<li><a href="chapter.notes.html#notes.keyword_expansion_issues"><span class="prefix"></span>Keyword Expansion Issues:</a></li>
<li><a href="chapter.notes.html#notes.verification"><span class="prefix"></span>Verification</a></li>
<li><a href="chapter.notes.html#notes.output"><span class="prefix"></span>Output and Logs</a><a class="expander"><span class="glyphicon glyphicon-chevron-down"></span></a><ul class="nav">
<li><a href="chapter.notes.html#notes.output.console"><span class="prefix"></span>Console output and logging configuration options</a></li>
<li><a href="chapter.notes.html#notes.output.future"><span class="prefix"></span>These options are reserved for testing or future enhancements:</a></li>
<li><a href="chapter.notes.html#notes.output.reading"><span class="prefix"></span>Reading Console/Logging output</a></li>
</ul>
</li>
<li><a href="chapter.notes.html#notes.errors"><span class="prefix"></span>Errors</a></li>
</ul>
</li>
</ul>
</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="index.html"><span class="glyphicon glyphicon-chevron-left"></span><div class="label">Previous</div>
<div class="title">What is p4convert for?</div></a><a accesskey="n" class="nav-next" title="Press 'n', or right-arrow, to view the next page" href="chapter.config.html"><span class="glyphicon glyphicon-chevron-right"></span><div class="label">Next</div>
<div class="title">Configuration</div></a></div>
</div><script type="text/javascript" src="vendor/jquery/jquery-1.10.2.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 type="text/javascript" src="js/index.js"></script><script type="text/javascript" src="js/perforce.js"></script></body>
</html>