Dirk wrote:
Hello Toby,
I have modified the sanity checker in the latest pin handler branch.
It has now two functions to query for existing items and their
parents, one function to get a list of directories that must be
created in order to make the path valid and one function, that will
mimic the "svnadmin load" behavoir in the sence, that it will use the
provided svn dumpfile node to perform the apropriate modification on
the state of the repository. I have also moved all "sanity checks" to
the action handlers in the Dumpfile.pm. Actually the SanityChecker
module should be called DumySvnRepository, or something like that,
since it doesn't perform the checks itself. It only provides the
necessary information.
The _get_svn_struct_ref_for_move function and its logic is still the
heart of the module. It will query the tree and answer all questions
in the exists, exists_parent and get_missing_dirs.
What I broke in this modification is the "junkpath" handling. I have
no reasonable test szenario to check, how this should work, but I
expect, that this is also some kind of "sanity check" within one
action handler.
That's no problem for now; I wasn't really sure how that should be
handled either and how I did it was probably not the best. Now that we
have a separate module that can mimic the SVN repository structure,
maybe the junkpath stuff could move to its own separate logic.
Since I "load" the svn nodes to perform the modifications in my
dummy-repository I can come across a situation where I need to
copy-from a previous revision. Currently I use the copy-from-path to
check, whether the path is available in the current state, and then I
perform a lookup in the deleted path list. I expect, that this will be
a problem, where someone deleted a directory and created a directory
with the same name again but with a different content.
The only alternative is to track the state for each revision. But this
would be an expensive task.
I agree, tracking each revision I think would become too expensive to be
usable!
Hope I didn't messed up your code to much.
Nah, you're still working in the branch so have at it! :) I'm going to
leave the 0.10 release with the old code, then I think we can simply
copy your branch to trunk wholesale (don't even worry about merging)
once that is finished.
toby
_______________________________________________
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