On 05/22/2015 02:13 PM, Daniel P. Berrange wrote:
Yeah, there are a couple of repos that I have some trouble pushing
due to bad historical commits that are now rejected :-(
I've been reading up online and AFAICT, the only way to fix this is to
re-write GIT history entirely in the affected repos. This doesn't change
the content, but it'll invalidate everyone's current checkouts :-(
Yeah, that's my understanding as well. Updating to new commit ids is
not too bad (all the content is the same, so it is just commits and not
file revisions being updated), but it does require downstream checkouts
to do a non-fast-forward. As long as we publicize it correctly, I don't
think it will hurt too many people.
Perhaps these 3 modules are niche / small enough that we're fine rewriting
history....or maybe Eric knows another workaround ?
'git help replace' will teach you about git grafts (reparenting a tree
on top of a fixed commit), where people who have cloned from the old
representation don't have to rebase, but new clones pick up the new history.
http://git-scm.com/blog/2010/03/17/replace.html
But I don't know if that will help the situation any (other than 'git
replace' makes it easier to to a 'git filter-branch' that rewrites
history correctly).
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org