Paul Kirchner wrote:
Thanks for your response. You and the other vss2svn developers have done a great job getting the program to where it is, and I really appreciate what you have done. I might try to work on this myself. I'm not Perl savvy (yet) and so I'm still struggling to understand what the current program does. I'd appreciate very much if you could point me in the right direction and limit the scope of what I have to learn; As you said, this doesn't have anything to do with reconstructing history. I'm guessing that I'd need to focus my attention on Vss2Svn::Dumpfile. Any additional pointers are appreciated.

Hi Paul, sorry for the delay in getting back to you. If you look near the top of trunk/script/vss2svn.pl, you will see the sub "RunConversion" which outlines the steps taken by the converter. You should only be interested in the very last of these, "IMPORTSVN". That is where all the data gleaned previously from the VSS files is output into the dumpfile.

You'll probably want to check out the prior step, which is accomplished in BuildVssActionHistory(), to get familiar with the data structures that are built. Then the real work is done in CreateSvnDumpfile(), which uses a Vss2Svn::Dumpfile object (in the module trunk/script/Vss2Svn/Dumpfile.pm) to actually build the dumpfile.

Inside Dumpfile.pm, you will notice methods to handle the various actions which occur in VSS, such as _branch_handler, _pin_handler, etc. Rearranging these items as you discuss would involve at least modifying those methods to add and update these items into their different locations.

If you decide to undertake this work then it would be necessary to make it optional whether to follow the existing repository layout or the one you describe; this could be done using a property of the Dumpfile.pm object which is set by the calling script.

Best Regards,
Paul


Toby Wrote:

Hello Paul,

Thanks for the email and suggestions. You make several valid points, but unfortunately the reality at this point is that it is rather unlikely that myself or (forgive me for speaking on others' behalf) Dirk will really have the time or inclination to do another such refactoring of the script's logic.

We are all familiar with the "scratch your itch" philosophy of open source projects such as this but unfortunately converting a repo from VSS to SVN is an itch that most people will really ever need to scratch once. I converted my VSS repo a couple years ago, and Dirk is to my understanding very close to converting his, and I'm not sure of the status of Ken, but we're the only three committers to this project. That's due in large part to the rather steep learning curve involved in just understanding the way that VSS works before any "real" work can be done (and I'm not sure I'm even there yet :)

If there is anyone else who is interested in refactoring the logic as you describe (I agree that having such an option would be much preferable to having to completely move around the repo after the conversion) I'd be more than willing to provide whatever assistance I can, but at this point I'm afraid that what little time I can spend on the project will be dedicated to getting just the basic functionality into an official release that works well for most people. At this point I'm having enough trouble just to find the time to create a simple beta release and move the branch back to the trunk!

That being said, the changes you're suggesting are largely superficial (by that I mean not directly related to getting the data out of VSS) so it's likely that someone with just a good knowledge of Perl might be able to hack on these changes. The "correct" way to do this would probably be to factor out the logic for creating a branch or label (probably into separate modules) and make them swappable in order to use your logic.


***
The information in this e-mail is confidential and intended solely for the 
individual or entity to whom it is addressed.  If you have received this e-mail 
in error, please notify the sender by return e-mail, delete this e-mail, and 
refrain from any disclosure or action based on the information.
*** _______________________________________________
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
_______________________________________________
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

Reply via email to