You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Timothy Astle <ti...@caris.com> on 2009/06/08 22:03:11 UTC

How to undo multiple moves without a working copy?

Recently I had someone move all of our development projects under a new 
sub-directory without proper authority.  We can do a remote move to put 
them back in place, or perform a working copy merge.

What is the best approach?  Ideally it would be nice to revert the 
server to the last known good revision.

Suggestions?

-- 

Tim Astle

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2360479

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: How to undo multiple moves without a working copy?

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Jun 10, 2009, at 05:50, Andrey Repin wrote:

> Greetings, Ryan Schmidt!
>
>> Yes, this problem can be solved by using admin commands like dump and
>> load, but I do not recommend that for this case. It would be like...
>> redecorating a house, then deciding you didn't like it, and
>> bulldozing the house and building it again and decorating it the way
>> it originally was.
>
> It wasn't decoration, devastating hurricane would be more appropriate
> comparison.
> These changes was not expected, nor wanted, and there's no point to  
> keep them
> in repository.
> Not that I'm arguing about doing so with every mistake you making,  
> but such
> big troubles need more serious treatment. On both social and  
> technical level.

I continue to disagree that there is any need for this drastic action.

The inconvenience it will cause is: 1) Repository downtime while the  
administrator dumps, possibly filters, then loads. If the repository  
is large, this can take a lot of time, even days. 2) The new  
repository UUID must be different than the old one, which means  
everybody has to throw out their working copies and check out new  
ones. If anybody had uncommitted changes, they must manually move  
these over to a new working copy.

Why impose these hardships on your team when you can avoid them  
entirely by simply undoing the original change using merge or mv?

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2361161

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: How to undo multiple moves without a working copy?

Posted by Andrey Repin <an...@freemail.ru>.
Greetings, Ryan Schmidt!

> Yes, this problem can be solved by using admin commands like dump and
> load, but I do not recommend that for this case. It would be like...  
> redecorating a house, then deciding you didn't like it, and  
> bulldozing the house and building it again and decorating it the way  
> it originally was.

It wasn't decoration, devastating hurricane would be more appropriate
comparison.
These changes was not expected, nor wanted, and there's no point to keep them
in repository.
Not that I'm arguing about doing so with every mistake you making, but such
big troubles need more serious treatment. On both social and technical level.


--
WBR,
 Andrey Repin (anrdaemon@freemail.ru) 10.06.2009, <14:46>

Sorry for my terrible english...

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2360870

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: How to undo multiple moves without a working copy?

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Jun 8, 2009, at 18:00, Andrey Repin wrote:

>>
>> Recently I had someone move all of our development projects under  
>> a new
>> sub-directory without proper authority.  We can do a remote move  
>> to put
>> them back in place, or perform a working copy merge.
>
>> What is the best approach?  Ideally it would be nice to revert the
>> server to the last known good revision.
>
>> Suggestions?
>
> Straight dump to the last known proper revision.
> Then incremental dump for any changes that might follow that mess.
> Edit paths in the second dump.
> Join both dumps in the new repository.


Yes, this problem can be solved by using admin commands like dump and  
load, but I do not recommend that for this case. It would be like...  
redecorating a house, then deciding you didn't like it, and  
bulldozing the house and building it again and decorating it the way  
it originally was. Why not keep the house and just undo the  
redecoration? It will cause a lot less inconvenience. Just use  
regular "svn mv" commands, or "svn merge" as I mentioned earlier, to  
put things right.

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2360757

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: How to undo multiple moves without a working copy?

Posted by Andrey Repin <an...@freemail.ru>.
Greetings, Timothy Astle!

> Recently I had someone move all of our development projects under a new 
> sub-directory without proper authority.  We can do a remote move to put 
> them back in place, or perform a working copy merge.

> What is the best approach?  Ideally it would be nice to revert the 
> server to the last known good revision.

> Suggestions?

Straight dump to the last known proper revision.
Then incremental dump for any changes that might follow that mess.
Edit paths in the second dump.
Join both dumps in the new repository.

Be warned that if your repository is somewhat of a lot of files and of
significant size in total, it will not be the one fast operation.


--
WBR,
 Andrey Repin (anrdaemon@freemail.ru) 09.06.2009, <2:57>

Sorry for my terrible english...

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2360490

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: How to undo multiple moves without a working copy?

Posted by Tyler Roscoe <ty...@cryptio.net>.
On Mon, Jun 08, 2009 at 07:03:11PM -0300, Timothy Astle wrote:
> Recently I had someone move all of our development projects under a new 
> sub-directory without proper authority.  We can do a remote move to put 
> them back in place, or perform a working copy merge.

It looks like svn move can handle url to url moves, so you don't need a
working copy to move them back. Merging does require a working copy.

> What is the best approach?  Ideally it would be nice to revert the 
> server to the last known good revision.

The only way to remove revisions from history entirely is by clever use
of dump + filter + load. There are lots of docs about how to do this,
both in the svn faq and in the archives for this list.

If you have a backup that was taken shortly before the unauthorized
procedure, you could start with that and just dump and load the few
revisions you need to bring your backup repo completely up-to-date.

tyler

Re: How to undo multiple moves without a working copy?

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Jun 8, 2009, at 17:03, Timothy Astle wrote:

> Recently I had someone move all of our development projects under a  
> new
> sub-directory without proper authority.  We can do a remote move to  
> put
> them back in place, or perform a working copy merge.
>
> What is the best approach?  Ideally it would be nice to revert the
> server to the last known good revision.


You can't "revert the server to the last known good revision" per se.  
A commit to a repository is (for the purposes of this discussion)  
forever. You can now perform additional commits that take the  
opposite actions.

You could get a working copy and do a reverse merge of the revisions  
this person committed, as explained here:

http://svnbook.red-bean.com/en/1.5/ 
svn.branchmerge.basicmerging.html#svn.branchmerge.basicmerging.undo

If there have been any changes in these projects since this  
unauthorized move, I am not certain whether the above steps will also  
lose those changes. You may be better off, if it's not too difficult,  
identifying what needs to be moved back where, and using "svn mv" to  
move things back. You can either do this in a working copy and then  
commit either individually or all at once, or via URLs one at a time,  
or via URLs all at once using svnmucc.

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2360481

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].