aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeffrey Yasskin <jyasskin@google.com>2011-07-19 00:20:54 +0000
committerJeffrey Yasskin <jyasskin@google.com>2011-07-19 00:20:54 +0000
commit343c3a5005fd354aa84e7dbebd663f4fd5011a82 (patch)
tree00550cbf4d8ab0c53970ac54d77d2b9ecd536783
parent6c2f7e2398d5424e80e2d23a6622d76c921dd361 (diff)
downloadexternal_llvm-343c3a5005fd354aa84e7dbebd663f4fd5011a82.zip
external_llvm-343c3a5005fd354aa84e7dbebd663f4fd5011a82.tar.gz
external_llvm-343c3a5005fd354aa84e7dbebd663f4fd5011a82.tar.bz2
Document how to maintain a git-svn clone of the LLVM git repositories.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135453 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--docs/GettingStarted.html57
1 files changed, 56 insertions, 1 deletions
diff --git a/docs/GettingStarted.html b/docs/GettingStarted.html
index 7360893..d608a13 100644
--- a/docs/GettingStarted.html
+++ b/docs/GettingStarted.html
@@ -803,7 +803,62 @@ instructions</a> to successfully get and build the LLVM GCC front-end.</p>
read-only GIT clone of LLVM via:</p>
<pre>
-% git clone http://llvm.org/git/llvm.git
+git clone http://llvm.org/git/llvm.git
+</pre>
+
+<p>If you want to check out clang too, run:</p>
+
+<pre>
+git clone http://llvm.org/git/llvm.git
+cd llvm/tools
+git clone http://llvm.org/git/clang.git
+</pre>
+
+<p>To set up clone from which you can submit code using
+ <tt>git-svn</tt>, run:</p>
+
+<pre>
+git clone http://llvm.org/git/llvm
+cd llvm
+git svn init https://llvm.org/svn/llvm-project/llvm/trunk --username=&lt;username>
+git config svn-remote.svn.fetch :refs/remotes/origin/master
+git svn rebase -l # -l avoids fetching ahead of the git mirror.
+
+# If you have clang too:
+cd tools
+git clone http://llvm.org/git/clang.git clang
+cd clang
+git svn init https://llvm.org/svn/llvm-project/cfe/trunk --username=&lt;username>
+git config svn-remote.svn.fetch :refs/remotes/origin/master
+git svn rebase -l
+</pre>
+
+<p>To update this clone without generating git-svn tags that conflict
+with the upstream git repo, run:</p>
+
+<pre>
+git fetch && (cd tools/clang && git fetch) # Get matching revisions of both trees.
+git checkout master
+git svn rebase -l
+(cd tools/clang &&
+ git checkout master &&
+ git svn rebase -l)
+</pre>
+
+<p>This leaves your working directories on their master branches, so
+you'll need to <tt>checkout</tt> each working branch individually and
+<tt>rebase</tt> it on top of its parent branch. (Note: This script is
+intended for relative newbies to git. If you have more experience,
+you can likely improve on it.)</p>
+
+<p>The git-svn metadata can get out of sync after you mess around with
+branches and <code>dcommit</code>. When that happens, <code>git svn
+dcommit</code> stops working, complaining about files with uncommitted
+changes. The fix is to rebuild the metadata:</p>
+
+<pre>
+rm -rf .git/svn
+git svn rebase -l
</pre>
</div>