mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-03 12:05:52 +01:00
Use better names
The name 'workdir' is now only used for a concrete directory, where a clone can be created in. The new name 'working copy' is used for a concrete instance of such a directory, where a clone has been created in for a repository stored in SCM-Manager. Such a working copy can be cached and reused for further changes.
This commit is contained in:
@@ -21,13 +21,13 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
import sonia.scm.repository.spi.SvnContext;
|
||||
import sonia.scm.repository.util.WorkdirFactory;
|
||||
import sonia.scm.repository.util.WorkingCopyFactory;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public interface SvnWorkDirFactory extends WorkdirFactory<File, File, SvnContext> {
|
||||
public interface SvnWorkingCopyFactory extends WorkingCopyFactory<File, File, SvnContext> {
|
||||
}
|
||||
@@ -29,26 +29,23 @@ import org.tmatesoft.svn.core.SVNException;
|
||||
import org.tmatesoft.svn.core.SVNURL;
|
||||
import org.tmatesoft.svn.core.wc.SVNClientManager;
|
||||
import org.tmatesoft.svn.core.wc.SVNRevision;
|
||||
import org.tmatesoft.svn.core.wc.SVNWCClient;
|
||||
import org.tmatesoft.svn.core.wc2.SvnCheckout;
|
||||
import org.tmatesoft.svn.core.wc2.SvnOperationFactory;
|
||||
import org.tmatesoft.svn.core.wc2.SvnTarget;
|
||||
import sonia.scm.repository.InternalRepositoryException;
|
||||
import sonia.scm.repository.Repository;
|
||||
import sonia.scm.repository.SvnWorkDirFactory;
|
||||
import sonia.scm.repository.util.CacheSupportingWorkdirProvider;
|
||||
import sonia.scm.repository.util.SimpleWorkdirFactory;
|
||||
import sonia.scm.repository.SvnWorkingCopyFactory;
|
||||
import sonia.scm.repository.util.WorkingCopyPool;
|
||||
import sonia.scm.repository.util.SimpleWorkingCopyFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.servlet.ServletContextEvent;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
public class SimpleSvnWorkDirFactory extends SimpleWorkdirFactory<File, File, SvnContext> implements SvnWorkDirFactory {
|
||||
public class SimpleSvnWorkingCopyFactory extends SimpleWorkingCopyFactory<File, File, SvnContext> implements SvnWorkingCopyFactory {
|
||||
|
||||
@Inject
|
||||
public SimpleSvnWorkDirFactory(CacheSupportingWorkdirProvider workdirProvider) {
|
||||
super(workdirProvider);
|
||||
public SimpleSvnWorkingCopyFactory(WorkingCopyPool workingCopyPool) {
|
||||
super(workingCopyPool);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -99,6 +96,6 @@ public class SimpleSvnWorkDirFactory extends SimpleWorkdirFactory<File, File, Sv
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void closeWorkdirInternal(File workdir) {
|
||||
protected void closeWorkingCopyInternal(File workingCopy) {
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@ import org.tmatesoft.svn.core.wc.SVNWCClient;
|
||||
import org.tmatesoft.svn.core.wc.SVNWCUtil;
|
||||
import sonia.scm.repository.InternalRepositoryException;
|
||||
import sonia.scm.repository.Repository;
|
||||
import sonia.scm.repository.SvnWorkDirFactory;
|
||||
import sonia.scm.repository.SvnWorkingCopyFactory;
|
||||
import sonia.scm.repository.util.WorkingCopy;
|
||||
|
||||
import java.io.File;
|
||||
@@ -43,19 +43,19 @@ import java.nio.file.Path;
|
||||
public class SvnModifyCommand implements ModifyCommand {
|
||||
|
||||
private SvnContext context;
|
||||
private SvnWorkDirFactory workDirFactory;
|
||||
private SvnWorkingCopyFactory workingCopyFactory;
|
||||
private Repository repository;
|
||||
|
||||
SvnModifyCommand(SvnContext context, SvnWorkDirFactory workDirFactory) {
|
||||
SvnModifyCommand(SvnContext context, SvnWorkingCopyFactory workingCopyFactory) {
|
||||
this.context = context;
|
||||
this.repository = context.getRepository();
|
||||
this.workDirFactory = workDirFactory;
|
||||
this.workingCopyFactory = workingCopyFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(ModifyCommandRequest request) {
|
||||
SVNClientManager clientManager = SVNClientManager.newInstance();
|
||||
try (WorkingCopy<File, File> workingCopy = workDirFactory.createWorkingCopy(context, null)) {
|
||||
try (WorkingCopy<File, File> workingCopy = workingCopyFactory.createWorkingCopy(context, null)) {
|
||||
File workingDirectory = workingCopy.getDirectory();
|
||||
modifyWorkingDirectory(request, clientManager, workingDirectory);
|
||||
return commitChanges(clientManager, workingDirectory, request.getCommitMessage());
|
||||
|
||||
@@ -28,7 +28,7 @@ import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.io.Closeables;
|
||||
import sonia.scm.repository.Repository;
|
||||
import sonia.scm.repository.SvnRepositoryHandler;
|
||||
import sonia.scm.repository.SvnWorkDirFactory;
|
||||
import sonia.scm.repository.SvnWorkingCopyFactory;
|
||||
import sonia.scm.repository.api.Command;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@@ -54,10 +54,10 @@ public class SvnRepositoryServiceProvider extends RepositoryServiceProvider
|
||||
|
||||
@Inject
|
||||
SvnRepositoryServiceProvider(SvnRepositoryHandler handler,
|
||||
Repository repository, SvnWorkDirFactory workdirFactory)
|
||||
Repository repository, SvnWorkingCopyFactory workingCopyFactory)
|
||||
{
|
||||
this.context = new SvnContext(repository, handler.getDirectory(repository.getId()));
|
||||
this.workDirFactory = workdirFactory;
|
||||
this.workingCopyFactory = workingCopyFactory;
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
@@ -153,7 +153,7 @@ public class SvnRepositoryServiceProvider extends RepositoryServiceProvider
|
||||
}
|
||||
|
||||
public ModifyCommand getModifyCommand() {
|
||||
return new SvnModifyCommand(context, workDirFactory);
|
||||
return new SvnModifyCommand(context, workingCopyFactory);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -185,5 +185,5 @@ public class SvnRepositoryServiceProvider extends RepositoryServiceProvider
|
||||
/** Field description */
|
||||
private final SvnContext context;
|
||||
|
||||
private final SvnWorkDirFactory workDirFactory;
|
||||
private final SvnWorkingCopyFactory workingCopyFactory;
|
||||
}
|
||||
|
||||
@@ -21,25 +21,25 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository.spi;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import sonia.scm.plugin.Extension;
|
||||
import sonia.scm.repository.Repository;
|
||||
import sonia.scm.repository.SvnRepositoryHandler;
|
||||
import sonia.scm.repository.SvnWorkDirFactory;
|
||||
import sonia.scm.repository.SvnWorkingCopyFactory;
|
||||
|
||||
@Extension
|
||||
public class SvnRepositoryServiceResolver implements RepositoryServiceResolver {
|
||||
|
||||
private SvnRepositoryHandler handler;
|
||||
private SvnWorkDirFactory workdirFactory;
|
||||
private SvnWorkingCopyFactory workingCopyFactory;
|
||||
|
||||
@Inject
|
||||
public SvnRepositoryServiceResolver(SvnRepositoryHandler handler, SvnWorkDirFactory workdirFactory) {
|
||||
public SvnRepositoryServiceResolver(SvnRepositoryHandler handler, SvnWorkingCopyFactory workingCopyFactory) {
|
||||
this.handler = handler;
|
||||
this.workdirFactory = workdirFactory;
|
||||
this.workingCopyFactory = workingCopyFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -47,7 +47,7 @@ public class SvnRepositoryServiceResolver implements RepositoryServiceResolver {
|
||||
SvnRepositoryServiceProvider provider = null;
|
||||
|
||||
if (SvnRepositoryHandler.TYPE_NAME.equalsIgnoreCase(repository.getType())) {
|
||||
provider = new SvnRepositoryServiceProvider(handler, repository, workdirFactory);
|
||||
provider = new SvnRepositoryServiceProvider(handler, repository, workingCopyFactory);
|
||||
}
|
||||
|
||||
return provider;
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.web;
|
||||
|
||||
import com.google.inject.servlet.ServletModule;
|
||||
@@ -29,8 +29,8 @@ import org.mapstruct.factory.Mappers;
|
||||
import sonia.scm.api.v2.resources.SvnConfigDtoToSvnConfigMapper;
|
||||
import sonia.scm.api.v2.resources.SvnConfigToSvnConfigDtoMapper;
|
||||
import sonia.scm.plugin.Extension;
|
||||
import sonia.scm.repository.SvnWorkDirFactory;
|
||||
import sonia.scm.repository.spi.SimpleSvnWorkDirFactory;
|
||||
import sonia.scm.repository.SvnWorkingCopyFactory;
|
||||
import sonia.scm.repository.spi.SimpleSvnWorkingCopyFactory;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -43,6 +43,6 @@ public class SvnServletModule extends ServletModule {
|
||||
protected void configureServlets() {
|
||||
bind(SvnConfigDtoToSvnConfigMapper.class).to(Mappers.getMapper(SvnConfigDtoToSvnConfigMapper.class).getClass());
|
||||
bind(SvnConfigToSvnConfigDtoMapper.class).to(Mappers.getMapper(SvnConfigToSvnConfigDtoMapper.class).getClass());
|
||||
bind(SvnWorkDirFactory.class).to(SimpleSvnWorkDirFactory.class);
|
||||
bind(SvnWorkingCopyFactory.class).to(SimpleSvnWorkingCopyFactory.class);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user