A horrible and hacky filter for the "false orphan" problem...

Dirk vss2svn at nogga.de
Sat Jan 27 07:06:31 CST 2007


Hi Stephen,

thanks for providing your filter. I needed some time to read through 
your mail and understand all the details.

I found some time in the past to work on the converter again. So let's 
take the chance to have a look at your issues.

>> As a test-run, I want to migrate to svn just the "trunk". To this 
>> effect, I
>> use vssadmin to select just its subtree and Dump it to a .ssa file. 
>> Then I
>> create an empty VSS base, and Restore the .ssa in it. I thus get a 
>> standalone
>> VSS base with just my trunk. So far so good.
>>
> This tool (vss2svn) is designed to work from an empty repository, and 
> build it up one revision at a time, replicating all the actions you've 
> done. By exporting only a single branch (when you work across branches 
> a lot) you're making it a lot harder for it to track the history of 
> various changes it can't "see" any more.
>
> ...
> Instead you probably want to take a complete copy of the entire 
> sourcesafe database, possibly destroy some superfluous projects from 
> this copy (especially if they don't have any shared files with the 
> projects of interest) and then try converting it (it doesn't burn much 
> extra of *your* time to leave something running overnight, or in the 
> background while you get on with other stuff)

... thanks for the above explanations. They are totally correct and the 
suggested workaround, copying the database and tidying out the 
unnecessary projects is the best way to go.

In case where you have an already archive/restored database, there are 
still some problems left in the conversion. I have twisted my mind 
already a few times, in order to find a solution for this, but had no 
great big idea yet. The chronological order is messed up and esp. if you 
restore into a subproject you can not simply fix the parents timestamp.

@Stephen: I expect you orphaned problem is also related to wrong or 
messed up timestamps. I found in my database also a few places, where 
the timestamp is completely wrong, a few times to a garbaged phyiscal 
file. In other times, do to a wrong client machine, that had a wrong 
timestamp.

Sincerelly vss doesn't allow for timestamp editing (you can edit 
comments and labels), but we could provide the tools ourself. So for the 
"real" hardcore converter it would be possible to detect the wrong 
files, fix up the timestamp in the database and run again.



> I will also be watching out for an updated vss2svn.exe to evaluate 
> whether it does a better job for my remaining issues that I currently 
> plan to manually fix-up, which are:
> a) PIN -> UNPIN -> PIN sequence being interpreted as just PIN -> UNPIN 
> (or perhaps PIN -> PIN -> UNPIN, or possibly just UNPIN cancelling out 
> all PINs....?).
I expect you used a similar workflow as I use daily. In a shared and 
pinned file you want to got to another version. So you open the history 
of that file, perform an Unpin and then a Pin on another version. 
Probably you did a wrong Pin, so you directly unpin again and pin 
another version. All this happens in the "same" time.

I'm astonished about this being a problem, since I have a lot of these 
files in my database. Do you have a copy of the PhysicalActions and 
VssActions of such a situation?

> b) One subproject that got completely trashed during the conversion 
> (and which I will have to perform surgery on manually afterwards - I 
> finally decided to give up attempting to get the filterorphan.cpp to 
> fix it up for me, as some of the updated revisions needed simply 
> didn't exist at the right point in time in the dumpfile).
I don't say, that we solved all problems, but the most problems 
remaining are from
 * wrong timestamps
 * missing support for archive/restore
 * broken archives
I expect you ran "analyze -v4" and checked the reported errors?

In any case, I can offer help if you send me the log files (also 
privately). I will keep all information under disclosure.

Best regards
Dirk

>
> Perversely, if the updated .exe does a better job with the false 
> orphans without fixing one or both of the above (I will at least 
> report back if one comes out in time), it will be of less use due to 
> already having the filter in place to fix the current version's mistakes!
>



More information about the vss2svn-users mailing list