use of org.tmatesoft.svn.core.wc.SVNRevision in project intellij-community by JetBrains.
the class RepositoryBrowserDialog method doCheckout.
protected void doCheckout(@Nullable final CheckoutProvider.Listener listener, final RepositoryTreeNode selectedNode) {
if (selectedNode == null) {
return;
}
SVNURL url = selectedNode.getURL();
String relativePath = "";
final DirectoryEntry entry = selectedNode.getSVNDirEntry();
if (entry != null) {
if (entry.getRepositoryRoot() != null) {
if (!entry.getRepositoryRoot().equals(url)) {
relativePath = SVNPathUtil.getRelativePath(entry.getRepositoryRoot().toString(), url.toDecodedString());
}
} else {
relativePath = entry.getRelativePath();
}
} else {
relativePath = url.getPath();
}
File dir = selectFile(SvnBundle.message("svn.checkout.destination.directory.title"), SvnBundle.message("svn.checkout.destination.directory.description"));
if (dir == null) {
return;
}
Project p = myProject;
CheckoutOptionsDialog dialog = new CheckoutOptionsDialog(p, url, dir, SvnUtil.getVirtualFile(dir.getAbsolutePath()), relativePath);
dialog.show();
dir = dialog.getTarget();
if (dialog.isOK() && dir != null) {
final SVNRevision revision;
try {
revision = dialog.getRevision();
} catch (ConfigurationException e) {
Messages.showErrorDialog(SvnBundle.message("message.text.cannot.checkout", e.getMessage()), SvnBundle.message("message.title.check.out"));
return;
}
SvnCheckoutProvider.doCheckout(myProject, dir, url.toString(), revision, dialog.getDepth(), dialog.isIgnoreExternals(), listener);
}
}
use of org.tmatesoft.svn.core.wc.SVNRevision in project intellij-community by JetBrains.
the class TreeConflictRefreshablePanel method getPegRevisionFromLeftSide.
@Nullable
private SVNRevision getPegRevisionFromLeftSide(@NotNull TreeConflictDescription description) {
SVNRevision result = null;
if (description.getSourceLeftVersion() != null) {
long committed = description.getSourceLeftVersion().getPegRevision();
if (myCommittedRevision != null && myCommittedRevision.getRevision().getNumber() < committed && myCommittedRevision.getRevision().isValid()) {
committed = myCommittedRevision.getRevision().getNumber();
}
result = SVNRevision.create(committed);
}
return result;
}
use of org.tmatesoft.svn.core.wc.SVNRevision in project intellij-community by JetBrains.
the class SvnUpdateRootOptionsPanel method apply.
public void apply(final SvnConfiguration configuration) throws ConfigurationException {
final UpdateRootInfo rootInfo = configuration.getUpdateRootInfo(myRoot.getIOFile(), myVcs);
if (myUpdateToSpecificUrl.isSelected()) {
try {
rootInfo.setUrl(SvnUtil.createUrl(myURLText.getText(), false));
} catch (SvnBindException e) {
throw new ConfigurationException("Invalid url: " + myURLText.getText());
}
}
rootInfo.setUpdateToRevision(myRevisionBox.isSelected());
final SVNRevision revision = SVNRevision.parse(myRevisionText.getText());
if (!revision.isValid()) {
throw new ConfigurationException(SvnBundle.message("invalid.svn.revision.error.message", myRevisionText.getText()));
}
rootInfo.setRevision(revision);
}
use of org.tmatesoft.svn.core.wc.SVNRevision in project intellij-community by JetBrains.
the class PortableStatus method getRevision.
@NotNull
@Override
public SVNRevision getRevision() {
final SVNRevision revision = super.getRevision();
if (revision.isValid())
return revision;
final StatusType status = getContentsStatus();
if (StatusType.STATUS_NONE.equals(status) || StatusType.STATUS_UNVERSIONED.equals(status) || StatusType.STATUS_ADDED.equals(status))
return revision;
final Info info = initInfo();
return info == null ? revision : info.getRevision();
}
use of org.tmatesoft.svn.core.wc.SVNRevision in project intellij-community by JetBrains.
the class SvnHistoryProvider method reportAppendableHistory.
public void reportAppendableHistory(FilePath path, final VcsAppendableHistorySessionPartner partner, @Nullable final SVNRevision from, @Nullable final SVNRevision to, final int limit, SVNRevision peg, final boolean forceBackwards) throws VcsException {
FilePath committedPath = path;
Change change = ChangeListManager.getInstance(myVcs.getProject()).getChange(path);
if (change != null) {
final ContentRevision beforeRevision = change.getBeforeRevision();
final ContentRevision afterRevision = change.getAfterRevision();
if (beforeRevision != null && afterRevision != null && !beforeRevision.getFile().equals(afterRevision.getFile()) && afterRevision.getFile().equals(path)) {
committedPath = beforeRevision.getFile();
}
// revision can be VcsRevisionNumber.NULL
if (peg == null && change.getBeforeRevision() != null && change.getBeforeRevision().getRevisionNumber() instanceof SvnRevisionNumber) {
peg = ((SvnRevisionNumber) change.getBeforeRevision().getRevisionNumber()).getRevision();
}
}
boolean showMergeSources = myVcs.getSvnConfiguration().isShowMergeSourcesInAnnotate();
final LogLoader logLoader;
if (path.isNonLocal()) {
logLoader = new RepositoryLoader(myVcs, committedPath, from, to, limit, peg, forceBackwards, showMergeSources);
} else {
logLoader = new LocalLoader(myVcs, committedPath, from, to, limit, peg, showMergeSources);
}
try {
logLoader.preliminary();
} catch (SVNException e) {
throw new VcsException(e);
}
logLoader.check();
if (showMergeSources) {
logLoader.initSupports15();
}
final SvnHistorySession historySession = new SvnHistorySession(myVcs, Collections.emptyList(), committedPath, showMergeSources && Boolean.TRUE.equals(logLoader.mySupport15), null, false, !path.isNonLocal());
final Ref<Boolean> sessionReported = new Ref<>();
final ProgressIndicator indicator = ProgressManager.getInstance().getProgressIndicator();
if (indicator != null) {
indicator.setText(SvnBundle.message("progress.text2.collecting.history", path.getName()));
}
final Consumer<VcsFileRevision> consumer = vcsFileRevision -> {
if (!Boolean.TRUE.equals(sessionReported.get())) {
partner.reportCreatedEmptySession(historySession);
sessionReported.set(true);
}
partner.acceptRevision(vcsFileRevision);
};
logLoader.setConsumer(consumer);
logLoader.load();
logLoader.check();
}
Aggregations