GithubHelp home page GithubHelp logo

gradle-svntools-plugin's People

Contributors

markslater avatar martoe avatar mondrejko avatar ptriller avatar ptriller1und1 avatar skyr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gradle-svntools-plugin's Issues

provide access to svn commit log

Hi!

Would it be possible to add some sort of svn log functionality? So you could get access to the commit messages for a given range of revisions?

Incompatible with groovy 2.5.x or gradle 5.x

Hello.
Plugin seems incompatible with gradle 5.+ version which uses groovy 2.5.4

E:\Projects\Deltix\TradeConnectors>gradlew clean build -S

> Task :buildSrc:compileGroovy
startup failed:
E:\Projects\Deltix\TradeConnectors\buildSrc\src\main\groovy\deltix\gradle\plugins\sp\RepositoryManager.groovy: 21: unable to resolve class org.tmatesoft.svn.core.SVNURL
 @ line 21, column 1.
   import org.tmatesoft.svn.core.SVNURL
   ^

E:\Projects\Deltix\TradeConnectors\buildSrc\src\main\groovy\deltix\gradle\plugins\sp\RepositoryManager.groovy: 23: unable to resolve class org.tmatesoft.svn.core.auth.ISVNAuthenticationManager
 @ line 23, column 1.
   import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager
   ^

E:\Projects\Deltix\TradeConnectors\buildSrc\src\main\groovy\deltix\gradle\plugins\sp\RepositoryManager.groovy: 24: unable to resolve class org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory
 @ line 24, column 1.
   import org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory
   ^

E:\Projects\Deltix\TradeConnectors\buildSrc\src\main\groovy\deltix\gradle\plugins\sp\RepositoryManager.groovy: 26: unable to resolve class org.tmatesoft.svn.core.io.SVNRepository
 @ line 26, column 1.
   import org.tmatesoft.svn.core.io.SVNRepository
   ^

E:\Projects\Deltix\TradeConnectors\buildSrc\src\main\groovy\deltix\gradle\plugins\sp\RepositoryManager.groovy: 22: unable to resolve class org.tmatesoft.svn.core.auth.BasicAuthenticationManager
 @ line 22, column 1.
   import org.tmatesoft.svn.core.auth.BasicAuthenticationManager
   ^

E:\Projects\Deltix\TradeConnectors\buildSrc\src\main\groovy\deltix\gradle\plugins\sp\RepositoryManager.groovy: 25: unable to resolve class org.tmatesoft.svn.core.io.SVNFileRevision
 @ line 25, column 1.
   import org.tmatesoft.svn.core.io.SVNFileRevision
   ^

E:\Projects\Deltix\TradeConnectors\buildSrc\src\main\groovy\deltix\gradle\plugins\sp\RepositoryManager.groovy: 81: unable to resolve class org.tmatesoft.svn.core.io.SVNFileRevision
 @ line 81, column 62.
   tiesRevisions, new Comparator<SVNFileRev
                                 ^

E:\Projects\Deltix\TradeConnectors\buildSrc\src\main\groovy\deltix\gradle\plugins\sp\RepositoryManager.groovy: 120: unable to resolve class org.tmatesoft.svn.core.io.SVNFileRevision
 @ line 120, column 62.
   tiesRevisions, new Comparator<SVNFileRev
                                 ^

8 errors


> Task :buildSrc:compileGroovy FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':buildSrc:compileGroovy'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':buildSrc:compileGroovy'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.accept(ExecuteActionsTaskExecuter.java:121)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.accept(ExecuteActionsTaskExecuter.java:117)
        at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:184)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:110)
        at org.gradle.api.internal.tasks.execution.ResolveIncrementalChangesTaskExecuter.execute(ResolveIncrementalChangesTaskExecuter.java:84)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
        at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:74)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:109)
        at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
        at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:94)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:63)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:46)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.lang.Thread.run(Thread.java:748)
Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details.
        at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:184)
        at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:57)
        at org.gradle.api.internal.tasks.compile.GroovyCompilerFactory$DaemonSideCompiler.execute(GroovyCompilerFactory.java:80)
        at org.gradle.api.internal.tasks.compile.GroovyCompilerFactory$DaemonSideCompiler.execute(GroovyCompilerFactory.java:68)
        at org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerCallable.call(AbstractDaemonCompiler.java:86)
        at org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerCallable.call(AbstractDaemonCompiler.java:74)
        at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:42)
        at org.gradle.workers.internal.WorkerDaemonServer.execute(WorkerDaemonServer.java:38)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:111)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
        at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
        at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:175)
        at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:157)
        at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404)
        ... 6 more


