11package 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+
315import 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 ;
523import org .scm4j .vcs .api .exceptions .EVCSBranchExists ;
624import org .scm4j .vcs .api .exceptions .EVCSException ;
725import org .scm4j .vcs .api .exceptions .EVCSFileNotFound ;
826import org .scm4j .vcs .api .exceptions .EVCSTagExists ;
927import org .scm4j .vcs .api .workingcopy .IVCSLockedWorkingCopy ;
1028import org .scm4j .vcs .api .workingcopy .IVCSRepositoryWorkspace ;
1129import 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 ;
1340import org .tmatesoft .svn .core .auth .BasicAuthenticationManager ;
1441import org .tmatesoft .svn .core .auth .SVNAuthentication ;
1542import org .tmatesoft .svn .core .auth .SVNPasswordAuthentication ;
1643import org .tmatesoft .svn .core .internal .wc .DefaultSVNOptions ;
1744import org .tmatesoft .svn .core .io .SVNRepository ;
1845import 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
2868public 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}
0 commit comments