Skip to content

Commit c40c7d5

Browse files
committed
* getLastTag() removed
getTageByName() removed isReveisionTagged() removed getTagsOnRevision() added getFileContent() revision argument added
1 parent d47de48 commit c40c7d5

File tree

2 files changed

+56
-107
lines changed

2 files changed

+56
-107
lines changed

src/main/java/org/scm4j/vcs/svn/SVNVCS.java

Lines changed: 56 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,69 @@
11
package org.scm4j.vcs.svn;
22

3+
import java.io.ByteArrayOutputStream;
4+
import java.io.File;
5+
import java.io.FileWriter;
6+
import java.nio.charset.StandardCharsets;
7+
import java.util.ArrayList;
8+
import java.util.Collection;
9+
import java.util.Collections;
10+
import java.util.Comparator;
11+
import java.util.HashSet;
12+
import java.util.List;
13+
import java.util.Set;
14+
315
import org.apache.commons.io.FileUtils;
4-
import org.scm4j.vcs.api.*;
16+
import org.scm4j.vcs.api.IVCS;
17+
import org.scm4j.vcs.api.VCSChangeType;
18+
import org.scm4j.vcs.api.VCSCommit;
19+
import org.scm4j.vcs.api.VCSDiffEntry;
20+
import org.scm4j.vcs.api.VCSMergeResult;
21+
import org.scm4j.vcs.api.VCSTag;
22+
import org.scm4j.vcs.api.WalkDirection;
523
import org.scm4j.vcs.api.exceptions.EVCSBranchExists;
624
import org.scm4j.vcs.api.exceptions.EVCSException;
725
import org.scm4j.vcs.api.exceptions.EVCSFileNotFound;
826
import org.scm4j.vcs.api.exceptions.EVCSTagExists;
927
import org.scm4j.vcs.api.workingcopy.IVCSLockedWorkingCopy;
1028
import org.scm4j.vcs.api.workingcopy.IVCSRepositoryWorkspace;
1129
import org.scm4j.vcs.api.workingcopy.IVCSWorkspace;
12-
import org.tmatesoft.svn.core.*;
30+
import org.tmatesoft.svn.core.ISVNLogEntryHandler;
31+
import org.tmatesoft.svn.core.SVNCommitInfo;
32+
import org.tmatesoft.svn.core.SVNDepth;
33+
import org.tmatesoft.svn.core.SVNDirEntry;
34+
import org.tmatesoft.svn.core.SVNException;
35+
import org.tmatesoft.svn.core.SVNLogEntry;
36+
import org.tmatesoft.svn.core.SVNLogEntryPath;
37+
import org.tmatesoft.svn.core.SVNNodeKind;
38+
import org.tmatesoft.svn.core.SVNProperties;
39+
import org.tmatesoft.svn.core.SVNURL;
1340
import org.tmatesoft.svn.core.auth.BasicAuthenticationManager;
1441
import org.tmatesoft.svn.core.auth.SVNAuthentication;
1542
import org.tmatesoft.svn.core.auth.SVNPasswordAuthentication;
1643
import org.tmatesoft.svn.core.internal.wc.DefaultSVNOptions;
1744
import org.tmatesoft.svn.core.io.SVNRepository;
1845
import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
19-
import org.tmatesoft.svn.core.wc.*;
20-
import org.tmatesoft.svn.core.wc2.*;
21-
22-
import java.io.ByteArrayOutputStream;
23-
import java.io.File;
24-
import java.io.FileWriter;
25-
import java.nio.charset.StandardCharsets;
26-
import java.util.*;
46+
import org.tmatesoft.svn.core.wc.ISVNConflictHandler;
47+
import org.tmatesoft.svn.core.wc.ISVNOptions;
48+
import org.tmatesoft.svn.core.wc.SVNClientManager;
49+
import org.tmatesoft.svn.core.wc.SVNConflictChoice;
50+
import org.tmatesoft.svn.core.wc.SVNConflictDescription;
51+
import org.tmatesoft.svn.core.wc.SVNConflictResult;
52+
import org.tmatesoft.svn.core.wc.SVNCopyClient;
53+
import org.tmatesoft.svn.core.wc.SVNCopySource;
54+
import org.tmatesoft.svn.core.wc.SVNDiffClient;
55+
import org.tmatesoft.svn.core.wc.SVNRevision;
56+
import org.tmatesoft.svn.core.wc.SVNRevisionRange;
57+
import org.tmatesoft.svn.core.wc.SVNStatusType;
58+
import org.tmatesoft.svn.core.wc.SVNUpdateClient;
59+
import org.tmatesoft.svn.core.wc.SVNWCClient;
60+
import org.tmatesoft.svn.core.wc.SVNWCUtil;
61+
import org.tmatesoft.svn.core.wc2.ISvnObjectReceiver;
62+
import org.tmatesoft.svn.core.wc2.SvnDiff;
63+
import org.tmatesoft.svn.core.wc2.SvnDiffStatus;
64+
import org.tmatesoft.svn.core.wc2.SvnDiffSummarize;
65+
import org.tmatesoft.svn.core.wc2.SvnOperationFactory;
66+
import org.tmatesoft.svn.core.wc2.SvnTarget;
2767

