I've been using Jakob's commands below, but it has stopped working for me. This happened roughly around the time when Anton added the other branches, but I'm not sure if that was the cause or not. The symptom is that the "git svn rebase -l" command does nothing except say that the master branch is already up to date, and "git svn dcommit" complains that files are out of date. In both cases, "git svn rebase" (without "-l") solves the problem, but without using the GIT mirror, so it's slow. I've tried re-creating my git repos from scratch but that did not fix the problem. Any ideas? On Feb 1, 2011, at 1:54 PM, Jakob Stoklund Olesen wrote:> > On Feb 1, 2011, at 12:20 PM, Anton Korobeynikov wrote: > >> Hello Everyone, >> >> It seems given the decent amount of discussions it's time to make >> small announcement. >> >> So, official git mirrors are available for some subset of LLVM >> projects. They were used by some LLVM developers for couple of months >> already and seem to be stable enough. > > Thank you for setting this up, Anton! > > This is how I use the Git mirror with git-svn: > > For the initial clone and setup: > > $ git clone http://llvm.org/git/llvm.git > $ cd llvm > $ git config --add remote.origin.fetch '+refs/remotes/git-svn:refs/remotes/git-svn' > $ git fetch > $ git svn init https://llvm.org/svn/llvm-project/llvm/trunk > $ git svn rebase -l > > This will quickly build the git-svn metadata by using the magical remotes/git-svn branch fetched from the origin. > > To update I run: > > $ git fetch > $ git svn rebase -l > > And to commit: > > $ git svn dcommit > $ git fetch > $ git svn rebase -l > > I have sometimes seen git-svn refusing to dcommit, claiming that I have uncommitted files in my tree. I think this happens when I forget to resynchronize the metadata after committing. Anyway, the solution is to wipe away all of .git/svn and rebuild it with "git svn rebase -l" > > /jakob > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
On Mar 21, 2011, at 1:47 PM, Bob Wilson wrote:> I've been using Jakob's commands below, but it has stopped working for me. This happened roughly around the time when Anton added the other branches, but I'm not sure if that was the cause or not. The symptom is that the "git svn rebase -l" command does nothing except say that the master branch is already up to date, and "git svn dcommit" complains that files are out of date. In both cases, "git svn rebase" (without "-l") solves the problem, but without using the GIT mirror, so it's slow. > > I've tried re-creating my git repos from scratch but that did not fix the problem. Any ideas?The trick with 'git config --add remote.origin.fetch' doesn't work anymore. I tried changing it to refer to the remote's master branch instead, but that has caused strange problems. I now run 'git update-ref' every time I fetch from the mirror: git fetch -p origin git update-ref refs/remotes/git-svn origin/master git svn rebase -l Same for committing: git svn dcommit git fetch -p origin git update-ref refs/remotes/git-svn origin/master git svn rebase -l For the initial clone and setup: git clone http://llvm.org/git/llvm.git cd llvm git svn init https://llvm.org/svn/llvm-project/llvm/trunk git update-ref refs/remotes/git-svn origin/master git svn rebase -l /jakob
>> I've tried re-creating my git repos from scratch but that did not fix the problem. Any ideas? > > The trick with 'git config --add remote.origin.fetch' doesn't work anymore. I tried changing it to refer to the remote's master branch instead, but that has caused strange problems.I'm not a git-svn expert, but I suspect the real problem is that git-svn automagically updates master from git-svn remote. Right now we're exporting just master and thus stuff appears to form a cycle. This is just a random thought though :) -- With best regards, Anton Korobeynikov Faculty of Mathematics and Mechanics, Saint Petersburg State University
On 03/21/2011 04:47 PM, Bob Wilson wrote:> I've been using Jakob's commands below, but it has stopped working for me. This happened roughly around the time when Anton added the other branches, but I'm not sure if that was the cause or not. The symptom is that the "git svn rebase -l" command does nothing except say that the master branch is already up to date, and "git svn dcommit" complains that files are out of date. In both cases, "git svn rebase" (without "-l") solves the problem, but without using the GIT mirror, so it's slow. > > I've tried re-creating my git repos from scratch but that did not fix the problem. Any ideas?Yes, here the changes necessary:>> $ git clone http://llvm.org/git/llvm.git >> $ cd llvm >> $ git config --add remote.origin.fetch '+refs/remotes/git-svn:refs/remotes/git-svn' >> $ git fetchSkip the last two lines line.>> $ git svn init https://llvm.org/svn/llvm-project/llvm/trunkAdd here: git config svn-remote.svn.fetch ':refs/remotes/origin/master'>> $ git svn rebase -lAnd here I personally just use a 'git svn fetch' This is the complete sequence $ git clone http://llvm.org/git/llvm.git $ cd llvm $ git svn init https://llvm.org/svn/llvm-project/llvm/trunk $ git config svn-remote.svn.fetch ':refs/remotes/origin/master' $ git svn fetch LLVM trunk is now in origin/master and can be accessed e.g. by $git log origin/master It can be updated by using $git remote update $git fetch $git pull Cheers Tobi
On 03/21/2011 04:54 PM, Jakob Stoklund Olesen wrote:> > On Mar 21, 2011, at 1:47 PM, Bob Wilson wrote: > >> I've been using Jakob's commands below, but it has stopped working for me. This happened roughly around the time when Anton added the other branches, but I'm not sure if that was the cause or not. The symptom is that the "git svn rebase -l" command does nothing except say that the master branch is already up to date, and "git svn dcommit" complains that files are out of date. In both cases, "git svn rebase" (without "-l") solves the problem, but without using the GIT mirror, so it's slow. >> >> I've tried re-creating my git repos from scratch but that did not fix the problem. Any ideas? > > The trick with 'git config --add remote.origin.fetch' doesn't work anymore. I tried changing it to refer to the remote's master branch instead, but that has caused strange problems. > > I now run 'git update-ref' every time I fetch from the mirror:You should be able to get rid of this by calling: git config svn-remote.svn.fetch ':refs/remotes/origin/master' Now the default svn branch points to refs/remotes/origin/master instead of refs/remotes/git-svn and everything should work automatically. Let me know if there are any problems with this approach. Tobi