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

Working copy 'from the future' after restoring server from old backup (was "Huge Problem")

From: B Smith-Mannschott <bsmith.occs_at_gmail.com>
Date: Sun, 6 Jun 2010 21:35:19 +0200

(I'm sending this Cc back to the list, since others may have input too.)

On Sun, Jun 6, 2010 at 19:36, Abius X <abiusx_at_gmail.com> wrote:
> Hi
> Sorry for brief desscriptions,
> Yep there are different error messages that describe server revision is older than working copy.
>
> Yes I mean a backup, the server crashed and we restored a backup
> It was like 3 weeks older than the working copy (revision 270 vs 291)
>
> We have many developments done in working copy that are not in the repository, and we can't commit or update.

You'll need to check out new working copies in order to be able to
interact with the repository, but as you say you have changes in your
current working copies you don't want to lose. Here's what I would
do:

First I need to define a few terms. I'm going to assume you're on
Windows since most people are and most unix people are smart enough to
replace \ with /. I'm also not going to assume familiarity with diff
and patch. I'm also going to assume you haven't moved or renamed
anything between r270 and r291.

C:\project-old
  This is your working copy (r291 + local changes) before your
  repository died.

C:\project-new
  This is your working copy (r270) from the restored repository.

http://svn.example.com/repo/project/trunk
  This represents the URL your working copy was checked out from.

0. Make a backup copy of C:\project-old (You can never be too paranoid)

1. 'Export' a copy of C:\project-old. This will give you a copy free of the
   .svn administrative directories.

   svn export C:\project-old C:\project-old.export

2. Check out a new working copy of http://svn.example.com/repo/project/trunk

   svn co http://svn.example.com/repo/project/trunk C:\project-new

3. Copy the contents of C:\project-old.export with C:\project-new

   There are various ways to do this. I would just use the Widows file manager
   (confusingly called "Windows Explorer"). Drag project-old.export and drop
   it onto C:\project-new. Windows will offer to merge the contents of the two
   folders. Let it do so.

4. Use svn status to see the local changes in C:\project-new. Convince yourself
   that they make sense.

   svn status C:\project-new

   also helpful:

   svn diff C:\project-new

5. Think up a good commit comment to summarize the last 3 weeks (!) worth of
   work. Put it in this file: C:\BACKUPS_SHOULD_BE_AUTOMATED.txt.

6. Check in your local changes using your hopefully thoughtful commit message

   svn commit -F C:\BACKUPS_SHOULD_BE_AUTOMATED.txt C:\project-new

As solutions go, this isn't beautiful and doesn't cover all cases (see my
assumptions above.) It should leave you with the changes between r270 and
of your working safely in your repository so work can continue.

Once you are happy with the results, you can throw away C:\project-old.

// Ben
Received on 2010-06-06 21:35:59 CEST

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.