* Get more help at https://help.gradle.org

BUILD FAILED in 3s

Cannot set password with kotlin-dsl

Versions

  • gradle 6.2.2
  • kotlin-jvm 1.4.0
  • svntools 3.0

When trying to use the plugin with the kotlin-dsl, you are unable to set the password on either the svntools block or in any task.

The error message is "val cannot be assigned".

I believe this is a compatibility issue with kotlin and groovy char arrays. There is no problem assigning the username which is a String.

SvnDelete can't delete branches

Hi,
so the SvnDelete Task in this repository uses the WCClient of svnkit to delete things, which limits the deletion to items of the working copy. In that way there is no way to delete a whole branch.

The solution could be to use the CommitClient of svnkit. It allows to delete repository items specified by a svn url.

Thanks in advance
Jonas

Error when trying to assign a revision number

I am using the SvnUpdate task and am trying to pass an optional revision number to the task via the command line. Upon execution of the task, if a parameter is passed, I get the following error

A problem occurred evaluating root project 'XBRLReports'.
Cannot cast object '12345' with class 'java.lang.String' to class 'java.lang.Long'

My task is written like so

task updateSource(type: SvnUpdate){
    username = svn_username
    password = svn_password

    if ( project.hasProperty("rev") ) {
        revision = rev
        println "Revision --- $rev"
    }
    doLast{
        println "Revision --- " + revision        
    }
}

And am passing the parameter as so

gradlew updateSource -Prev=12345

When no parameter is passed printing out the revision reports it as null.

Add support for svn checkout

Hi Martin,

Do you have any plans to enhance the plugin to support for additional svn commands? I’d suggest that adding svn checkout would increase the usefulness and hence take-up of the plugin. (I certainly need it to automate a release process in my build script). For now I’m having to use svnant instead.

Thanks.

Feature request: mechanism to do 'svn update'

Part of my build requires obtaining some binaries in a Subversion path. While I can use the SvnCheckout task to first retrieve the material, I only want to do a 'svn update' for subsequent runs (since it takes a fair amount of time), but SvnCheckout insists on the workspaceDir being empty.

Is there a way to effectively do an 'svn update' with this plugin (does it need a new option to support this), or would this be a different task type?

Thanks for your help.

How to get the revision number of a working copy (not: Last changed revision)

Question here:
Is it possible to get the revision number of a working copy, like svn info (first row, revision 900037):

svn info
[...]
Revision: 900037
Node Kind: directory
Schedule: normal
Last Changed Author: user
Last Changed Rev: 900000

svntools.info.revisionNumber seems to return the 'Last Changed Rev' revision number
which is not what I need.

Thank you.

Checkout a immediate children from repository (not a whole repository)

For example, I've got repository:

  • repos/
    • project1
      • trunk
      • branches
        • branch1
        • branch2
    • project2
      • trunk
      • branches

and I need to checkout project1/branches/branch2 (or even project1/branches/branch2/somefile.txt).

If build.gradle looks like:

task checkout(type: at.bxm.gradleplugins.svntools.SvnCheckout) {
    svnUrl = "https://svnserver/repos/project1/branches/branch2"
    workspaceDir = "workspace"
}

, I get a folder structure as:

  • /workspace
    • /.svn
    • /branch2

How can I get the following structure (without downloading the rest of the repository)?

  • /workspace
    • /.svn
    • /project1
      • /branches
        • /branch2

Thanks in advance.

svn-checkout gets SSL error

When we try to use SvnCheckout we get this error:

svn: E175002: SSL handshake failed: 'java.security.cert.CertificateException: Certificates does not conform to algorithm constraints'

Username and password are specified correctly. Our SVN implmentation requires SSL.

SVN Delete branch

Hello

Thanks for this create PlugIn, does it have task for deleting svn branch ?

Thanks very much

SvnCommit without PathValidation.EXISTS check

I have used SvnDelete to delete a directory of files no longer needed and they have been successfully removed from the file system and scheduled for deletion with svn. Then I tried to commit the deletion but the SvnCommit task is checking that the file exists and even trying to re-add it. I think it would be better if SvnCommit didn't try to be quite as smart. Perhaps some flags could be used? autoCheck and/or autoAdd? I'd default them to false but I guess that is your call.

