Opened 5 years ago

Closed 4 years ago

Last modified 4 years ago

#2205 closed enhancement (fixed)

Update ant task that uses svn commands

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 (7)

comment:1 by Nicklas Nordborg, 5 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, 5 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, 5 years ago

Description: modified (diff)

comment:4 by Nicklas Nordborg, 5 years ago

In 7796:

References #2205: Update ant task that uses svn commands

Replaces SvnAnt with SvnKit.

The svn.revision and package.src targets in build.xml has been updated to issue svn commands via SvnKit instead of the custom actions that SvnAnt used to define.

The svn.diff and svn.update actions have been removed. If it turns out that they are needed it should not be difficult to add them again.

comment:5 by Nicklas Nordborg, 5 years ago

In 7797:

References #2205: Update ant task that uses svn commands

The docbook builder task also used svn to get information about when the documentation was last changed. It has been updated to use SvnKit.

comment:6 by Nicklas Nordborg, 4 years ago

Resolution: fixed
Status: newclosed

comment:7 by Nicklas Nordborg, 4 years ago

In 7823:

References #2214: Upgrade Hibernate and other 3-rd party components

Updated information about SvnKit (see #2205).

Note: See TracTickets for help on using tickets.