From 343c3a5005fd354aa84e7dbebd663f4fd5011a82 Mon Sep 17 00:00:00 2001 From: Jeffrey Yasskin Date: Tue, 19 Jul 2011 00:20:54 +0000 Subject: 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 --- docs/GettingStarted.html | 57 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) (limited to 'docs/GettingStarted.html') 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 to successfully get and build the LLVM GCC front-end.

read-only GIT clone of LLVM via:

-% git clone http://llvm.org/git/llvm.git
+git clone http://llvm.org/git/llvm.git
+
+ +

If you want to check out clang too, run:

+ +
+git clone http://llvm.org/git/llvm.git
+cd llvm/tools
+git clone http://llvm.org/git/clang.git
+
+ +

To set up clone from which you can submit code using + git-svn, run:

+ +
+git clone http://llvm.org/git/llvm
+cd llvm
+git svn init https://llvm.org/svn/llvm-project/llvm/trunk --username=<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=<username>
+git config svn-remote.svn.fetch :refs/remotes/origin/master
+git svn rebase -l
+
+ +

To update this clone without generating git-svn tags that conflict +with the upstream git repo, run:

+ +
+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)
+
+ +

This leaves your working directories on their master branches, so +you'll need to checkout each working branch individually and +rebase 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.)

+ +

The git-svn metadata can get out of sync after you mess around with +branches and dcommit. When that happens, git svn +dcommit stops working, complaining about files with uncommitted +changes. The fix is to rebuild the metadata:

+ +
+rm -rf .git/svn
+git svn rebase -l
 
-- cgit v1.1