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

Re: Non-Uniform Working Copies

From: Tobias Bading <tbading_at_web.de>
Date: Sun, 17 Aug 2014 12:23:27 +0200

Hi Michael,

to cite another author, "Don't panic!" :-)
It is quite difficult to actually lose data with Subversion, so your changes and those of your wife are most likely still somewhere inside the "bit bucket abbys" (aka a Subversion repository). It's just a question of how to get them back.

A few standard questions:
- Are you using the Subversion command-line client or a GUI tool like kdesvn?
- What's the version of that client? (According to http://packages.ubuntu.com/precise-updates/subversion, the Ubuntu Precise version of the command-line client should be 1.6.17)

To figure out what exactly happened, I'd suggest that both of you stop to use your current working copies. This is to make sure that in case those working copies still contain uncommited local changes, those changes don't get lost. But before you do, please execute a "svn status" in both working copies. Does this command print anything on both of your machines?

Secondly, I suggest that both of you check out a fresh copy of the Subversion directory that contains your document, into an empty local directory. Did I understand that correctly, that your Subversion repository contains one large document file you're both working on?

Now that both of you have a fresh working copy, please check your fresh copies of the document. On both Linux machines, you should get the exact same version of your document. That's the version of your document as it is stored in the latest revision of the repository. Please check whether this version contains all changes made by you and your wife, or whether there are changes missing.

If the latest version of your document is missing changes, you have two options:
1. Compare this latest version with the two copies in your old working copies. If your two old copies contain all the parts you need, merge them into one new version and commit that version to the repository. But that only works if the two old copies contain everything you need, it may require you to redo edits you already did before and it wouldn't explain what happened in the first place.
2. Dive into the abyss to go looking for the missing changes ;-). You can use e.g. "svn log -v --limit 20" in your fresh working copy to ask the repository for a summary of the last 20 changes committed to the repository. Just looking at the dates, do you find an entry in the output for every change you or your wife made in steps 1 through 8? (The output is sorted from newest change to older changes.) Most interesting is probably the change your wife performed in step 3.

If you chose option 2 and see all of your changes in the summary, you can use "svn diff -cN" to examine what happened in revision N. Depending on the document format you're using, the output of this command might be more or less (un)readable. A second option is to check out a fresh copy of an older revision and compare the documents yourself with whatever program you prefer to use. E.g. using "svn co -r42 <URL>", you can check out a fresh copy of version 42 of the directory that contains your document.

If you are able to isolate the revision that contains unintended changes, there are multiple options to undo those changes, but those options depend on whether the unintended changes are intertwined with intended changes and also on the document format you're using.

Hope that helps for a start,

On 17.08.2014, at 00:22, Michael Matson wrote:

> Okay.. After receiving the latest upgrade to Subversion for Ubuntu from Canonical, my wife and I have run across an odd behavior (bug?). As my signature block betrays, we are indi authors, not coders. We're both running Ubuntu 12.04lts, she on an Intel box, me on an AMD-64. Here's what happened:
> I made about ten thousand edits to my working copy (no, not really, but it was a lot) and then committed them to the repository as per normal.
> My wife updated her working copy, which contained my edits -- again, as per normal.
> Then she went to work on the document, and asked me to do some search and replace work. I did. Tried to commit but was out of date. No problem. Update!
> My ten thousand edits returned from the bit bucket abyss! She doesn't have them. I didn't have them before the update, because I'm the one who deleted the material in the first darned place!
> Anyway, I resolved a couple of conflicts and did a "commit after resolve" as per normal.
> She updated her working copy. Guess what: My edits did not return from the abyss in her working copy. Her copy remained "clean" (current, up to date, whatever)
> I committed again. She updated. They STILL didn't show up.
> She committed again and I updated. My disappeared edits remain in my copy!
> Now, interestingly enough, the search and replace work I did remained in place (as it should) through all of this. But somehow we now seem have to "completely correct" (according to the repository anyway) versions of the document that Subversion thinks are identical, but that are, in fact, different. My copy has all the deleted material, plus the search and replace work that I did. Her copy not only has the search and replace work, but also does not have the material I deleted and/or changed back in step 1. (Or so it appears. Quite frankly, I did so much work before committing, most of it may never be found again, or edited in the same way I did it the first time. But there was a long list of "TODOs" that I had deleted and every. single. one. of them re-appeared.
> Thanks for your time. I'm sorry if this doesn't include all the technical information you're used to seeing. While I have nearly 20 years worth of linux admin experience, as I said, we're authors, not coders or developers, so my technical knowledge does have limits. :)
> -=Michael=-
> Metaphor Publications
> ***********************************
> Add me to your address book:
> http://ourteam.com/mjmatson
> ***********************************
Received on 2014-08-17 12:24:04 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.