If done, we could wonder if it wouldn't be interesting to get rid of maven-scm-api abstraction and, instead, use some NIH to bring our own abstraction layer for scm manipulations dealt by the plugin.
I'm not really satisfied with maven-scm-api for 2 reasons :
- Some generic abstractions differ in their implementation (for instance, update() will not act the same with DVCS and VCS scms : svn will update current working copy whereas git will not always do a fetch)
- Some implementations are not generic because not generalized yet amongst every SCMs (for instance, the log() command, accessible in SVN, is not generically available)
ATM, we're only relying on a subset of available generic methods (see SCMManipulator class which represents the SCM access layer)