Created
April 9, 2013 12:43
-
-
Save pasviegas/5345410 to your computer and use it in GitHub Desktop.
svn bindings
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package br.org.pav.svp.old; | |
import java.io.File; | |
import java.io.IOException; | |
import org.tmatesoft.svn.core.SVNException; | |
import org.tmatesoft.svn.core.SVNNodeKind; | |
import org.tmatesoft.svn.core.SVNURL; | |
import org.tmatesoft.svn.core.io.ISVNEditor; | |
import org.tmatesoft.svn.core.io.SVNRepository; | |
import org.tmatesoft.svn.core.io.SVNRepositoryFactory; | |
import com.google.common.io.Files; | |
public class SVP { | |
private SVNRepository repo; | |
private SVP() { | |
} | |
public static SVP build(String url) throws SVNException { | |
SVP svp = new SVP(); | |
SVNURL svnurl = SVNURL.parseURIEncoded(url); | |
svp.repo = SVNRepositoryFactory.create(svnurl); | |
return svp; | |
} | |
public boolean checkPath(String path) throws SVNException { | |
return repo.checkPath(path, -1) != SVNNodeKind.NONE; | |
} | |
public boolean sendFile(String fileRoot, String localFilePath) throws SVNException, IOException { | |
String filePath = localFilePath.replace(fileRoot, ""); | |
String[] dirs = filePath.split("/"); | |
for (int i = 0; i < dirs.length-1; i++) { | |
if(!dirs[i].isEmpty()){ | |
String toReplace = filePath.substring(filePath.indexOf(dirs[i+1])-1, filePath.length()); | |
sendDir(filePath.replace(toReplace, "").replaceFirst("/", "")); | |
} | |
} | |
ISVNEditor editor = repo.getCommitEditor("commit " + filePath, null); | |
SVPHelper.addFile(editor, filePath, Files.toByteArray(new File(localFilePath))); | |
return true; | |
} | |
public boolean sendDir(String dirPath) throws SVNException, IOException { | |
if(checkPath(dirPath)){ | |
return true; | |
} | |
ISVNEditor editor = repo.getCommitEditor("commit dir " + dirPath, null); | |
SVPHelper.addDir(editor, dirPath); | |
return true; | |
} | |
public Object modifyFile(String absolutePath, String path) { | |
// TODO Auto-generated method stub | |
return null; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment