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