Dear Mr. Sahlberg,

thank you for your answer.

I have played with the client hook pre-lock script of Tortoise SVN. The idea is very good. The first argument is a temporary file. It should contain the paths to the files which should be locked.
But unfortunately this file is empty.
Therefore I am not able to add the paths to the log message via client hook scripts.

The svn lock command should know which file(s) in which working copy is (are) locked.

I don't understand why this command doesn't transfer this information to the server and doesn't show it in the log or better in the message which is shown if another user wants to get a lock on this file.

I need much time to find the working copy (plus client computer name) where a file is locked because I don't know where it is locked.

A software which provides the locking feature should also told the user where it is locked.
I know this from other software products.

I don't want to do a force unlock.

As workaround I use subversion usernames which contains the hostnames of the clients.

So I know on which host the lock was done.

But I need also the path of the working copy and I don't want to add also each working copy to the username


Best regards

Martin Rupp


Am 03.01.2021 um 09:53 schrieb Daniel Sahlberg:
Den sön 3 jan. 2021 kl 06:37 skrev Martin Rupp <martin.r...@nefkom.net <mailto:martin.r...@nefkom.net>>:

    Hi,

    If a file is locked I get an error message like:

    Lock failed: C:\test\svn\TestSvn\Test-o1.fodt
    Error: Path '/Martin/Test-o1.fodt' is already locked by user
    'martin' in
    filesystem
    Error: '75510a91-dada-4f23-b575-03fe34008164'

    (TortoiseSVN 1.14.0, Build 28885 - 64 Bit , 2020/05/24 13:32:45)

    It is okay that I get an error but I need the path of the working
    copy
    instead of a hex number which doesn't help me.
    Why I get a such unknown number instead a path?

    c:\test\svn\TestSvn>svn lock Test-o1.fodt
    svn: warning: W160035: Path '/Martin/Test-o1.fodt' is already
    locked by
    user 'martin' in filesystem '75510a91-dada-4f23-b575-03fe34008164'
    svn: E200009: One or more locks could not be obtained

    c:\test\svn\TestSvn>svn lock Test-o1.fodt
    svn: warning: W160035: Path '/Martin/Test-o1.fodt' is already
    locked by
    user 'martin' in filesystem '75510a91-dada-4f23-b575-03fe34008164'
    svn: E200009: One or more locks could not be obtained

    c:\test\svn\TestSvn>svn --version
    svn, version 1.14.0 (r1876290)
        compiled May 24 2020, 17:07:49 on x86-microsoft-windows

    Copyright (C) 2020 The Apache Software Foundation.
    This software consists of contributions made by many people;
    see the NOTICE file for more information.
    Subversion is open source software, see
    http://subversion.apache.org/ <http://subversion.apache.org/>

    The following repository access (RA) modules are available:

    * ra_svn : Module for accessing a repository using the svn network
    protocol.
       - with Cyrus SASL authentication
       - handles 'svn' scheme
    * ra_local : Module for accessing a repository on local disk.
       - handles 'file' scheme
    * ra_serf : Module for accessing a repository via WebDAV protocol
    using
    serf.
       - using serf 1.3.9 (compiled with 1.3.9)
       - handles 'http' scheme
       - handles 'https' scheme

    The following authentication credential caches are available:

    * Wincrypt cache in E:\Users\Martin-User\AppData\Roaming\Subversion

    I have also tried it with cygwin:

    Martin-User@JODA /cygdrive/c/Test/svn/TestSvn
    $ svn lock Test-o1.fodt
    svn: Warnung: W160035: Path '/Martin/Test-o1.fodt' is already
    locked by
    user 'martin' in filesystem '75510a91-dada-4f23-b575-03fe34008164'
    svn: E200009: One or more locks could not be obtained

    What is the "filesystem '75510a91-dada-4f23-b575-03fe34008164'"?

    It seems it is the id for the svnserver (svnserve).

    If I use svn auth the same id is used for the login area:

    Martin-User@JODA /cygdrive/c/Test/svn/TestSvn
    $ svn auth
    ------------------------------------------------------------------------
    Art der Zugangsdaten: svn.simple
    Anmeldebereich: <svn://qnap-nas-ts-231p3:3690>
    75510a91-dada-4f23-b575-03fe34008164
    Passwortspeicher: wincrypt
    Passwort: [nicht angezeigt]
    Benutzername: martin

    Credentials cache in '/home/Martin-User/.subversion' contains 1
    credential

    But how can I see in which path (working copy) on which computer the
    file is locked?


There is already a somewhat similar request in JIRA (https://issues.apache.org/jira/browse/SVN-4857 <https://issues.apache.org/jira/browse/SVN-4857>). It doesn't seem like any work has done there. The idea would be to put the computer name in the lock message. But as mentioned in the issue, it would be difficult for the server to work out the computer name and even more difficult to work out the working copy path.

You can of course manually add this information in the lock message and then inspect it using svn info [url to file in the repository] (or in TortoiseSVN: "Check for modifications", "Check repository")

There is a client side Hook Scripts feature in TortoiseSVN. The Pre-Lock script locks promising from the documentation (it should be executed before the lock dialog is shown and the script should be able to figure out both the computer and the path and put it in the log message). However I can't make it work from a quick test and I don't have time to dig deeper right now. If you try it out and it doesn't work, please reach out to the TortoiseSVN mailing lists (https://tortoisesvn.net/community.html <https://tortoisesvn.net/community.html>).

Kind regards,
Daniel Sahlberg

Reply via email to