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!
_______________________________________________
vss2svn-users mailing list
Project homepage:
http://www.pumacode.org/projects/vss2svn/
Subscribe/Unsubscribe/Admin:
http://lists.pumacode.org/mailman/listinfo/vss2svn-users-lists.pumacode.org
Mailing list web interface (with searchable archives):
http://dir.gmane.org/gmane.comp.version-control.subversion.vss2svn.user