SvnCommit with depth or recursive option?

I have done an SvnAdd on a directory with the recursive flag set to true. This correctly schedules all of the nested files within subdirectories for addition. To commit I then need to explicitly list all files since the depth is set to EMPTY. It might be nice to also allow a recursive flag on SvnCommit or otherwise allow the SvnDepth to be altered. I guess there are a number of ways that such a feature could be made to work but I'd suggest a recursive property which if set to true caused the depth to be infinity and did a check that source was of size one.

Invalid svnUrl value: null

Hi,
I'm trying the following task (on Windows 8.1, with Gradle 2.4):

plugins {
  id "at.bxm.svntools" version "1.1.1"
}

task checkout(type: at.bxm.gradleplugins.svntools.SvnCheckout) << {
  svnUrl = "http://svn.apache.org/repos/asf/spamassassin/trunk"
  workspaceDir = "$project.buildDir/workspace"
}

But I'm always getting:
> Invalid svnUrl value: null

The whole stacktrace:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':checkout'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:310)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:88)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)
        at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
        at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:90)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
        at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:50)
        at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:27)
        at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:40)
        at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:169)
        at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
        at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
        at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
        at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
        at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
        at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
        at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
        at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
        at org.gradle.launcher.Main.doAction(Main.java:33)
        at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
        at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
Caused by: org.gradle.api.InvalidUserDataException: Invalid svnUrl value: null
        at at.bxm.gradleplugins.svntools.SvnCheckout.run(SvnCheckout.groovy:24)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:226)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:219)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:208)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:589)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:572)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
        ... 46 more
Caused by: org.tmatesoft.svn.core.SVNException: svn: E125002: URL cannot be NULL
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
        at org.tmatesoft.svn.core.SVNURL.<init>(SVNURL.java:219)
        at org.tmatesoft.svn.core.SVNURL.parseURIEncoded(SVNURL.java:121)
        at org.tmatesoft.svn.core.SVNURL$parseURIEncoded.call(Unknown Source)
        at at.bxm.gradleplugins.svntools.SvnCheckout.run(SvnCheckout.groovy:22)
        ... 54 more


BUILD FAILED

support "svn export ..."

It would be great if support could be added for "svn export ..." since sometimes for large repositories it would be nice to not have the .svn revision trees.

'E170001: Authentication required'

i run the following command: >> ./gradlew checkoutSvntools

Here is fragment from build.gradle:

apply plugin: “at.bxm.svntools”

task checkoutSvntools(type: SvnCheckout) {
svnUrl = “svn+ssh://svn.marklogic.com/project/engsvn/qa/branches/b10_0/lib”
workspaceDir = “$buildDir”
}

I don’t have any errros if I run: >> svn co svn+ssh://svn.marklogic.com/project/engsvn/qa/branches/b10_0/lib

How I can tell gradle to take existing environemnt ssl credentials?

Support for svn revert and svn patch

In order to make build scripts, would be great to be able to apply automatically SVN patches and also to be able to revert any "dirty" modified code with a SVN revert.

Thanks and cool job here already !

Plugin incompatible with Gradle 3

The move of the DynamicObject class from from org.gradle.api.internal to org.gradle.api.internal.metaobject in Gradle 3 release breaks plugin.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':plugins:release-gradle-plugin:compileGroovy'.
> Unable to load class at.bxm.gradleplugins.svntools.internal.SvnBaseTask due to missing dependency org/gradle/api/internal/DynamicObject

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Since the MO in gradle is to always use latest and greatest (via wrapper), would it make sense to jump up to base on Gradle 3 as of a certain release #? Or do a separate release versioning scheme?

See: https://discuss.gradle.org/t/missing-dependency-org-gradle-api-internal-dynamicobject-prevents-extending-plugin-task/19472

Use of $svntools.info in conjunction with SvnInfo task's sourcePath property

Hi Martin,

When using the SvnInfo task's sourcePath property, I've found that the task only supports accessing the svn info via $project.svnData and not $svntools.info. Attempts to access $svntools.info from within the task (e..g using a doLast {} action) fail with the error:
"Could not execute svn-info on <$project.projectDir> (svn: E155007: ‘<$project.projectDir>' is not a working copy)"

Should $svntools.info respect the sourcePath? Does the project documentation need clarifying to state when $svntools.info and $project.svnData can and can't be used?

Thanks.

add svnSwitch

Hello,

