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

Re: reverting to several versions ago

From: Jeff Smith <jsmith_at_robotronics.com>
Date: 2007-03-06 22:36:57 CET

On Saturday 20 January 2007 10:00, Steve Bakke wrote:
> > I assume your working copy also happened to have local
> > modifications to it. Therefore, Subversion did not delete the
> > directory.
>
> No. 'subdir1' was completely up-to-date with respect to the head.
> So why does it show up as being scheduled for deletion? What would
> happen if I had actually done a commit?

I assume you were simply ignoring what was modified (see below)

> While that makes sense, from an intuitive sense. The original svn
> up -r left me with a mixed working copy. I guess that because it
> is not a branch, 'svn status' will still report status relative to
> the head. On the other hand, it seemed to make sense that I should
> be able to "undo" what I had just done by doing an 'update' back to
> the head revision since I didn't actually have something locally
> modified. Does that make sense? Maybe that argument falls apart
> when the directory in question didn't exist in that revision? I'm
> just trying to get my head around how it is intended to behave.

I decided to test this, trying to duplicate Steve's likely problem. I
started with no uncommitted mods. And Steve, I also show how to
restore it. Also there is nothing to lose by attempting a commit,
which would have had nothing to do. The 'D' reported from `svn up
-r102 subdir1` is not scheduled, but only done to the WC.

# Here is my test WC
prompt> svn st -v wireless
               54 48 ? wireless
               54 47 ? wireless/.cdtproject
               54 47 ? wireless/.project
               54 47 ? wireless/LCDControl.c
               54 47 ? wireless/serialpkt.h
               54 47 ? wireless/rx
               54 47 ? wireless/rx/error.h
               54 47 ? wireless/rx/serialpkt.c
               54 47 ? wireless/rx/serial.c
               54 47 ? wireless/rx/FreeRTOSConfig.h
               54 47 ? wireless/rx/serial.h
               54 47 ? wireless/rx/motor.h
               54 47 ? wireless/rx/vectors.c
               54 47 ? wireless/rx/serialpktrx.c
               54 47 ? wireless/rx/modrx.c
               54 47 ? wireless/rx/Makefile
               54 47 ? wireless/rx/motm_1.c
               54 47 ? wireless/LCDControl.h
               54 48 ? wireless/new1
               54 48 ? wireless/new1/txt
               54 48 ? wireless/new2
               54 48 ? wireless/new2/test.c
               54 48 ? wireless/new2/hi.txt
               54 47 ? wireless/tx
               54 47 ? wireless/tx/serialpkt.c
               54 47 ? wireless/tx/modtx.c
               54 47 ? wireless/tx/Makefile
               54 48 ? wireless/plans.txt
               54 47 ? wireless/Makefile

# I regress one of my folders to the point before it existed
prompt> svn up -r46 wireless
D wireless
Updated to revision 46.

# It worked as I expected, "wireless" subtree was deleted from WC
# Therefore `svn up` restored to HEAD with no trouble

# I thought of a way to add undetected modification to the WC;
# created a file which svn is configured to ignore (serialpkt.h~)
prompt> cp wireless/serialpkt.h wireless/serialpkt.h~
# `svn st` still shows no modifications, unless showing ignored
objects
prompt> svn st --no-ignore
I wireless/serialpkt.h~

prompt> svn up -r46 wireless
D wireless
Updated to revision 46.

# Commandline output looked the same, but the folder is left, and
# the unrev'd file "serialpkt.h~" is left in there
# Note: at this point, `svn ci` does nothing, and "wireless" is not
# a revisioned folder (contains no ".svn")
prompt> svn st
? wireless
prompt> ls -a wireless
. .. serialpkt.h~

prompt> svn up
svn: Failed to add directory 'wireless': object of the same name
already exists

# I also tried `svn revert .` or `svn revert wireless` but the only
way was
# to relocate/delete the unrevisioned "wireless" folder
prompt> mv wireless wireless2
prompt> svn up
A wireless
A wireless/.cdtproject
A wireless/.project
[snip...]
Updated to revision 54.

# now I can restore the unrev'd files
prompt> cp -r wireless2/* wireless
prompt> rm -r wireless2

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Tue Mar 6 22:37:43 2007

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.