mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-03 12:05:52 +01:00
merge with branch 1.x
This commit is contained in:
@@ -113,11 +113,8 @@ public class SvnBrowseCommand extends AbstractSvnCommand
|
||||
String path = request.getPath();
|
||||
long revisionNumber = SvnUtil.getRevisionNumber(request.getRevision());
|
||||
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("browser repository {} in path {} at revision {}",
|
||||
new Object[] { repository.getName(),
|
||||
path, revisionNumber });
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("browser repository {} in path {} at revision {}", repository.getName(), path, revisionNumber);
|
||||
}
|
||||
|
||||
BrowserResult result = null;
|
||||
|
||||
@@ -32,7 +32,6 @@ package sonia.scm.repository.client.spi;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import org.tmatesoft.svn.core.SVNCommitInfo;
|
||||
@@ -46,8 +45,10 @@ import org.tmatesoft.svn.core.wc2.SvnCommit;
|
||||
import org.tmatesoft.svn.core.wc2.SvnLog;
|
||||
import org.tmatesoft.svn.core.wc2.SvnRevisionRange;
|
||||
import org.tmatesoft.svn.core.wc2.SvnTarget;
|
||||
|
||||
import sonia.scm.repository.Changeset;
|
||||
import sonia.scm.repository.SvnUtil;
|
||||
import sonia.scm.repository.client.api.RepositoryClientException;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -71,18 +72,14 @@ public class SvnCommitCommand implements CommitCommand {
|
||||
public Changeset commit(CommitRequest request) throws IOException {
|
||||
SVNWCClient wClient = client.getWCClient();
|
||||
|
||||
List<File> filesToCommit = new ArrayList<>();
|
||||
|
||||
// add files
|
||||
try {
|
||||
wClient.doAdd(addedFiles.toArray(new File[0]), true, false, false,
|
||||
SVNDepth.INFINITY, false, false, false);
|
||||
|
||||
filesToCommit.addAll(addedFiles);
|
||||
addedFiles.clear();
|
||||
|
||||
} catch (SVNException ex) {
|
||||
throw new IOException("failed to add files", ex);
|
||||
throw new RepositoryClientException("failed to add files", ex);
|
||||
}
|
||||
|
||||
// remove files
|
||||
@@ -92,19 +89,15 @@ public class SvnCommitCommand implements CommitCommand {
|
||||
File file = removeIt.next();
|
||||
wClient.doDelete(file, false, true, false);
|
||||
removeIt.remove();
|
||||
filesToCommit.add(file);
|
||||
}
|
||||
} catch (SVNException ex) {
|
||||
throw new IOException("failed to remove files", ex);
|
||||
throw new RepositoryClientException("failed to remove files", ex);
|
||||
}
|
||||
|
||||
|
||||
SvnTarget workingCopyTarget = SvnTarget.fromFile(workingCopy);
|
||||
Changeset changeset;
|
||||
SVNCommitInfo info;
|
||||
|
||||
|
||||
|
||||
// commit files
|
||||
try {
|
||||
SvnCommit commit = client.getOperationFactory().createCommit();
|
||||
@@ -120,7 +113,7 @@ public class SvnCommitCommand implements CommitCommand {
|
||||
}
|
||||
|
||||
} catch (SVNException ex) {
|
||||
throw new IOException("failed to commit", ex);
|
||||
throw new RepositoryClientException("failed to commit", ex);
|
||||
}
|
||||
|
||||
// get log for commit
|
||||
@@ -133,7 +126,7 @@ public class SvnCommitCommand implements CommitCommand {
|
||||
|
||||
changeset = SvnUtil.createChangeset(log.run());
|
||||
} catch (SVNException ex) {
|
||||
throw new IOException("failed to create log entry for last commit", ex);
|
||||
throw new RepositoryClientException("failed to create log entry for last commit", ex);
|
||||
}
|
||||
|
||||
return changeset;
|
||||
|
||||
@@ -44,6 +44,7 @@ import org.tmatesoft.svn.core.wc.SVNUpdateClient;
|
||||
import org.tmatesoft.svn.core.wc.SVNWCUtil;
|
||||
import org.tmatesoft.svn.core.wc2.SvnOperationFactory;
|
||||
import sonia.scm.repository.SvnRepositoryHandler;
|
||||
import sonia.scm.repository.client.api.RepositoryClientException;
|
||||
|
||||
/**
|
||||
* Client provider factory for subversion.
|
||||
@@ -60,7 +61,7 @@ public class SvnRepositoryClientFactoryProvider implements RepositoryClientFacto
|
||||
try {
|
||||
source = SVNURL.fromFile(workingCopy);
|
||||
} catch (SVNException ex) {
|
||||
throw new IOException("failed to parse svn url", ex);
|
||||
throw new RepositoryClientException("failed to parse svn url", ex);
|
||||
}
|
||||
|
||||
// create client
|
||||
@@ -69,11 +70,11 @@ public class SvnRepositoryClientFactoryProvider implements RepositoryClientFacto
|
||||
try {
|
||||
updateClient.doCheckout(source, workingCopy, SVNRevision.HEAD, SVNRevision.HEAD, SVNDepth.INFINITY, true);
|
||||
} catch (SVNException ex) {
|
||||
throw new IOException("failed to checkout repository", ex);
|
||||
throw new RepositoryClientException("failed to checkout repository", ex);
|
||||
}
|
||||
|
||||
// return client provider
|
||||
return new SvnRepositoryClientProvider(client, source, workingCopy);
|
||||
return new SvnRepositoryClientProvider(client, workingCopy);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -101,7 +102,7 @@ public class SvnRepositoryClientFactoryProvider implements RepositoryClientFacto
|
||||
try {
|
||||
remoteUrl = SVNURL.parseURIEncoded(url);
|
||||
} catch (SVNException ex) {
|
||||
throw new IOException("failed to parse svn url", ex);
|
||||
throw new RepositoryClientException("failed to parse svn url", ex);
|
||||
}
|
||||
|
||||
// initial checkout
|
||||
@@ -109,11 +110,11 @@ public class SvnRepositoryClientFactoryProvider implements RepositoryClientFacto
|
||||
try {
|
||||
updateClient.doCheckout(remoteUrl, workingCopy, SVNRevision.HEAD, SVNRevision.HEAD, SVNDepth.INFINITY, true);
|
||||
} catch (SVNException ex) {
|
||||
throw new IOException("failed to checkout repository", ex);
|
||||
throw new RepositoryClientException("failed to checkout repository", ex);
|
||||
}
|
||||
|
||||
// return client provider
|
||||
return new SvnRepositoryClientProvider(client, remoteUrl, workingCopy);
|
||||
return new SvnRepositoryClientProvider(client, workingCopy);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -52,15 +52,13 @@ public class SvnRepositoryClientProvider extends RepositoryClientProvider {
|
||||
);
|
||||
|
||||
private final SVNClientManager client;
|
||||
private final SVNURL remoteRepositoryURL;
|
||||
private final File workingCopy;
|
||||
|
||||
private final List<File> addedFiles = new ArrayList<>();
|
||||
private final List<File> removedFiles = new ArrayList<>();
|
||||
|
||||
SvnRepositoryClientProvider(SVNClientManager client, SVNURL remoteRepositoryURL, File workingCopy) {
|
||||
SvnRepositoryClientProvider(SVNClientManager client, File workingCopy) {
|
||||
this.client = client;
|
||||
this.remoteRepositoryURL = remoteRepositoryURL;
|
||||
this.workingCopy = workingCopy;
|
||||
}
|
||||
|
||||
@@ -78,6 +76,11 @@ public class SvnRepositoryClientProvider extends RepositoryClientProvider {
|
||||
public SvnCommitCommand getCommitCommand() {
|
||||
return new SvnCommitCommand(client, workingCopy, addedFiles, removedFiles);
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getWorkingCopy() {
|
||||
return workingCopy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<ClientCommand> getSupportedClientCommands() {
|
||||
|
||||
Reference in New Issue
Block a user