X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.slc%2Fsrc%2Forg%2Fargeo%2Fapi%2Fslc%2Fdeploy%2FVersioningDriver.java;fp=org.argeo.api.slc%2Fsrc%2Forg%2Fargeo%2Fapi%2Fslc%2Fdeploy%2FVersioningDriver.java;h=42ed9f047e9744400433ff3d5f59bc19782a86cd;hb=d07cf3c7dfdeafa2b1efafe547b54d56a8b52ced;hp=0000000000000000000000000000000000000000;hpb=8596685647867307b862b8a89742b6a62ba75fcd;p=gpl%2Fargeo-slc.git 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 index 000000000..42ed9f047 --- /dev/null +++ b/org.argeo.api.slc/src/org/argeo/api/slc/deploy/VersioningDriver.java @@ -0,0 +1,33 @@ +package org.argeo.api.slc.deploy; + +import java.io.File; +import java.io.OutputStream; +import java.util.List; + +/** Abstracts common versioning operations */ +public interface VersioningDriver { + public void getFileFromRepository(String repositoryBaseUrl, + String location, OutputStream out); + + public List getChangedPaths(File repositoryRoot, Long revision); + + public String getRepositoryRoot(String repositoryUrl); + + public String getRelativePath(String repositoryUrl); + + public void updateToHead(File fileOrDir); + + public void importFileOrDir(String repositoryUrl, File fileOrDir); + + /** + * Checks out or update this versioned directory + * + * @return true if the content has changed, false otherwise + */ + public Boolean checkout(String repositoryUrl, File destDir, + Boolean recursive); + + public void createRepository(String filePath); + + public void commit(File fileOrDir, String commitMessage); +}