it would be nice to have the SvnSwitch-Task. Right now i have to checkout all revisions i need (trunk, branches) and keep them in directories next to each other to work on them and commit to them independently. The SvnSwitch-Task would be good to have here

SVN Gradle checkout failed and says Authentication Required for SVN access.

Hi Martoe, I am facing an issue with SVN-Gradle checkout. The error says svn: E170001 -Authentication Required for SVN access. I have enough permissions for that SVN repo and I work on it daily.

FYR, I have attached both build.gradle and Gradle.prop's, I'm using. Let me know where I went wrong. Thanks,
Vaibhav.

gradle properties
build gradle

Support the proxy configuration of Gradle

To access subversion server I must use a proxy server.

I have the proxy server defined in ~ /.gradle/gradle.properties and in ~ /.subersion/servers. Unfortunately, without success. What can I do.

Plugin ignores nonProxyHosts setting

When a proxy is configured in the gradle.properties (or system property), but the SVN host is in the nonProxyHosts list, the proxy is used anyway.

Example from gradle.properties
systemProp.http.nonProxyHosts=127.0.0.1|localhost|companysvn

SvnTag should create parent directories

I like to create a svn tag based on the scheme "tags/PROJECT/VERSION/MODULE".

example:

task svnTag(type: at.bxm.gradleplugins.svntools.tasks.SvnTag) {
    tagName = "${project.name}/${project.version}/${project.name}"
    commitMessage = "tag ${project.name} version ${project.version}"
}

Running this task does not work. The parent directories were not created.

Stacktrace

Caused by: org.gradle.api.InvalidUserDataException: svn-copy failed for /svn/REPO/tags/PROJECT/1.1-SNAPSHOT/MODULE
svn: E160013: Commit failed (details follow):
svn: E160013: '/svn/REPO/tags/PROJECT/1.1-SNAPSHOT' path not found: 404 Not Found (https://PRIVATE)
    at at.bxm.gradleplugins.svntools.internal.SvnCopy.run(SvnCopy.groovy:61)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:228)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:221)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:585)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:568)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
    ... 70 more
Caused by: org.tmatesoft.svn.core.SVNException: svn: E160013: Commit failed (details follow):
svn: E160013: '/svn/REPO/tags/PROJECT/1.1-SNAPSHOT' path not found: 404 Not Found (https://PRIVATE)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
    at org.tmatesoft.svn.core.internal.wc.SVNCopyDriver.copyReposToRepos(SVNCopyDriver.java:378)
    at org.tmatesoft.svn.core.internal.wc.SVNCopyDriver.setupCopy(SVNCopyDriver.java:627)
    at org.tmatesoft.svn.core.internal.wc16.SVNCopyClient16.doCopy(SVNCopyClient16.java:440)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnNgReposToReposCopy.run(SvnNgReposToReposCopy.java:65)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnNgReposToReposCopy.run(SvnNgReposToReposCopy.java:23)
    at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
    at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1149)
    at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
    at org.tmatesoft.svn.core.wc2.SvnRemoteCopy.run(SvnRemoteCopy.java:227)
    at org.tmatesoft.svn.core.wc.SVNCopyClient.doCopy(SVNCopyClient.java:581)
    at at.bxm.gradleplugins.svntools.internal.SvnCopy.run(SvnCopy.groovy:50)
    ... 78 more

Please change SvnTag Task to create the parent directories.

Possible changes in SvnCopy.groovy

def copied = clientManager.copyClient.doCopy([copySource] as SVNCopySource[], destUrl, false, true, true, commitMessage, null);

about 'SvnTag task '

I found that the task 'svntag' will (only) tag a revision to svn tags root directory, if i want to a tags/folder.
what should i do?
please help me! thank U

Tagging with spaces

I can't seem to tag use SvnTag with a tagFolder that contains spaces / URL encoding of spaces ...

:tag FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':tag'.
> tagName contains invalid chars: test-tag/dir with spaces/tag-id

And if I attempt to encode those spaces ...

:tag FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':tag'.
> tagName contains invalid chars: test-tag/dir%20with%20spaces/tag-id

It looks to me like at.bxm.gradleplugins.svntools.internal.SvnCopy.isValidName(String) is too over-eager in it's validation. It may be simpler to simply use https://docs.oracle.com/javase/7/docs/api/java/net/URI.html#URI(java.lang.String) and use the URISyntaxException to spot if it's invalid.

Replace existing branch/tag

Add a "replace" flag to the SvnBranch/SvnTag tasks that deletes an existing branch/tag before creating the new one

