summaryrefslogtreecommitdiffstats
path: root/git-p4.html
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-12-18 16:43:11 -0800
committerJunio C Hamano <gitster@pobox.com>2012-12-18 16:43:11 -0800
commit9d9711544dc3090db6e5c52f9ce9c300bf4f5c14 (patch)
tree23257b9801739fd96c9e82ef98a17500dce9f88e /git-p4.html
parent9629d4f49e5ffcff5c5beb5c40bedcffcabcd905 (diff)
downloadgit-htmldocs-9d9711544dc3090db6e5c52f9ce9c300bf4f5c14.tar.gz
Autogenerated HTML docs for v1.8.1-rc2-5-g252f9
Diffstat (limited to 'git-p4.html')
-rw-r--r--git-p4.html502
1 files changed, 355 insertions, 147 deletions
diff --git a/git-p4.html b/git-p4.html
index bb522b8f6..24624aef3 100644
--- a/git-p4.html
+++ b/git-p4.html
@@ -2,15 +2,25 @@
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 8.6.8" />
<title>git-p4(1)</title>
<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
}
body {
@@ -35,13 +45,8 @@ strong {
color: #083194;
}
-tt {
- color: navy;
-}
-
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
- font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
@@ -59,9 +64,11 @@ h3 {
h3 + * {
clear: left;
}
+h5 {
+ font-size: 1.0em;
+}
div.sectionbody {
- font-family: serif;
margin-left: 0;
}
@@ -77,45 +84,48 @@ p {
ul, ol, li > p {
margin-top: 0;
}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
-pre {
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
padding: 0;
margin: 0;
}
-span#author {
+
+#author {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
font-size: 1.1em;
}
-span#email {
+#email {
}
-span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
+#revnumber, #revdate, #revremark {
}
-div#footer {
- font-family: sans-serif;
+#footer {
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
margin-top: 4.0em;
}
-div#footer-text {
+#footer-text {
float: left;
padding-bottom: 0.5em;
}
-div#footer-badges {
+#footer-badges {
float: right;
padding-bottom: 0.5em;
}
-div#preamble {
+#preamble {
margin-top: 1.5em;
margin-bottom: 1.5em;
}
-div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
+div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
margin-top: 1.0em;
@@ -135,7 +145,6 @@ div.content { /* Block element content. */
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
- font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
@@ -157,13 +166,15 @@ div.content + div.title {
div.sidebarblock > div.content {
background: #ffffee;
- border: 1px solid silver;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
padding: 0.5em;
}
@@ -171,8 +182,8 @@ div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
- border-left: 5px solid #dddddd;
- color: #777777;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
}
div.quoteblock > div.attribution {
@@ -180,8 +191,9 @@ div.quoteblock > div.attribution {
text-align: right;
}
-div.verseblock > div.content {
- white-space: pre;
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
@@ -254,35 +266,12 @@ div.compact div, div.compact div {
margin-bottom: 0.1em;
}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-family: sans-serif;
- font-weight: bold;
-}
tfoot {
font-weight: bold;
}
td > div.verse {
white-space: pre;
}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overriden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
div.hdlist {
margin-top: 0.8em;
@@ -339,25 +328,32 @@ span.footnote, span.footnoteref {
min-width: 100px;
}
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
@media print {
- div#footer-badges { display: none; }
+ #footer-badges { display: none; }
}
-div#toc {
+#toc {
margin-bottom: 2.5em;
}
-div#toctitle {
+#toctitle {
color: #527bbd;
- font-family: sans-serif;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
margin-bottom: 0.1em;
}
-div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
margin-top: 0;
margin-bottom: 0;
}
@@ -373,69 +369,173 @@ div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
-/* Overrides for manpage documents */
-h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
}
-h2 {
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overriden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
border-style: none;
}
-div.sectionbody {
- margin-left: 5%;
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
}
-
-@media print {
- div#toc { display: none; }
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
+thead, p.tableblock.header {
font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
}
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
}
-div.quoteblock-attribution {
- padding-top: 0.5em;
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
text-align: right;
}
-div.verseblock-content {
- white-space: pre;
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
}
-div.exampleblock-content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
}
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
+
</style>
<script type="text/javascript">
/*<![CDATA[*/
-window.onload = function(){asciidoc.footnotes();}
var asciidoc = { // Namespace.
/////////////////////////////////////////////////////////////////////
@@ -477,7 +577,7 @@ toc: function (toclevels) {
function tocEntries(el, toclevels) {
var result = new Array;
- var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
// Function that scans the DOM tree for header elements (the DOM2
// nodeIterator API would be a better technique but not supported by all
// browsers).
@@ -497,6 +597,25 @@ toc: function (toclevels) {
}
var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
var entries = tocEntries(document.getElementById("content"), toclevels);
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
@@ -524,24 +643,44 @@ toc: function (toclevels) {
*/
footnotes: function () {
- var cont = document.getElementById("content");
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
var spans = cont.getElementsByTagName("span");
var refs = {};
var n = 0;
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnote") {
n++;
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
noteholder.innerHTML +=
"<div class='footnote' id='_footnote_" + n + "'>" +
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
n + "</a>. " + note + "</div>";
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
var id =spans[i].getAttribute("id");
if (id != null) refs["#"+id] = n;
}
@@ -561,13 +700,36 @@ footnotes: function () {
}
}
}
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
}
}
+asciidoc.install();
/*]]>*/
</script>
</head>
-<body>
+<body class="manpage">
<div id="header">
<h1>
git-p4(1) Manual Page
@@ -580,16 +742,19 @@ git-p4(1) Manual Page
</div>
</div>
<div id="content">
+<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
-<div class="verseblock-content"><em>git p4 clone</em> [&lt;sync options&gt;] [&lt;clone options&gt;] &lt;p4 depot path&gt;&#8230;
+<pre class="content"><em>git p4 clone</em> [&lt;sync options&gt;] [&lt;clone options&gt;] &lt;p4 depot path&gt;&#8230;
<em>git p4 sync</em> [&lt;sync options&gt;] [&lt;p4 depot path&gt;&#8230;]
<em>git p4 rebase</em>
-<em>git p4 submit</em> [&lt;submit options&gt;] [&lt;master branch name&gt;]</div>
-<div class="verseblock-attribution">
+<em>git p4 submit</em> [&lt;submit options&gt;] [&lt;master branch name&gt;]</pre>
+<div class="attribution">
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>This command provides a way to interact with p4 repositories
@@ -602,6 +767,8 @@ Submit git changes back to p4 using <em>git p4 submit</em>. The command
<em>git p4 rebase</em> does a sync plus rebases the current branch onto
the updated p4 remote branch.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
<div class="ulist"><ul>
@@ -611,7 +778,7 @@ Clone a repository:
</p>
<div class="listingblock">
<div class="content">
-<pre><tt>$ git p4 clone //depot/path/project</tt></pre>
+<pre><code>$ git p4 clone //depot/path/project</code></pre>
</div></div>
</li>
<li>
@@ -620,9 +787,9 @@ Do some work in the newly created git repository:
</p>
<div class="listingblock">
<div class="content">
-<pre><tt>$ cd project
+<pre><code>$ cd project
$ vi foo.h
-$ git commit -a -m "edited foo.h"</tt></pre>
+$ git commit -a -m "edited foo.h"</code></pre>
</div></div>
</li>
<li>
@@ -632,7 +799,7 @@ Update the git repository with recent changes from p4, rebasing your
</p>
<div class="listingblock">
<div class="content">
-<pre><tt>$ git p4 rebase</tt></pre>
+<pre><code>$ git p4 rebase</code></pre>
</div></div>
</li>
<li>
@@ -641,19 +808,22 @@ Submit your commits back to p4:
</p>
<div class="listingblock">
<div class="content">
-<pre><tt>$ git p4 submit</tt></pre>
+<pre><code>$ git p4 submit</code></pre>
</div></div>
</li>
</ul></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_commands">COMMANDS</h2>
<div class="sectionbody">
-<h3 id="_clone">Clone</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_clone">Clone</h3>
<div class="paragraph"><p>Generally, <em>git p4 clone</em> is used to create a new git directory
from an existing p4 repository:</p></div>
<div class="listingblock">
<div class="content">
-<pre><tt>$ git p4 clone //depot/path/project</tt></pre>
+<pre><code>$ git p4 clone //depot/path/project</code></pre>
</div></div>
<div class="paragraph"><p>This:</p></div>
<div class="olist arabic"><ol class="arabic">
@@ -678,24 +848,26 @@ Creates a local branch, <em>master</em> from this remote and checks it out.
the depot path:</p></div>
<div class="listingblock">
<div class="content">
-<pre><tt>$ git p4 clone //depot/path/project@all</tt></pre>
+<pre><code>$ git p4 clone //depot/path/project@all</code></pre>
</div></div>
-<h3 id="_sync">Sync</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_sync">Sync</h3>
<div class="paragraph"><p>As development continues in the p4 repository, those changes can
be included in the git repository using:</p></div>
<div class="listingblock">
<div class="content">
-<pre><tt>$ git p4 sync</tt></pre>
+<pre><code>$ git p4 sync</code></pre>
</div></div>
<div class="paragraph"><p>This command finds new changes in p4 and imports them as git commits.</p></div>
<div class="paragraph"><p>P4 repositories can be added to an existing git repository using
<em>git p4 sync</em> too:</p></div>
<div class="listingblock">
<div class="content">
-<pre><tt>$ mkdir repo-git
+<pre><code>$ mkdir repo-git
$ cd repo-git
$ git init
-$ git p4 sync //path/in/your/perforce/depot</tt></pre>
+$ git p4 sync //path/in/your/perforce/depot</code></pre>
</div></div>
<div class="paragraph"><p>This imports the specified depot into
<em>refs/remotes/p4/master</em> in an existing git repository. The
@@ -705,7 +877,9 @@ be used for the p4 content.</p></div>
will be fetched and consulted first during a <em>git p4 sync</em>. Since
importing directly from p4 is considerably slower than pulling changes
from a git remote, this can be useful in a multi-developer environment.</p></div>
-<h3 id="_rebase">Rebase</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_rebase">Rebase</h3>
<div class="paragraph"><p>A common working pattern is to fetch the latest changes from the p4 depot
and merge them with local uncommitted changes. Often, the p4 repository
is the ultimate location for all code, thus a rebase workflow makes
@@ -713,9 +887,11 @@ sense. This command does <em>git p4 sync</em> followed by <em>git rebase</em> t
local commits on top of updated p4 changes.</p></div>
<div class="listingblock">
<div class="content">
-<pre><tt>$ git p4 rebase</tt></pre>
+<pre><code>$ git p4 rebase</code></pre>
</div></div>
-<h3 id="_submit">Submit</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_submit">Submit</h3>
<div class="paragraph"><p>Submitting changes from a git repository back to the p4 repository
requires a separate p4 client workspace. This should be specified
using the <em>P4CLIENT</em> environment variable or the git configuration
@@ -725,12 +901,12 @@ will be created and populated if it does not already exist.</p></div>
the <em>p4/master</em> branch, use:</p></div>
<div class="listingblock">
<div class="content">
-<pre><tt>$ git p4 submit</tt></pre>
+<pre><code>$ git p4 submit</code></pre>
</div></div>
<div class="paragraph"><p>To specify a branch other than the current one, use:</p></div>
<div class="listingblock">
<div class="content">
-<pre><tt>$ git p4 submit topicbranch</tt></pre>
+<pre><code>$ git p4 submit topicbranch</code></pre>
</div></div>
<div class="paragraph"><p>The upstream reference is generally <em>refs/remotes/p4/master</em>, but can
be overridden using the <em>--origin=</em> command-line option.</p></div>
@@ -739,9 +915,13 @@ be overridden using the <em>--origin=</em> command-line option.</p></div>
according to the author of the git commit. This option requires admin
privileges in p4, which can be granted using <em>p4 protect</em>.</p></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_options">OPTIONS</h2>
<div class="sectionbody">
-<h3 id="_general_options">General options</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_general_options">General options</h3>
<div class="paragraph"><p>All commands except clone accept these options.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
@@ -761,7 +941,9 @@ privileges in p4, which can be granted using <em>p4 protect</em>.</p></div>
</p>
</dd>
</dl></div>
-<h3 id="_sync_options">Sync options</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_sync_options">Sync options</h3>
<div class="paragraph"><p>These options can be used in the initial <em>clone</em> as well as in
subsequent <em>sync</em> operations.</p></div>
<div class="dlist"><dl>
@@ -779,8 +961,8 @@ subsequent <em>sync</em> operations.</p></div>
git repository:</p></div>
<div class="listingblock">
<div class="content">
-<pre><tt> $ git init
- $ git p4 sync --branch=refs/remotes/p4/proj2 //depot/proj2</tt></pre>
+<pre><code> $ git init
+ $ git p4 sync --branch=refs/remotes/p4/proj2 //depot/proj2</code></pre>
</div></div>
</dd>
<dt class="hdlist1">
@@ -874,7 +1056,9 @@ git repository:</p></div>
</p>
</dd>
</dl></div>
-<h3 id="_clone_options">Clone options</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_clone_options">Clone options</h3>
<div class="paragraph"><p>These options can be used in an initial <em>clone</em>, along with the <em>sync</em>
options described above.</p></div>
<div class="dlist"><dl>
@@ -905,7 +1089,9 @@ options described above.</p></div>
</p>
</dd>
</dl></div>
-<h3 id="_submit_options">Submit options</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_submit_options">Submit options</h3>
<div class="paragraph"><p>These options can be used to modify <em>git p4 submit</em> behavior.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
@@ -981,7 +1167,9 @@ options described above.</p></div>
</p>
</dd>
</dl></div>
-<h3 id="_rebase_options">Rebase options</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_rebase_options">Rebase options</h3>
<div class="paragraph"><p>These options can be used to modify <em>git p4 rebase</em> behavior.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
@@ -994,6 +1182,9 @@ options described above.</p></div>
</dd>
</dl></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_depot_path_syntax">DEPOT PATH SYNTAX</h2>
<div class="sectionbody">
<div class="paragraph"><p>The p4 depot path argument to <em>git p4 sync</em> and <em>git p4 clone</em> can
@@ -1042,6 +1233,8 @@ p4 revision specifier on the end:</p></div>
</dl></div>
<div class="paragraph"><p>See <em>p4 help revisions</em> for the full syntax of p4 revision specifiers.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_client_spec">CLIENT SPEC</h2>
<div class="sectionbody">
<div class="paragraph"><p>The p4 client specification is maintained with the <em>p4 client</em> command
@@ -1068,6 +1261,8 @@ variable <em>git-p4.client</em> takes precedence if it exists. Otherwise,
normal p4 mechanisms of determining the client are used: environment
variable P4CLIENT, a file referenced by P4CONFIG, or the local host name.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_branch_detection">BRANCH DETECTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>P4 does not have the same concept of a branch as git. Instead,
@@ -1083,18 +1278,18 @@ subdirectories in p4, and to generate these as branches in git.</p></div>
<div class="paragraph"><p>For example, if the P4 repository structure is:</p></div>
<div class="listingblock">
<div class="content">
-<pre><tt>//depot/main/...
-//depot/branch1/...</tt></pre>
+<pre><code>//depot/main/...
+//depot/branch1/...</code></pre>
</div></div>
<div class="paragraph"><p>And "p4 branch -o branch1" shows a View line that looks like:</p></div>
<div class="listingblock">
<div class="content">
-<pre><tt>//depot/main/... //depot/branch1/...</tt></pre>
+<pre><code>//depot/main/... //depot/branch1/...</code></pre>
</div></div>
<div class="paragraph"><p>Then this <em>git p4 clone</em> command:</p></div>
<div class="listingblock">
<div class="content">
-<pre><tt>git p4 clone --detect-branches //depot@all</tt></pre>
+<pre><code>git p4 clone --detect-branches //depot@all</code></pre>
</div></div>
<div class="paragraph"><p>produces a separate branch in <em>refs/remotes/p4/</em> for //depot/main,
called <em>master</em>, and one for //depot/branch1 called <em>depot/branch1</em>.</p></div>
@@ -1109,10 +1304,12 @@ presence of the p4 branch. Without p4 branches, the same result will
occur with:</p></div>
<div class="listingblock">
<div class="content">
-<pre><tt>git config git-p4.branchList main:branch1
-git p4 clone --detect-branches //depot@all</tt></pre>
+<pre><code>git config git-p4.branchList main:branch1
+git p4 clone --detect-branches //depot@all</code></pre>
</div></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_performance">PERFORMANCE</h2>
<div class="sectionbody">
<div class="paragraph"><p>The fast-import mechanism used by <em>git p4</em> creates one pack file for
@@ -1120,11 +1317,14 @@ each invocation of <em>git p4 sync</em>. Normally, git garbage compression
(<a href="git-gc.html">git-gc(1)</a>) automatically compresses these to fewer pack files,
but explicit invocation of <em>git repack -adf</em> may improve performance.</p></div>
</div>
+</div>
+<div class="sect1">
<h2 id="_configuration_variables">CONFIGURATION VARIABLES</h2>
<div class="sectionbody">
<div class="paragraph"><p>The following config settings can be used to modify <em>git p4</em> behavior.
They all are in the <em>git-p4</em> section.</p></div>
-<h3 id="_general_variables">General variables</h3><div style="clear:left"></div>
+<div class="sect2">
+<h3 id="_general_variables">General variables</h3>
<div class="dlist"><dl>
<dt class="hdlist1">
git-p4.user
@@ -1175,7 +1375,9 @@ git-p4.client
</p>
</dd>
</dl></div>
-<h3 id="_clone_and_sync_variables">Clone and sync variables</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_clone_and_sync_variables">Clone and sync variables</h3>
<div class="dlist"><dl>
<dt class="hdlist1">
git-p4.syncFromOrigin
@@ -1212,8 +1414,8 @@ git-p4.branchList
</p>
<div class="listingblock">
<div class="content">
-<pre><tt>git config git-p4.branchList main:branchA
-git config --add git-p4.branchList main:branchB</tt></pre>
+<pre><code>git config git-p4.branchList main:branchA
+git config --add git-p4.branchList main:branchB</code></pre>
</div></div>
</dd>
<dt class="hdlist1">
@@ -1254,7 +1456,9 @@ git-p4.useClientSpec
</p>
</dd>
</dl></div>
-<h3 id="_submit_variables">Submit variables</h3><div style="clear:left"></div>
+</div>
+<div class="sect2">
+<h3 id="_submit_variables">Submit variables</h3>
<div class="dlist"><dl>
<dt class="hdlist1">
git-p4.detectRenames
@@ -1382,6 +1586,9 @@ git-p4.conflict
</dd>
</dl></div>
</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_implementation_details">IMPLEMENTATION DETAILS</h2>
<div class="sectionbody">
<div class="ulist"><ul>
@@ -1414,6 +1621,7 @@ Each commit imported by <em>git p4</em> has a line at the end of the log
</ul></div>
</div>
</div>
+</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">