Linux教程網
1.pom依賴
- <dependency>
- <groupId>org.tmatesoft.svnkit</groupId>
- <artifactId>svnkit</artifactId>
- <version>1.3.5</version>
- </dependency>
2.java調用代碼
- import org.tmatesoft.svn.core.SVNDepth;
- import org.tmatesoft.svn.core.SVNException;
- import org.tmatesoft.svn.core.SVNURL;
- import org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory;
- import org.tmatesoft.svn.core.internal.wc.DefaultSVNOptions;
- import org.tmatesoft.svn.core.wc.SVNClientManager;
- import org.tmatesoft.svn.core.wc.SVNLogClient;
- import org.tmatesoft.svn.core.wc.SVNRevision;
- import org.tmatesoft.svn.core.wc.SVNUpdateClient;
-
- public class SvnTest {
-
- static {
- DAVRepositoryFactory.setup();
- }
-
- private SVNClientManager manager;
- private SVNURL repositoryBaseUrl;
-
- public SvnTest() {
- DefaultSVNOptions options = new DefaultSVNOptions();
- manager = SVNClientManager.newInstance(options);
- // manager = SVNClientManager.newInstance(options,
- // "username","passwrod"); //如果需要用戶名密碼
- try {
- repositoryBaseUrl = SVNURL
- .parseURIDecoded("http://svn.apache.org/repos/asf/logging/log4j/trunk/src/main/java/org/apache/log4j/or"); // 傳入svn地址
- } catch (SVNException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- }
-
- public void test() throws SVNException {
- SVNLogClient logClient = manager.getLogClient();
-
- // svn list
- DirEntryHandler handler = new DirEntryHandler(); // 在svn
- // co時對每個文件目錄的處理,實現ISVNDirEntryHandler接口
- logClient.doList(repositoryBaseUrl, SVNRevision.HEAD, SVNRevision.HEAD,
- false, true, handler); // 列出當前svn地址的目錄,對每個文件進行處理
-
- // svn co
- UpdateEventHandler svnEventHandler = new UpdateEventHandler(); // svn co時對每個文件的處理
- SVNUpdateClient client = manager.getUpdateClient();
- client.setIgnoreExternals(true);
- client.setEventHandler(svnEventHandler);
- File to = new File("e:\\log\\testsvn"); // co出來的文件存放目錄
- client.doCheckout(repositoryBaseUrl, to, SVNRevision.HEAD,
- SVNRevision.HEAD, SVNDepth.INFINITY, false);
-
- // svn update
- client.setIgnoreExternals(true);
- client.setEventHandler(svnEventHandler);
-
- client.doUpdate(to, SVNRevision.HEAD, SVNDepth.INFINITY,true, false);
-
- }
-
- public static void main(String[] args) throws SVNException {
- SvnTest svntest = new SvnTest();
- svntest.test();
- }
- }
- import java.util.ArrayList;
- import java.util.List;
-
- import org.tmatesoft.svn.core.ISVNDirEntryHandler;
- import org.tmatesoft.svn.core.SVNDirEntry;
- import org.tmatesoft.svn.core.SVNException;
- import org.tmatesoft.svn.core.SVNNodeKind;
-
- import com.alibaba.tools.code.SearchConfig;
-
- public class DirEntryHandler implements ISVNDirEntryHandler {
-
- @Override
- public void handleDirEntry(SVNDirEntry dirEntry) throws SVNException {
-
- System.out.println(dirEntry.getRelativePath() + "/" + dirEntry.getName());
- }
-
- }
- import java.io.IOException;
-
- import org.apache.commons.io.FileUtils;
- import org.tmatesoft.svn.core.SVNCancelException;
- import org.tmatesoft.svn.core.SVNNodeKind;
- import org.tmatesoft.svn.core.wc.ISVNEventHandler;
- import org.tmatesoft.svn.core.wc.SVNEvent;
- import org.tmatesoft.svn.core.wc.SVNEventAction;
-
- public class UpdateEventHandler implements ISVNEventHandler {
-
- public void handleEvent(SVNEvent event, double progress) {
- SVNEventAction action = event.getAction();
- SVNNodeKind nodeKind = event.getNodeKind();
-
- if (SVNNodeKind.DIR.equals(nodeKind)) {
- // folder
- System.out.println(event.getFile().getName());
-
- } else {
- // treat as file for all other type
- if (action == SVNEventAction.UPDATE_DELETE) {
- try {
- System.out.println(event.getFile().getName() + "\t" + FileUtils.readFileToString(event.getFile()));
- } catch (IOException e) {
-
- }
- } else if (action == SVNEventAction.UPDATE_ADD || action == SVNEventAction.UPDATE_UPDATE) {
- try {
- System.out.println(event.getFile().getName() + "\t" + FileUtils.readFileToString(event.getFile()));
- } catch (IOException e) {
-
- }
- }
- }
- }
-
- public void checkCancelled() throws SVNCancelException {
- }
-
- }
輸出:
- /or
- jms/jms
- jms/MessageRenderer.java/MessageRenderer.java
- jms/package.html/package.html
- sax/sax
- sax/AttributesRenderer.java/AttributesRenderer.java
- sax/package.html/package.html
- DefaultRenderer.java/DefaultRenderer.java
- ObjectRenderer.java/ObjectRenderer.java
- RendererMap.java/RendererMap.java
- ThreadGroupRenderer.java/ThreadGroupRenderer.java
- package.html/package.html
- testsvn
- testsvn
Copyright ©
Linux教程網 All Rights Reserved