User Tools

Site Tools


sourceforge:svn

Table of Contents

Svn

Svn aka Subversion is a revision control system, just like rcs, cvs and git are.
The Crossfire repository is maintained by svn .

Pages telling much about the usage of svn on this wiki:

Svn Versions

Svn has changed a little bit over the time.
Since year 2018 SourceForge became more restricted for accessing its pages and repositories,
requiring OpenSSL version 1.x and newer.

It is still possible though to access the SVN repos using the svn's native protocol svn:// , if the svn –version is newer than 1.3.2 and probably even newer.

Svn versions 1.3.2 and 1.4.6 can access https on SF using OpenSSL-1.x with this hack for the neon library 0.25.5 file ne_openssl.c and recompiling :

    if (ctx->sess) {
        SSL_SESSION *newsess = SSL_get0_session(ssl);
        /* Replace the session if it has changed. */
      /*  if (newsess != ctx->sess || SSL_SESSION_cmp(ctx->sess, newsess)) { */
          if (newsess != ctx->sess) {
            SSL_SESSION_free(ctx->sess);
            ctx->sess = SSL_get1_session(ssl); /* bumping the refcount */
        }
    }

I have not found a similar function in newer OpenSSL headers, that could replace the SSL_SESSION_cmp function.
See the configure script of the SUBVERSION source code for NEON_ALLOWED_LIST, NEON_LATEST_WORKING_VER, NEON_RECOMMENDED_VER .

Svn Update

The svn update and svn cleanup commands on a repository created by a former svn version make it impossible to be used by the former svn version again;
at least between versions 1.3, 1.4, 1.5, 1.6; and completely impossible between 1.6 and 1.7+ .

See http://subversion.apache.org/faq.html#working-copy-format-change .
There is a PYTHON downgrade script available :
https://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py
which tells us

### The entries file parser in subversion/tests/cmdline/svntest/entry.py
### handles the XML-based WC entries file format used by Subversion
### 1.3 and lower.  It could be rolled into this script.
 
LATEST_FORMATS = { "1.4" : 8,
                   "1.5" : 9,
                   "1.6" : 10,
                   # Do NOT add format 11 here.  See comment in must_retain_fields
                   # for why.
                 }
 
# Maps format numbers to indices of fields within an entry's record that must
# be retained when downgrading to that format.
  must_retain_fields = {
      # Not in 1.4: changelist, keep-local, depth, tree-conflicts, file-externals
      8  : (30, 31, 33, 34, 35),
      # Not in 1.5: tree-conflicts, file-externals
      9  : (34, 35),
      10 : (),
      # Downgrading from format 11 (1.7-dev) to format 10 is not possible,
      # because 11 does not use has-props and cachable-props (but 10 does).
      # Naively downgrading in that situation causes properties to disappear
      # from the wc.
      #
      # Downgrading from the 1.7 SQLite-based format to format 10 is not
      # implemented.
      }

This is therefore noteworthy, since trying out some newer Linux Distro and running some “innocent” svn command in the huge 4GB local crossfire code copy and then reverting to the older Linux OS again, can make your local svn repository unusable.

sourceforge/svn.txt · Last modified: 2018/04/21 17:58 by karl