Toad World® Forums

Teamcoding ignores locked file from SVN

Hi,

I have installed the teamcoding feature on my database.
Then i have created a team project and we are using it with the VCS Provider Subversion (SVN).

It works fine, except when the file is already locked in the SVN filesystem by another user (svn get lock command via Windows Explorer).
In the teamcoding manager the file is available, because it did not get checked out via toad.

In this situation i am able to open the package, change it and compile it.
When i try to check in the file i get an error because it is not locked by me.

Checkout:

12:54:06 Method Name: VCS Command
12:54:06 Request:
12:54:06 svn.exe lock XXX.PKB --username **** --password **** --non-interactive
12:54:07 Response:
12:54:07 svn: warning: W160035: Path '/.../XXX.PKB' is already locked by user 'ABC' in filesystem 'fdba658e-a25f-4eb0-92aa-e819976817c8'

Checkin:

12:56:36 Method Name: VCS Command
12:56:36 Request:
12:56:36 svn.exe commit --username **** --password **** --non-interactive --changelist cl-200520125635 -m "test"
12:56:37 Response:
12:56:37 Sending ...\XXX.PKB
12:56:37 Transmitting file data .svn: E195022: Commit failed (details follow):
12:56:37 svn: E195022: File '...\XXX.PKB' is locked in another working copy
12:56:37 svn: E160038: '/.../XXX.PKB': no lock token available
12:56:37 svn: E175002: Additional errors:
12:56:37 svn: E175002: PUT of '/.../XXX.PKB': 423 Locked

In this case i would expect a popup during the check out with a message that the package is already locked by another user.

I tried this with Toad Version 13.1 and 13.3!

Thanks.

Is there any way to avoid this behavior.
Maybe i am just missing a setting in Toad or teamcoding.

I also tried it with the "needs-lock" file property in SVN, but that does not change anything.

Hi Julian,

I'll try to reproduce locally here as well. Based on what I'm seeing in the code, it should return an error if the lock cannot be granted to the local user. If that's not happening, I'll create a ticket to get that fixed as soon as possible.

In the meanwhile, there are two workaround options for you:

  1. If the database object is also checked out in Team Coding, one thing you can try is to break the lock by right-clicking the object and selecting "Advanced -> Break Team Coding lock" from the context menu.

  2. Alternatively, you don't have to use locking with Subversion. Subversion works well without enabling locking on the server, and Team Coding can internally handle database object locks without involving locking on the server itself.

To disable Subversion locking in Team Coding, connect to the database as a user in the TC_ADMIN_ROLE role. Then, open the Team Coding Configuration window and click on the ellipsis button next to the VCS Provider drop-down that lists "Subversion" within the Team Settings -> General page. That will bring up the global configuration settings for Subversion. On the Options tab, you'll see the following option:

SVN_Locking

Simply uncheck that option and Team Coding will use Subversion without locking files on the server. It will still lock the database objects in the database for other Toad users, but the files within Subversion will not be explicitly locked. This should circumvent the issue you're experiencing. Of course, you may need to explicitly unlock those files on the Subversion server itself first (using the "svn unlock --force" command), or break their locks within Team Coding before you turn off the option in Team Coding's Configuration window.

Let us know if any of these help to solve your problem.

-John

Hello John,

thanks for your fast answer.

I tried your suggestion to deactivate the locking with subversion, but i was not very happy with it.

My situation was that i locked a file in TeamCoding and changed some lines. A college also changed the same file on his filesystem (not in TeamCoding) and commited the changes.
Then i compiled my package and tried to check it in.

At this moment SVN noticed that there were changes to the file in the meantime and I receive an error because I have unsolved conflicts.

10:00:24 Method Name: VCS Command
10:00:24 Request:
10:00:24 svn.exe commit --username **** --password **** --non-interactive --changelist cl-200525100023 -m "Test
10:00:24 "
10:00:24 Response:
10:00:24 svn: E155015: Commit failed (details follow):
10:00:24 svn: E155015: Aborting commit: 'C:...\ZAL_VOLLZUG.PKB' remains in conflict

I think the best behavior would be if i could resolve the conflicts in Toad, but currently i receive the following result in my local workspace (original file "ZAL_VOLLZUG.pkb" is in conflict).

image

(I think this is because toad wont expect, that the file gets changed outside of team coding)

###################

So i will have to wait for an update about the locking problem, because when toad checks it if the file is locked in svn the problem will be solved.

If there will be a bug fix for this problem, will it only be published in Toad 13.3 or also in 13.1? Because currently your team is working with 13.1.

Best regards,
Julian