Dirk wrote:
I have twisted my head in order to conditionally increment the seen variable for the corresponding physical file, but all I do doesn't work correctly, since the condition heavily depends on the previous and later actions of the item. The only real condition I found was: An item must be committed when the next revision is based on the previous itempath.

E.g.
* A share must be committed when it is followed by a rename action
* An add must be committed, when the item is shared

During the Dumpfile.pm this information is available (at least in my pin_handler branch) since I track all itempaths and the corresponding revision numbers. If I need to copy from an older revision, and the older revision information is not yet in my cache, I must commit all previous changes.

But this would dramatically change the workflow of the converter. Right now the previously generated revision information is not used in the Dumpfile.pm. It is used to grab all actions that will make up the revision, but it is not used within one handler to perform some specific action. So the revision generation could be merged into the Dumpfile.pm.

But all this is very complex, just in order to merge a few more related actions into one revision. Are there other fields, where the revision generator could be improved?

Well truthfully I guess I really didn't put too much effort into getting the SVN revisions 100% correct. Since it's a bit of guesswork anyway to discern atomic commits when there are none in VSS, I wasn't too worried about splitting some up erroneously, figuring it's better than nothing. So really, I'm probably trying to determine SVN revisions too early in the process if we want them to be more correct.

I'm wondering if we could move that functionality entirely to Dumpfile.pm instead? Since I have already added the "sanity checker" into that class, which is keeping an in-memory hash of the current SVN structure, it may not be much more work to add to it the functionality to keep track of when a new revision is needed. That would also eliminate the "SvnRevisionVssAction" many-to-many table. We'd just need to figure out the correct "rules" (like your examples above) of when a new revision is really needed.

_______________________________________________
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

Reply via email to