Merge tag 'v2.3.15' into testing
[gpl/argeo-slc.git] / org.argeo.api.slc / src / org / argeo / api / slc / deploy / VersioningDriver.java
diff --git a/org.argeo.api.slc/src/org/argeo/api/slc/deploy/VersioningDriver.java b/org.argeo.api.slc/src/org/argeo/api/slc/deploy/VersioningDriver.java
new file mode 100644 (file)
index 0000000..42ed9f0
--- /dev/null
@@ -0,0 +1,33 @@
+package org.argeo.api.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