[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: how do I revert a bad commit without creating a new revision?

From: Konstantin Kolinko <knst.kolinko_at_gmail.com>
Date: Fri, 8 Jul 2011 06:29:57 +0400

2011/7/8 michael mac <michaelhmac_at_gmail.com>:
> Hi,
>
> During my svnsnyc process to mirror a repository I received the following
> error "Problem replaying revision  [500, #190004]" I was able to track down
> the revision in question which is 417811. After talking to the developer
> that made the commit I found there was a problem with one of the filename
> syntax which used character '0x1' in one of the file.
>

Maybe you can

1) dump this revision alone,
2) edit its dump file: change the file name to something usable
3) load this revision into slave repository
4) run svnsync with revisions up to HEAD

5) delete the file from master repository
6) repeat the trick from steps 1)-3) to delete the "good" copy of this
file from slave

and so moth will be reasonably in sync.
Now you can replace master with a copy of slave.

Another possibility: I think it is possible to effectively truncate
the repository by removing some files + running svnadmin recover.
Just theory - I have not tried it. I wish there were official command
(or instruction) how to truncate a repository (as a cheap alternative
to implementing obliteration).

You have 0.5 million revisions at stake. I do not know how long
recover will run. How long svnadmin verify runs with such a
repository? What will happen with representation sharing DB (will it
recover from extra data as well, or it has to be deleted manually)?

>
> My question, it there a way to revert revision 417811 to previous 417810
> without commit a new revision?

No. It is not possible.
(keyword: obliteration)

> I've looked at svn merge and svn revert and
> both require I new commit revision. My goal is continue to use svnsync to
> mirror the repository and in order to do that I need to get past r417811. I
> have confirmed this revision can be dropped altogether.
>
> My last option which I can think of is the use svnadmin dump and load,
> excluding r417811 and then adding it as a dummy revision, but I'm trying to
> avoid this as it takes much more time and effort.

You have slave that is at r417810 now. So you do not need to load
revisions up to 417810 -- you can start with what slave already has.

Best regards,
Konstantin Kolinko
Received on 2011-07-08 04:30:33 CEST

This is an archived mail posted to the Subversion Users mailing list.