--- a/subversion/src/META-INF/services/org.netbeans.modules.versioning.spi.VersioningSystem Thu Jun 05 09:46:44 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -org.netbeans.modules.subversion.SubversionVCS --- a/subversion/src/org/netbeans/modules/subversion/resources/svn-layer.xml Thu Jun 05 09:46:44 2008 +0200 +++ a/subversion/src/org/netbeans/modules/subversion/resources/svn-layer.xml Thu Jun 05 11:29:44 2008 +0200 @@ -44,6 +44,14 @@ made subject to such option by the copyr + + + + + + + + --- a/versioning/src/org/netbeans/modules/versioning/spi/VersioningSystem.java Thu Jun 05 09:46:44 2008 +0200 +++ a/versioning/src/org/netbeans/modules/versioning/spi/VersioningSystem.java Thu Jun 05 11:29:44 2008 +0200 @@ -99,6 +99,47 @@ public abstract class VersioningSystem { * Protected constructor, does nothing. */ protected VersioningSystem() { + } + + static VersioningSystem create(Map map) { + String name = (String)map.get("real"); + String path = (String)map.get("path"); + + return null; + } + public static VersioningSystem create(final Class real, final String path) { + return new VersioningSystem() { + VersioningSystem instance; + + @Override + public void getOriginalFile(File workingCopy, File originalFile) { + super.getOriginalFile(workingCopy, originalFile); + } + + @Override + public File getTopmostManagedAncestor(File file) { + for (;;) { + if (new File(file, path).exists()) { + return file; + } + file = file.getParentFile(); + } + } + + @Override + public VCSAnnotator getVCSAnnotator() { + if (instance == null) { + instance = real.newInstance(); + } + return instance.getVCSAnnotator(); + } + + @Override + public VCSInterceptor getVCSInterceptor() { + return super.getVCSInterceptor(); + } + + }; } /**