Provide a "SvnCopy" task

"SvnTag" and a "SvnCopy" (to be implemented) tasks should be a special configuration of a generic "SvnCopy" task

Enhance SvnTag task to support copying from repo URL

Hi Martin,

Do you have any plans to enhance the SvnTag task to support the more common practice of creating a tag by copying the trunk folder from the remote repo, using a specified URL, rather than copying from the local workspace?

Thanks.

Add support for public key authentication

Hi,

Currently it is not possible to access repositories via svn+ssh if they require public key authentication, since the plugin only supports authentication via username and password.
Would it be possible to add this feature?

Thanks,
Patrick

New Feature Request: SVN CleanUp

Hi !

Do you think it could be possible to have a CleanUp task ? It would be very useful to fix "locked" local repo problems.

Cheers and great job already here, by the way!
Miguel

Execute the "SvnInfo" task automatically

Currently, one has to execute "svnInfo" before accessing the "svnData" object. The plugin should be improved so that the "svnData" object is always available and is populated on access

SvnInfo returns last revision number of whole repository, not a requested subfolder

For example, I've got repository:

  • / (last rev = 100)
    • project1 (last rev = 100)
      • trunk (last rev = 100)
      • branches (last rev = 90)
    • project2 (last rev = 50)
      • trunk (last rev = 40)
      • branches (last rev = 50)

and build.gradle as:

task checkout(type: at.bxm.gradleplugins.svntools.SvnCheckout) {
    svnUrl = "https://svnserver/project2/trunk"
    workspaceDir = "src"
}
task vcsInfo(type: at.bxm.gradleplugins.svntools.SvnInfo) {
    sourcePath = "src"
    doLast {
        println "vcsInfo: lastRev = ${project.svnData.revisionNumber}"
    }
}

When I call

'gradle checkout vcsInfo'

, I get output
'vcsInfo: lastRev = 100'

But I expect to get lastRev = 40.
How can I get 40 as last revision number? Thanks in advance.

Feature request: SvnInfo method that can be used during configuration

I find myself in a situation where I need to run SvnInfo against a path outside of the project hierarchy as part of the configuration phase (I do appreciate the prepopulated svntools.info property for the project itself that can be used during configuration). Is it even possible? If not, any suggestions for workarounds (e.g.: call 'svn info' directly)?

If SvnInfo (and other tasks) could be called like a method, in addition to a task, that would be very helpful to perform SVN actions during the configuration phase.

SvnVersion incorrectly detects externals as modified

If you have an unmodified svn:externals in your project then the SvnVersion incorrectly thinks that your WC is modified. Taking the following as an example;

  • common-utils is a svn:external directory
  • At the command line, svnversion correctly identifies that the WC is not modified
  • At the command line, svn status correctly identifies that the WC is not modified (and nor is common-utils),
    but
  • The svntools.version thinks that the WC is modified
  • The svntools.version.modified thinks that the WC is modified
C:\Greg\test>type test.gradle
buildscript {
  repositories {
    mavenLocal()
    jcenter()
  }
  dependencies {
    classpath("at.bxm.gradleplugins:gradle-svntools-plugin:latest.integration")
  }
}
apply plugin: "at.bxm.svntools"

task example1(description: "Using the implicit 'svntools.version' object") << {
  println "'svnversion' output: $svntools.version"
  println svntools.version.modified ? "working copy is dirty" : "working copy is clean"
}

C:\Greg\test>svnversion
16635

C:\Greg\test>svn status
X       common-utils

Performing status on external item at 'common-utils':

C:\Greg\test>gradle -b test.gradle example1
:example1
'svnversion' output: 16635M
working copy is dirty

BUILD SUCCESSFUL

Total time: 7.609 secs
C:\Greg\test>

Repo credentials need to be encrypted

The svn repository credentials in username and password should be encrypted, or at least be able to be moved to a private file like ~/gradle.settings

svn info with url, svn co depth option

hi,

I'd like to have the option to check if a repository url exists or not.

Actually I can try to checkout an url, but this results in an exception if the url doesn't exists. So to avoid this, my idea was to check the url at first with svnInfo.

Additional it would be fine to have the depth option for svnCheckout to easily import e.g. a non existent folder in a very large repo (without a complete checkout)

svnversion support

The svnversion command is a useful tool that displays the status of the local working copy, e.g.

16036:16038M

It would be useful to get that information from the plugin, too.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.