Opened 4 years ago

Last modified 4 years ago

#2205 closed enhancement

Update ant task that uses svn commands — at Version 3

Reported by: Nicklas Nordborg Owned by:
Priority: major Milestone: BASE 3.16.1
Component: build Version:
Keywords: Cc:

Description (last modified by Nicklas Nordborg)

After updating to a newer Eclipse version (2019-09; 4.13) and checking out a new BASE repository it is not possible to compile with ant:

λ ant
Buildfile: F:\Work\Eclipse\3.16-stable\build.xml

svn.revision:
      [svn] svn: E155021: This client is too old to work with the working copy at
      [svn] 'F:\Work\Eclipse\3.16-stable' (format '31').
      [svn] svn: E155021: This client is too old to work with the working copy at
      [svn] 'F:\Work\Eclipse\3.16-stable' (format '31').
      [svn] <Status> failed.

BUILD FAILED
F:\Work\Eclipse\3.16-stable\build.xml:325: Can't get status of F:\Work\Eclipse\3.16-stable

It is not really a surprise since the Ant/Svn library that we use has not been updated for several years. This was already a problem 8 years ago (#1659).

Basically we have two options:

  1. Skip everything that is using svn commands. There are two places in the build script right now:
    • svn.revision: Get the current revision number and put in a file that BASE uses to display version information.
    • svn.export: Used in the release procedure to extract a copy of the entire repository and package it as a source file delivery.
    • There are also svn.diff and svn.update, but they are only provided to be helpful. Eclipse and other developer tools can do the same thing much better.
  1. Try to find a replacement. SvnKit (https://svnkit.com) is used by the Subversion Eclipse plug-in and also has a command line interface. The command line interface maybe be used by ant as any other external program.

After investigating SvnKit it seems like option 2 should be possible to implement and a bit more future-proof that SvnAnt.

Change History (3)

comment:1 by Nicklas Nordborg, 4 years ago

SvnKit seems to work fine. It is possible to use Ant's <java> task to execute commands as if they were entered on a command line. The output is a bit different, but it should not really matter.

comment:2 by Nicklas Nordborg, 4 years ago

Description: modified (diff)
Summary: Update or get rid of ant task that uses svn commandsUpdate ant task that uses svn commands

comment:3 by Nicklas Nordborg, 4 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.