--- /dev/null
+package org.argeo.slc.deploy;\r
+\r
+import java.io.File;\r
+import java.io.OutputStream;\r
+import java.util.List;\r
+\r
+/** Abstracts common versioning operations */\r
+public interface VersioningDriver {\r
+ public void getFileFromRepository(String repositoryBaseUrl,\r
+ String location, OutputStream out);\r
+\r
+ public List<String> getChangedPaths(File repositoryRoot, Long revision);\r
+\r
+ public String getRepositoryRoot(String repositoryUrl);\r
+\r
+ public String getRelativePath(String repositoryUrl);\r
+\r
+ public void updateToHead(File fileOrDir);\r
+\r
+ public void importFileOrDir(String repositoryUrl, File fileOrDir);\r
+\r
+ /**\r
+ * Checks out or update this versioned directory\r
+ * \r
+ * @return true if the content has changed, false otherwise\r
+ */\r
+ public Boolean checkout(String repositoryUrl, File destDir,\r
+ Boolean recursive);\r
+\r
+ public void createRepository(String filePath);\r
+\r
+ public void commit(File fileOrDir, String commitMessage);\r
+}\r