I was doing an git-svn dcommit and got a seg fault. The first
phase of updating svn completed and then it seg faulted on the
second. So I suspect I'm out of sync and need to recover,
any guidance appreciated.If it's any help the svn repo is at http://async-msgcomp.googlecode.com/svn.
If someone needs it I happen to have a backup of the git repo before
doing the commit and then after the seg fault.If there is any other information that someone needs I can try
to supply it.Cheers,
Wink Saville
<info>
<Apparently there is no core dump file as ulimit -c is 0: />
wink@ic2d1:$ ulimit -c
0<here is the linux version: />
wink@ic2d1:$ uname -a
Linux ic2d1 2.6.22-14-generic #1 SMP Tue Dec 18 05:28:27 UTC 2007 x86_64
GNU/Linux<here is the git version: />
wink@ic2d1:$ git --version
git version 1.5.3.8<Here is the data from /var/log/kern.log: />
Feb 1 13:51:31 ic2d1 kernel: [17438.627780] git-svn[21111]: segfault at
0000000000000010 rip 00002acfb82ac1ff rsp 00007ffff937d0d0 error 6<Here is the command and data output: />
wink@ic2d1:$ git-svn dcommit
Committing to https://async-msgcomp.googlecode.com/svn/trunk ...
C android/mc/src/com/saville/android/mc/ActiveMc.java =>
android/hmc/src/com/saville/hmc/ActiveHmc.java
C java/msgcomp/src/com/saville/msgcomp/IMc.java =>
android/hmc/src/com/saville/hmc/Hmc.java
C android/mc/src/com/saville/android/mc/ActiveMc.java =>
android/mc/src/com/saville/mc/ActiveMc.java
C java/msgcomp/src/com/saville/msgcomp/IMc.java =>
android/mc/src/com/saville/mc/MsgPump.java
C java/msgcomp/src/com/saville/msgcomp/IMc.java =>
java/hmc/src/com/saville/hmc/Hmc.java
C android/hmc/src/com/saville/android/testhmc/TestHmc.java
=> java/hmc/src/com/saville/testhmc/Test.java
C java/msgcomp/src/com/saville/msgcomp/IMc.java =>
java/msgcomp/src/com/saville/msgcomp/IHmc.java
C ...
<snip/>
<As an update, I first tried to re-execute the dcommit, but that didn't
work: />wink@ic2d1:$ git-svn dcommit
Committing to https://async-msgcomp.googlecode.com/svn/trunk ...
Merge conflict during commit: Your file or directory
'android/hmc/src/com/saville' is probably out-of-date: The version
resource does not correspond to the resource within the transaction.
Either the requested version resource is out of date (needs to be
updated), or the requested version resource is newer than the
transaction root (restart the commit). at /usr/bin/git-svn line 420<I than did a rebase that got me back in sync: />
wink@ic2d1:$ git-svn rebase
Index mismatch: 94bbfa6d433192de71060d1274f0b0eab8f49a30 !=
2fcd3a5cc5a9ca062a41d0ff5ac30073f4fa23b0
rereading 8ce31b64294bdb063c64c50b9358533ac8746af4
D android/mc/COPYING.LESSER
D android/mc/COPYING
M android/mc/AndroidManifest.xml
A android/mc/src/com/saville/mc/Mc.java
A android/mc/src/com/saville/mc/McService.java
A android/mc/src/com/saville/mc/McMgr.java
A android/mc/src/com/saville/mc/MsgPump.java
A android/mc/src/com/saville/mc/McBase.java
A android/mc/src/com/saville/mc/ActiveMc.java
A android/mc/src/com/saville/mc/McActivity.java
D android/mc/src/com/saville/android/mc/Mc.java
D android/mc/src/com/saville/android/mc/McService.java
D android/mc/src/com/saville/android/mc/McMgr.java
D android/mc/src/com/saville/android/mc/ActiveMc.java
D android/mc/src/com/saville/android/mc/McActivity.java
M android/mc/src/com/saville/android/testmc/TestMc.java
M android/mc/src/com/saville/android/testmc/TestMcService.java
D android/mctest/COPYING.LESSER
D android/mctest/COPYING
M android/mctest/.classpath
M android/mctest/src/...
So it appears the dcommit succeeded in making the change to the
repository, but segfaulted afterwards (when attempting to retreive
the version number of the commit. Is that assessment correct?--
Eric Wong
-
I've installed 1.4.4 as supplied in ubuntu 7.10.
-
Can you show the contents of .git/config ?
--
-Steven Walter <stevenrwalter@gmail.com>
Freedom is the freedom to say that 2 + 2 = 4
B2F1 0ECC E605 7321 E818 7A65 FC81 9777 DC28 9E8F
-
wink@ic2d1:$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[svn-remote "svn"]
url = https://async-msgcomp.googlecode.com/svn/trunk
fetch = :refs/remotes/git-svn
[gui]
geometry = 999x958+1767+172 407 407
[remote "origin"]
url = git://192.168.0.8/async-msgcomp.git
fetch = +refs/heads/*:refs/remotes/origin/*
[merge]
tool = kdiff3
wink@ic2d1:$-
There's your problem. The url line should only contain the SVN root.
If you change it thusly:[svn-remote "svn"]
url = https://async-msgcomp.googlecode.com/svn
fetch = trunk:refs/remotes/git-svnIt will no longer segfault. I had the same issue with a repository of
my own.
--
-Steven Walter <stevenrwalter@gmail.com>
Freedom is the freedom to say that 2 + 2 = 4
B2F1 0ECC E605 7321 E818 7A65 FC81 9777 DC28 9E8F
-
<I did that but a rebase command resulted in: />
wink@ic2d1:$ git svn rebase
Unable to determine upstream SVN information from working tree history<I've bee using git-svn for a few days without trouble. Do I need
the do another "git svn clone" using the base url rather than
pointing to the trunk? />-
You shouldn't have to clone again. First time removing .git/svn, then
running "git svn fetch" (which ought to rebuild what was there). You
ought to be able to rebase after that.
--
-Steven Walter <stevenrwalter@gmail.com>
Freedom is the freedom to say that 2 + 2 = 4
B2F1 0ECC E605 7321 E818 7A65 FC81 9777 DC28 9E8F
-
I've messed something up, I've just re-cloned and all is well.
Actually, a related question which you seem to imply from
your answer to the crash. I have the local git repo and also
one on a local server which I created as follows:local$: git svn clone -s https://async-msgcomp.googlecode.com/svn amc
local$: ssh srvr
srvr$: cd <to local server/path to repo>
srvr$: mkdir amc.git
srvr$: cd amc.git
srvr$: git --bare init --shared
srvr$: exit
local$: cd amc
local$: git remote add origin git:<to local server/path to repo/amc.git>
local$: git push --allSo at this point amc/.git/config looks like:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[svn-remote "svn"]
url = https://async-msgcomp.googlecode.com/svn
fetch = trunk:refs/remotes/trunk
branches = branches/*:refs/remotes/*
tags = tags/*:refs/remotes/tags/*
[remote "origin"]
url = git://192.168.0.8/amc.git
fetch = +refs/heads/*:refs/remotes/origin/*
wink@ic2d1:$I now have three repositories one local git repo, one git repo on srvr
and one svn repo at googlecode.com. I feel really good and backed up
to the max:) But assume the svn repo is huge and the initial git svn
clone takes a long time.What steps would be needed to recreate a "local git repo" from the
"git repo on srvr" that I could use against the svn repo?I tried a little test, I cloned my git repo on srvr locally to amc-xx
and added the [svn-remote "svn"] section to amc-xx/.git/config
and then did a git-svn fetch. From what happened it looks like I
just did a git svn clone and didn't save any time.Also, a follow up can I create an svn repo from a git repo.
Anyway, thanks for the help,
Wink
-
After adding the svn-remote section, you'll want to copy
.git/refs/remotes/origin/master to .git/refs/remotes/git-svn. After
doing that, "git svn fetch" should see that you have all the neededI've not done it, but it should be possible. You would create the new
svn repository with a single empty commit (as empty as SVN would allow).
Import that revision into your git repository with git-svn. Then you
would either rebase or use grafts to make all of your git commits a
descendent of that single svn commit. In that way, the next time you
run "git svn dcommit" it will see all your local git commits as new
commits to send to subversion.No guarantees though, as I've not tried it.
--
-Steven Walter <stevenrwalter@gmail.com>
Freedom is the freedom to say that 2 + 2 = 4
B2F1 0ECC E605 7321 E818 7A65 FC81 9777 DC28 9E8F
-
Steve,
That worked thanks, I did make some minor adjustments as when
I recloned I used the "-s" switch because my svn repo was in standard
format so rather than copying master to .git/refs/remotes/git-svn I copied
it to .git/refs/remotes/trunk. I also used git svn init to create the
remotes
section instead of editing .git/config directly. So the following worked
for me:lcl ~/ $ git clone git://srv/amc.git amc
lcl ~/ $ cd amc
lcl ~/amc $ git svn init -s http://async-msgcomp.googlecode.com/svn
lcl ~/amc $ rm -rf .git/svn
lcl ~/amc $ cp .git/refs/remotes/origin/master .git/refs/remotes/trunk
lcl ~/amc $ git svn fetchIt would seem creating a "git svn connect" command which did the above
might be nice. I took a quick look at git-svn and decided that since I
don't know
perl and git-svn was almost 5000 LOC it would be dangerous for me to try
to make the change:)Thanks for all of your help.
Wink
-
| Davide Libenzi | [patch 7/8] fdmap v2 - implement sys_socket2 |
| Greg Kroah-Hartman | [PATCH 018/196] coda: convert struct class_device to struct device |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| David Newall | Re: Slow DOWN, please!!! |
git: | |
| Christoph Lameter | Network latency regressions from 2.6.22 to 2.6.29 |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Arjan van de Ven | Re: [GIT]: Networking |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
