You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2013/07/20 14:21:12 UTC
svn commit: r1505126 - in /httpcomponents/project-release-tools/trunk: ./
buildSrc/src/main/groovy/
Author: olegk
Date: Sat Jul 20 12:21:11 2013
New Revision: 1505126
URL: http://svn.apache.org/r1505126
Log:
Improved SVN get, update and status tasks
Added:
httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnScheduleForAddition.groovy
- copied, changed from r1504953, httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnStatus.groovy
httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnUpdate.groovy
- copied, changed from r1504953, httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnStatus.groovy
Modified:
httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Svn.groovy
httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnContentTask.groovy
httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnGet.groovy
httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnStatus.groovy
httpcomponents/project-release-tools/trunk/rc.gradle
Modified: httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Svn.groovy
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Svn.groovy?rev=1505126&r1=1505125&r2=1505126&view=diff
==============================================================================
--- httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Svn.groovy (original)
+++ httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Svn.groovy Sat Jul 20 12:21:11 2013
@@ -25,82 +25,107 @@
*
*/
-import org.tmatesoft.svn.cli.svn.SVNCommandEnvironment
-import org.tmatesoft.svn.cli.svn.SVNNotifyPrinter
-import org.tmatesoft.svn.cli.svn.SVNStatusPrinter
+import org.tmatesoft.svn.cli.svn.SVNCommandEnvironment
+import org.tmatesoft.svn.cli.svn.SVNNotifyPrinter
+import org.tmatesoft.svn.cli.svn.SVNStatusPrinter
+import org.tmatesoft.svn.core.SVNDepth
import org.tmatesoft.svn.core.SVNException
import org.tmatesoft.svn.core.SVNURL
-import org.tmatesoft.svn.core.internal.wc17.SVNWCContext
-import org.tmatesoft.svn.core.internal.wc2.compat.SvnCodec
+import org.tmatesoft.svn.core.internal.wc17.SVNWCContext
+import org.tmatesoft.svn.core.internal.wc2.compat.SvnCodec
import org.tmatesoft.svn.core.wc.SVNWCUtil
import org.tmatesoft.svn.core.wc2.ISvnObjectReceiver
import org.tmatesoft.svn.core.wc2.SvnCheckout
import org.tmatesoft.svn.core.wc2.SvnGetStatus
import org.tmatesoft.svn.core.wc2.SvnOperationFactory
+import org.tmatesoft.svn.core.wc2.SvnScheduleForAddition
import org.tmatesoft.svn.core.wc2.SvnStatus
import org.tmatesoft.svn.core.wc2.SvnTarget
import org.tmatesoft.svn.core.wc2.SvnUpdate
class Svn {
- private static SVNCommandEnvironment getSVNCommandEnvironment() {
- new SVNCommandEnvironment("SVN", System.out, System.err, System.in);
- }
-
- private static SvnOperationFactory createOperationFactory(SVNCommandEnvironment env) {
+ private static SVNCommandEnvironment getSVNCommandEnvironment() {
+ new SVNCommandEnvironment("SVN", System.out, System.err, System.in);
+ }
+
+ private static SvnOperationFactory createOperationFactory(SVNCommandEnvironment env) {
SvnOperationFactory opfactory = new SvnOperationFactory()
opfactory.setAuthenticationManager(SVNWCUtil.createDefaultAuthenticationManager())
- opfactory.setEventHandler(new SVNNotifyPrinter(env))
- opfactory
- }
-
- static void checkout(URI src, File dst) {
- SVNCommandEnvironment env = getSVNCommandEnvironment()
- SvnOperationFactory opfactory = createOperationFactory(env)
+ opfactory.setEventHandler(new SVNNotifyPrinter(env))
+ opfactory
+ }
+
+ static void checkout(URI src, File dst) {
+ SVNCommandEnvironment env = getSVNCommandEnvironment()
+ SvnOperationFactory opfactory = createOperationFactory(env)
try {
- SvnCheckout checkoutOp = opfactory.createCheckout()
- checkoutOp.setSource(SvnTarget.fromURL(SVNURL.parseURIEncoded(src.toASCIIString())))
- checkoutOp.setSingleTarget(SvnTarget.fromFile(dst))
- checkoutOp.run()
+ SvnCheckout checkoutOp = opfactory.createCheckout()
+ checkoutOp.setSource(SvnTarget.fromURL(SVNURL.parseURIEncoded(src.toASCIIString())))
+ checkoutOp.setSingleTarget(SvnTarget.fromFile(dst))
+ checkoutOp.run()
} finally {
opfactory.dispose()
}
}
static void update(File dir) {
- SVNCommandEnvironment env = getSVNCommandEnvironment()
- SvnOperationFactory opfactory = createOperationFactory(env)
+ SVNCommandEnvironment env = getSVNCommandEnvironment()
+ SvnOperationFactory opfactory = createOperationFactory(env)
try {
- SvnUpdate updateOp = opfactory.createUpdate()
- updateOp.setSingleTarget(SvnTarget.fromFile(dir))
- updateOp.run()
+ SvnUpdate updateOp = opfactory.createUpdate()
+ updateOp.setSingleTarget(SvnTarget.fromFile(dir))
+ updateOp.run()
} finally {
opfactory.dispose()
}
}
static void status(File dir) {
- SVNCommandEnvironment env = getSVNCommandEnvironment()
- SvnOperationFactory opfactory = createOperationFactory(env)
+ SVNCommandEnvironment env = getSVNCommandEnvironment()
+ SvnOperationFactory opfactory = createOperationFactory(env)
try {
- SVNStatusPrinter statusPrinter = new SVNStatusPrinter(env);
- SVNWCContext context = opfactory.getWcContext();
- SvnGetStatus statusOp = opfactory.createGetStatus()
- statusOp.setSingleTarget(SvnTarget.fromFile(dir))
- statusOp.setReportAll(false)
- statusOp.setReceiver(new ISvnObjectReceiver<SvnStatus>() {
+ SVNStatusPrinter statusPrinter = new SVNStatusPrinter(env)
+ SVNWCContext context = opfactory.getWcContext();
+ SvnGetStatus statusOp = opfactory.createGetStatus()
+ statusOp.setSingleTarget(SvnTarget.fromFile(dir))
+ statusOp.setReportAll(false)
+ statusOp.setReceiver(new ISvnObjectReceiver<SvnStatus>() {
@Override
void receive(SvnTarget target, SvnStatus object) throws SVNException {
- statusPrinter.printStatus(
- env.getRelativePath(target.getFile()),
- SvnCodec.status(context, object), false, true, true, false)
+ String root = dir.getAbsoluteFile();
+ String f = target.getFile().getAbsolutePath()
+ if (f.startsWith(root)) {
+ f = f.substring(root.length())
+ if (f.startsWith('/')) {
+ f = f.substring(1, f.length() - 1)
+ }
+ }
+ statusPrinter.printStatus(f,
+ SvnCodec.status(context, object), false, true, true, false)
}
})
- statusOp.run()
+ statusOp.run()
} finally {
opfactory.dispose()
}
}
+
+ static void scheduleForAddition(File dir) {
+ SVNCommandEnvironment env = getSVNCommandEnvironment()
+ SvnOperationFactory opfactory = createOperationFactory(env)
+ try {
+ SvnScheduleForAddition schedulingOp = opfactory.createScheduleForAddition()
+ schedulingOp.setSingleTarget(SvnTarget.fromFile(dir))
+ schedulingOp.setDepth(SVNDepth.INFINITY)
+ schedulingOp.setForce(true)
+ schedulingOp.setIncludeIgnored(false)
+ schedulingOp.run()
+ } finally {
+ opfactory.dispose()
+ }
+ }
+
}
Modified: httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnContentTask.groovy
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnContentTask.groovy?rev=1505126&r1=1505125&r2=1505126&view=diff
==============================================================================
--- httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnContentTask.groovy (original)
+++ httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnContentTask.groovy Sat Jul 20 12:21:11 2013
@@ -39,13 +39,16 @@ class SvnContentTask extends DefaultTask
void setRepo(URI repo) {
this.repo = repo
if (!repo.absolute) {
- this.localDir = new File(repo.toString())
+ localDir = new File(repo.toString())
} else {
String l = repo.path
+ if (l.startsWith('/')) {
+ l = l.substring(1)
+ }
if (l.endsWith('/')) {
l = l.substring(0, l.length() - 1)
}
- this.localDir = new File(buildDir, l.replace('/', '-'))
+ localDir = new File(project.buildDir, l.replace('/', '-'))
}
}
Modified: httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnGet.groovy
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnGet.groovy?rev=1505126&r1=1505125&r2=1505126&view=diff
==============================================================================
--- httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnGet.groovy (original)
+++ httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnGet.groovy Sat Jul 20 12:21:11 2013
@@ -32,11 +32,9 @@ class SvnGet extends SvnContentTask {
@TaskAction
void get() {
if (repo.absolute) {
- println("Site content source: ${repo}")
if (!localDir.exists()) {
+ println("Checking out from ${repo}")
Svn.checkout(repo, localDir)
- } else {
- Svn.update(localDir)
}
}
}
Copied: httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnScheduleForAddition.groovy (from r1504953, httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnStatus.groovy)
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnScheduleForAddition.groovy?p2=httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnScheduleForAddition.groovy&p1=httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnStatus.groovy&r1=1504953&r2=1505126&rev=1505126&view=diff
==============================================================================
--- httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnStatus.groovy (original)
+++ httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnScheduleForAddition.groovy Sat Jul 20 12:21:11 2013
@@ -27,13 +27,13 @@
import org.gradle.api.tasks.TaskAction
-class SvnStatus extends SvnContentTask {
+class SvnScheduleForAddition extends SvnContentTask {
@TaskAction
- void status() {
+ void schedule() {
if (repo.absolute) {
- println("Local changes ${repo}")
- Svn.status(localDir)
+ println("Scheduling changes for addition to ${repo}")
+ Svn.scheduleForAddition(localDir)
}
}
Modified: httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnStatus.groovy
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnStatus.groovy?rev=1505126&r1=1505125&r2=1505126&view=diff
==============================================================================
--- httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnStatus.groovy (original)
+++ httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnStatus.groovy Sat Jul 20 12:21:11 2013
@@ -31,8 +31,8 @@ class SvnStatus extends SvnContentTask {
@TaskAction
void status() {
- if (repo.absolute) {
- println("Local changes ${repo}")
+ if (localDir.exists()) {
+ println("Local changes of ${repo}")
Svn.status(localDir)
}
}
Copied: httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnUpdate.groovy (from r1504953, httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnStatus.groovy)
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnUpdate.groovy?p2=httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnUpdate.groovy&p1=httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnStatus.groovy&r1=1504953&r2=1505126&rev=1505126&view=diff
==============================================================================
--- httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnStatus.groovy (original)
+++ httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/SvnUpdate.groovy Sat Jul 20 12:21:11 2013
@@ -27,13 +27,13 @@
import org.gradle.api.tasks.TaskAction
-class SvnStatus extends SvnContentTask {
+class SvnUpdate extends SvnContentTask {
@TaskAction
- void status() {
- if (repo.absolute) {
- println("Local changes ${repo}")
- Svn.status(localDir)
+ void update() {
+ println("Updating local checkout of ${repo}")
+ if (localDir.exists()) {
+ Svn.update(localDir)
}
}
Modified: httpcomponents/project-release-tools/trunk/rc.gradle
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/rc.gradle?rev=1505126&r1=1505125&r2=1505126&view=diff
==============================================================================
--- httpcomponents/project-release-tools/trunk/rc.gradle (original)
+++ httpcomponents/project-release-tools/trunk/rc.gradle Sat Jul 20 12:21:11 2013
@@ -129,6 +129,21 @@ task copyReleaseNotes(type: Copy, depend
rename { "RELEASE_NOTES-${rc.pom.major}.${rc.pom.minor}.x.txt" }
}
+task stageUpdate(type: SvnUpdate, dependsOn: prepareStage) {
+ repo = tasks.prepareStage.repo
+}
+
+task addChanges(type: SvnScheduleForAddition, dependsOn: prepareStage) {
+ repo = tasks.prepareStage.repo
+}
+
+task stage(dependsOn: ['prepareStage', 'assemble', 'sign', 'digest', 'copyReleaseNotes']) {
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////
+Copy specs
+//////////////////////////////////////////////////////////////////////////////////////////
+
CopySpec docs(HCProject hcProject, String delim) {
CopySpec spec = copySpec {
from (hcProject.localDir) {