A line or two in the code that checks the version and drops out with an error message* would save a lot of user trouble and developer time (as mail threads like this one etc.).
* - like "Incompatible sqlite db, not opening to prevent possible corruption"
From: Guido Leenders [mailto:Guido.Leenders_at_invantive.com]
Sent: Tuesday, November 20, 2012 11:15 AM
Subject: RE: Working copy corruptions due to dual use of SVN on Linux and Windows against same working copy
Thanks for the tip.
I have checked the wc.db versions as follows:
Svn checkout on Windows, look at byte 96.99 according to the file format. Version = 3.7.12.
Svn checkout of same project from Linux, strangely enough the bytes 96..99 are all 0. Instead checked search path. Sqlite version = 3.6.20.
So there is a version difference indeed. Now I have learnt that the sqlite libraries obviously can not handle a database well when running cross versions. According to SQLite itself it uses a single cross-platform file (locking entire database during writing and allows multiple readers).
I will try aligning the sqlite version on Linux with the one of Windows which is an unsupported but for our purposes helpful configuration.
To improve usability I would find it helpful that SVN would complain when the database files had been created by a different (incompatible) version. I know now the problem, but for first time users a good error message would help.
From: Niemann, Hartmut [mailto:hartmut.niemann_at_siemens.com]
Sent: Tuesday, November 20, 2012 10:28 AM
Subject: AW: Working copy corruptions due to dual use of SVN on Linux and Windows against same working copy
The key change in SVN 1.7 is the .svn reorganisation using a sqlite database.
So if the versions of the sqlite libraries differ, that might make the working copys icompatible
and that would explain the message you got from windows.
Maybe you can force your linux system to use the exact same sqlite library version tortoiseSVN uses on windows.
Maybe you can open the wc.db database with sqlite3(.exe) on linux and windows and see whether it looks the same on both sides?
Just a guess.
Mit freundlichen Grüßen
Dr. Hartmut Niemann
Infrastructure & Cities Sector
Rail Systems Division
Locomotives and Components
IC RL LOC EN LE 8
91052 Erlangen, Deutschland
Tel.: +49 9131 7-34264
Fax: +49 9131 7-26254
Siemens Aktiengesellschaft: Vorsitzender des Aufsichtsrats: Gerhard Cromme; Vorstand: Peter Löscher, Vorsitzender; Roland Busch, Brigitte Ederer, Klaus Helmrich, Joe Kaeser, Barbara Kux, Hermann Requardt, Siegfried Russwurm, Peter Y. Solmssen, Michael Süß; Sitz der Gesellschaft: Berlin und München, Deutschland; Registergericht: Berlin Charlottenburg, HRB 12300, München, HRB 6684; WEEE-Reg.-Nr. DE 23691322
Von: Guido Leenders [mailto:Guido.Leenders_at_invantive.com]
Gesendet: Samstag, 17. November 2012 09:41
An: users_at_tortoisesvn.tigris.org <mailto:users_at_tortoisesvn.tigris.org>
Betreff: Working copy corruptions due to dual use of SVN on Linux and Windows against same working copy
We are using SVN 1.7.7 (TortoiseSVN 1.7.10) on Windows and SVN 1.7.7 on Linux with Samba against the same working copies. The working copies are located on the home directory of the user (/home/XXX or h:\).
Reason for such dual use is that some build software runs only on Windows and some only on Linux and there are no really reliable platform crossing mechanisms.
This worked fine with SVN 1.6, but since a few weeks we are working with 1.7. We have tested 1.7 in our setup for months on a Windows only laptop and working copies had little to no problems.
Since we started using dual use of the working copies, we are frequently and consistenly having working copy issues. It seems that either Windows or Linux changes something, probably in the .svn folder, that causes the other side to complain. If you stick to Windows only Tortoise or Linux only Tortoise it works fine. But for several operations that is not practically feasible (Linux side scripting, but users on Windows which do not all know all complex SVN command line arguments).
Sample of errors:
Windows (with commandline here):
PS H:\ws\p104> svn info .\build.xml
svn: E155036: Please see the 'svn upgrade' command
svn: E155036: Working copy 'H:\ws\p104' is an old development version (format 12); to upgrade it, use a format 18 client , then use 'tools/dev/wc-ng/bump-to-19.py', then use the current client PS H:\ws\p104>
$ svn info build.xml
Working Copy Root Path: /home/smoke/ws/p104
URL: http://svn.invantive.com/repos/p104/trunk/build.xml <http://svn.invantive.com/repos/p104/trunk/build.xml>
Repository Root: http://svn.invantive.com/repos/p104 <http://svn.invantive.com/repos/p104>
Repository UUID: c849056f-1cdd-4f09-aa32-1c9aa175cbcf
Node Kind: file
Last Changed Author: smoke
Last Changed Rev: 20444
Last Changed Date: 2012-11-14 23:47:24 +0100 (Wed, 14 Nov 2012) Text Last Updated: 2012-11-14 23:47:25 +0100 (Wed, 14 Nov 2012)
Any suggestions how to overcome this? I had expected that if you stick to exactly the same SVN version on both sides, we could further continue our dual use.
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2012-11-20 11:37:29 CET