|
3 | 3 | import java.io.ByteArrayOutputStream; |
4 | 4 | import java.io.File; |
5 | 5 | import java.io.FileWriter; |
6 | | -import java.net.URL; |
7 | 6 | import java.nio.charset.StandardCharsets; |
8 | 7 | import java.util.ArrayList; |
9 | 8 | import java.util.Collection; |
|
61 | 60 | import org.tmatesoft.svn.core.wc.SVNWCClient; |
62 | 61 | import org.tmatesoft.svn.core.wc.SVNWCUtil; |
63 | 62 | import org.tmatesoft.svn.core.wc2.ISvnObjectReceiver; |
64 | | -import org.tmatesoft.svn.core.wc2.SvnCopySource; |
65 | 63 | import org.tmatesoft.svn.core.wc2.SvnDiff; |
66 | 64 | import org.tmatesoft.svn.core.wc2.SvnDiffStatus; |
67 | 65 | import org.tmatesoft.svn.core.wc2.SvnDiffSummarize; |
68 | 66 | import org.tmatesoft.svn.core.wc2.SvnOperationFactory; |
69 | | -import org.tmatesoft.svn.core.wc2.SvnRemoteCopy; |
70 | 67 | import org.tmatesoft.svn.core.wc2.SvnTarget; |
71 | 68 |
|
72 | 69 | public class SVNVCS implements IVCS { |
@@ -463,7 +460,7 @@ public Set<String> getBranches(String path) { |
463 | 460 | } |
464 | 461 | Set<String> res = new HashSet<>(); |
465 | 462 | for (String str : tempRes) { |
466 | | - res.add(StringUtils.removeStart(StringUtils.removeStart(str, SVNVCS.BRANCHES_PATH), path)); |
| 463 | + res.add(StringUtils.removeStart(str, SVNVCS.BRANCHES_PATH)); |
467 | 464 | } |
468 | 465 | return res; |
469 | 466 | } catch (SVNException e) { |
@@ -642,29 +639,19 @@ public Boolean fileExists(String branchName, String filePath) { |
642 | 639 | @Override |
643 | 640 | public VCSTag createTag(String branchName, String tagName, String tagMessage, String revisionToTag) throws EVCSTagExists { |
644 | 641 | try (IVCSLockedWorkingCopy wc = repo.getVCSLockedWorkingCopy()) { |
645 | | - checkout(getBranchUrl(branchName), wc.getFolder(), null); |
646 | 642 | SVNURL srcURL = getBranchUrl(branchName); |
647 | 643 | SVNURL dstURL = SVNURL.parseURIEncoded(repoUrl + TAGS_PATH + tagName); |
| 644 | + SVNLogEntry copyFromEntry = revToSVNEntry(getBranchName(branchName), |
| 645 | + revisionToTag == null ? SVNRevision.HEAD.getNumber() : Long.parseLong(revisionToTag)); |
648 | 646 | SVNCopySource copySource = revisionToTag == null ? |
649 | | - new SVNCopySource(SVNRevision.HEAD, SVNRevision.HEAD, srcURL) : |
| 647 | + new SVNCopySource(SVNRevision.HEAD, SVNRevision.create(copyFromEntry.getRevision()), srcURL) : |
650 | 648 | new SVNCopySource(SVNRevision.parse(revisionToTag), SVNRevision.parse(revisionToTag), srcURL); |
651 | 649 |
|
652 | | - SvnRemoteCopy tagOperation = new SvnOperationFactory().createRemoteCopy(); |
653 | | - SvnCopySource source = SvnCopySource.create(SvnTarget.fromURL(srcURL), SVNRevision.UNDEFINED); |
654 | | - tagOperation.addCopySource(source); |
655 | | - tagOperation.setSingleTarget(SvnTarget.fromURL(dstURL)); |
656 | | - tagOperation.setFailWhenDstExists(true); |
657 | | - tagOperation.setCommitMessage(tagMessage); |
658 | | - tagOperation.run(); |
659 | | -// |
660 | | -// clientManager.getCopyClient().doCopy(new SVNCopySource[] {copySource}, dstURL, |
661 | | -// false, false, true, tagMessage, null); |
| 650 | + clientManager.getCopyClient().doCopy(new SVNCopySource[] {copySource}, dstURL, |
| 651 | + false, false, true, tagMessage, null); |
662 | 652 |
|
663 | 653 | SVNDirEntry entry = repository.info(TAGS_PATH + tagName, -1); |
664 | 654 |
|
665 | | - SVNLogEntry copyFromEntry = revToSVNEntry(getBranchName(branchName), |
666 | | - revisionToTag == null ? SVNRevision.BASE.getNumber() : Long.parseLong(revisionToTag)); |
667 | | - |
668 | 655 | return new VCSTag(tagName, tagMessage, entry.getAuthor(), svnLogEntryToVCSCommit(copyFromEntry)); |
669 | 656 | } catch (SVNException e) { |
670 | 657 | if (e.getErrorMessage().getErrorCode().getCode() == SVN_ITEM_EXISTS_ERROR_CODE) { |
|
0 commit comments