Hi,
We have imported a project from CVS. Then created a bare repo and
placed on the central server. From the server repos are served via git
protocol for push and pull operations (no SSH is involved for intranet
set up)
After this operations there were several extensive changes made (3
commits but they were pretty big) in development branch which were
then pushed to the server. So the branch was pushed too.
All changes and commits and pushes were performed under eclipse 3.5
using Egit plugin v0.5.
After it I could not clone this repo from the server as it was giving
me an error like this (I will shorten it up a bit using “…” as I have
no way to copy paste):
$git clone git://server/repo.git
Initialized empty git…
remote:counting…done
remote:compressing…done
remote: aborting due to possible repository corruption on the remote side.
Receiving object: 100% …done
Resolving deltas: 100% …done
error: waitpid (async) failed
fatal: error in sideband demultiplexer (I know right words to curse now;))
When I’m looking at the bare repo in CGit it shows me Bad object:
and object SHA-1 instead of the tree.
As the only difference between this project and about 30 others was
that there was an additional branch pushed via Egit I suspect that
this is what screwed up things, but I ‘m not sure… I’m in progress of
testing it I don’t know if I will be able to reproduce.
Please, advise if this can be fixed and which options I have if it
will happen again (how to properly and quickly restore bare repo)
Thanks,
Eugene
Eugene Sajine [off-list ref] wrote:
When I???m looking at the bare repo in CGit ??it shows me ??Bad object:
and object SHA-1 instead of ??the tree.
As the only difference between this project and about 30 others was
that there was an additional branch pushed via Egit I suspect that
this is what screwed up things, but I ???m not sure??? I???m in progress of
testing it I don???t know if I will be able to reproduce.
Its a somewhat known problem, but thus far has only shown up in
contexts where I'm unable to get enough data to debug the problem.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=286653
Please, advise if this can be fixed and which options I have if it
will happen again (how to properly and quickly restore bare repo)
Delete the branch and repush it. The bug is that EGit didn't push
all of the objects needed by the branch. If you put the missing
objects from the source client into the server repository, it'll
be fine.
To prevent this in the future, you can force a server to check during
push by enabling receive.fsckObjects in the server repository's
configuration file. A broken EGit client will have the push
rejected immediately.
--
Shawn.
To prevent this in the future, you can force a server to check during
push by enabling receive.fsckObjects in the server repository's
configuration file. A broken EGit client will have the push
rejected immediately.
--
Shawn.
Thank you for prompt answer, Shawn!
The problem is that as i'm maintaining multiple repos and their
quantity will grow i would need to apply this setting site wide. Do
you know if i can specify this service for git daemon? It seems like
in git deamon docs this service is not listed, but just in case the
docs are not up to date... I really don't want to set this up for
every repo manually...
Thanks,
Eugene
Thank you for prompt answer, Shawn!
The problem is that as i'm maintaining multiple repos and their
quantity will grow i would need to apply this setting site wide. Do
you know if i can specify this service for git daemon? It seems like
in git deamon docs this service is not listed, but just in case the
docs are not up to date... I really don't want to set this up for
every repo manually...
Thanks,
Eugene
I found it.
$ git config --global receive.fsckObjects true
should do the trick.
Thanks,
Eugene