Alright. I think I'll run everything through the wxProcess() API, as this is the easiest (yes, I'm lazy. I'm also human
). Perhaps i could have commands in a config file something like the following?
add_file: git add $1
remove_file: git rm $FORCE $1
pull_remote: git pull $1
push_remote: git push $1
\etc
Now, managing manually is good (and easy), but *if* one wanted to make an automagic option, I guess i would use the cbEVT_PROJECT_FILE_* events to do adds and rms. More challenging would be managing file adds and removes on the remote side. I haven't found much documentation on plugin-initiated events (like how a plugin would add files to the project), so if anyone has good SDK documentation that i'm missing, please point me in that direction. If automagic is disabled, perhaps the plugin could open a dialog saying that the new files have been downloaded and asking if the user wants to add them to the project? Just throwing ideas out there.
I will check out the SVN plugin. Yes, i do agree that it would be nice to have a generic VCS framework, however the differences between centralized and decentralized VCSs is big enough (IMHO) that for anything non-trivial we would either need to come up with an elaborate scripting language to do this, or two separate frameworks with several common components. I don't know, i have ZERO experience with SVN, CVS and the like and the workflow with these systems.