2868
public class SVNVCS implements IVCS {
2969
private static final int SVN_PATH_IS_NOT_WORKING_COPY_ERROR_CODE = 155007;
@@ -243,12 +283,12 @@ public void setProxy(String host, int port, String proxyUser, String proxyPasswo
243283

244284

245285
@Override
246-
public String getFileContent(String branchName, String filePath, String encoding) {
286+
public String getFileContent(String branchName, String filePath, String revision) {
247287
ByteArrayOutputStream baos = new ByteArrayOutputStream();
248288
try {
249289
repository.getFile(new File(getBranchName(branchName), filePath).getPath().replace("\\", "/"),
250-
-1, new SVNProperties(), baos);
251-
return baos.toString(encoding);
290+
revision == null? -1 : Long.parseLong(revision), new SVNProperties(), baos);
291+
return baos.toString(StandardCharsets.UTF_8.name());
252292
} catch (SVNException e) {
253293
if (e.getErrorMessage().getErrorCode().getCode() == SVN_FILE_NOT_FOUND_ERROR_CODE) {
254294
throw new EVCSFileNotFound(e);
@@ -263,11 +303,6 @@ private String getBranchName(String branchName) {
263303
return branchName == null ? MASTER_PATH : BRANCHES_PATH + branchName;
264304
}
265305

266-
@Override
267-
public String getFileContent(String branchName, String filePath) {
268-
return getFileContent(branchName, filePath, StandardCharsets.UTF_8.name());
269-
}
270-
271306
@Override
272307
public VCSCommit setFileContent(String branchName, String filePath, String content, String commitMessage) {
273308
try (IVCSLockedWorkingCopy wc = repo.getVCSLockedWorkingCopy()) {
@@ -683,31 +718,6 @@ public List<VCSTag> getTags() {
683718
}
684719
}
685720

686-
@Override
687-
public VCSTag getLastTag() {
688-
try {
689-
SVNLogEntry entry = revToSVNEntry(TAGS_PATH, -1L);
690-
691-
Long copyFromRevision = -1L;
692-
for (String s : entry.getChangedPaths().keySet()) {
693-
SVNLogEntryPath entryPath = entry.getChangedPaths().get(s);
694-
copyFromRevision = entryPath.getCopyRevision();
695-
}
696-
697-
SVNLogEntry copyFromEntry = revToSVNEntry("", copyFromRevision);
698-
String tagName = "";
699-
for (String name : revToSVNEntry(TAGS_PATH, -1L).getChangedPaths().keySet()) {
700-
tagName = name.replace("/" + TAGS_PATH, "") ;
701-
}
702-
703-
return new VCSTag(tagName, entry.getMessage(), entry.getAuthor(), svnLogEntryToVCSCommit(copyFromEntry));
704-
} catch (SVNException e) {
705-
throw new EVCSException(e);
706-
} catch (Exception e) {
707-
throw new RuntimeException(e);
708-
}
709-
}
710-
711721
@Override
712722
public void removeTag(String tagName) {
713723
try {
@@ -733,52 +743,10 @@ public void checkout(String branchName, String targetPath, String revision) {
733743
}
734744
}
735745

736-
@Override
737-
public Boolean isRevisionTagged(String revision) {
738-
List<String> entries = new ArrayList<>();
739-
try {
740-
listEntries(entries, TAGS_PATH, "");
741-
SVNTagBaseCommit handler;
742-
for (String entryStr : entries) {
743-
handler = new SVNTagBaseCommit();
744-
745-
repository.log(new String[] { entryStr }, -1 /* start from head descending */,
746-
0, true, true, -1, handler);
747-
748-
SVNDirEntry copyFromEntry = repository.info("", handler.copyFromRevision);
749-
if (copyFromEntry.getRevision() == Long.parseLong(revision)) {
750-
return true;
751-
}
752-
}
753-
return false;
754-
} catch (SVNException e) {
755-
throw new EVCSException(e);
756-
} catch (Exception e) {
757-
throw new RuntimeException(e);
758-
}
759-
}
760746

761747
@Override
762-
public VCSTag getTagByName(String tagName) {
763-
try {
764-
if (repository.info(TAGS_PATH + tagName, -1L) == null) {
765-
return null;
766-
}
767-
SVNLogEntry entry = revToSVNEntry(TAGS_PATH + tagName, -1L);
768-
769-
Long copyFromRevision = -1L;
770-
for (String s : entry.getChangedPaths().keySet()) {
771-
SVNLogEntryPath entryPath = entry.getChangedPaths().get(s);
772-
copyFromRevision = entryPath.getCopyRevision();
773-
}
774-
775-
SVNLogEntry copyFromEntry = revToSVNEntry("", copyFromRevision);
776-
777-
return new VCSTag(tagName, entry.getMessage(), entry.getAuthor(), svnLogEntryToVCSCommit(copyFromEntry));
778-
} catch (SVNException e) {
779-
throw new EVCSException(e);
780-
} catch (Exception e) {
781-
throw new RuntimeException(e);
782-
}
748+
public List<VCSTag> getTagsOnRevision(String revision) {
749+
// TODO Auto-generated method stub
750+
return null;
783751
}
784752
}

src/test/java/org/scm4j/vcs/svn/SVNVCSTest.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -433,23 +433,4 @@ public void testListEntriesNone() throws Exception {
433433
doReturn(SVNNodeKind.NONE).when(mockedRepo).checkPath(anyString(), anyLong());
434434
svn.listEntries(null, null, null); // expecting no NPE
435435
}
436-
437-
@Test
438-
public void testGetTagByNameExceptions() throws Exception {
439-
doThrow(testSVNException).when(svn).revToSVNEntry(anyString(), anyLong());
440-
try {
441-
vcs.getTagByName("");
442-
fail();
443-
} catch (EVCSException e) {
444-
checkEVCSException(e);
445-
}
446-
447-
doThrow(testCommonException).when(svn).revToSVNEntry(anyString(), anyLong());
448-
try {
449-
vcs.getTagByName("");
450-
fail();
451-
} catch (RuntimeException e) {
452-
checkCommonException(e);
453-
}
454-
}
455436
}

0 commit comments

Comments
 (0)