Hi,

I'm having a minor problem with the SvnRevHandler. Within my project there are beneath a lot of subprojects and files, also a few files, that are shared within the project multiple times. E.g. a binary file that is shared from a "bin" project into the "setup" project and a "test" project. In order to create maintenance branches, I used the sharing + pinning function. This shared all my projects and files from the main project into a "Releases" project. Since you cannot "really" share a project, all subproject are freshly creted in the Releases project. The SvnRevHandler correctly detects that these mixture of multiple shares and creates was done in one step, and that everything belongs to one revisions.

But, the logic fails on the multiple shared item due to the "$self->{seen}->{$physname}++" handling. Since the item was seen at least twice during the creation of the Release path, the SvnRevHandler brakes this action into multiple revisions.

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?

Dirk

_______________________________________________
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