I have a working prototype in my workspace of what we've been discussing.
Here's how it's functioning now:
1) -U indicates to the import command to perform an update. -O specifies
the log file output
2) The import command scribbles on the cquery to add an advisor node which
indicates useWorkspace=false for everything
3) The SVN reader always updates (switches, really, in case the url has
changed) if there is an existing svn checkout in the destination location.
4) The SVN reader generates log events to an observer
I used #2 instead of the ConflictResolution for two reasons:
- Minimize code changes to prototype (e.g. constructor bloat on the
RMContext subtypes)
- More importantly - I had to do something to make the target platform
resolution step not look at the workspace. Since I wasn't sure how best
to do that, I put the check & filters right in the findBest* methods by
asking the cquery.useWorkspace(). Those methods don't have an RMContext
available
This really was an attempt to feel out the edges of the task more than
implement a "right" approach - so we can totally rework it. It really
hinges on what is the right fix for the useWorkspace issue. I've posted a
mininimal script to reproduce this issue in a separate posting.