git-as-svn / git-as-svn

Subversion frontend server for Git repositories

Home Page:https://git-as-svn.github.io/git-as-svn/htmlsingle/git-as-svn.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can't connect via IndraWorks SVN Client

mm060488 opened this issue · comments

Hello,
at first I want to thank you for this nice project!

I have an issue trying to connect by IndraWorks SVN Client. It is based on SharpSVN 1.8.8.
When I try to connect Authentication seems to fail (Username or Passowrd is wrong).
According to log files connection is closed immediately:

2020-02-19T10:21:49,479 INFO [SvnServer-thread-5] (SvnServer.java:299) - Client: SVN/1.8.8-SharpSvn-1.8.8-WIN32 (x86-microsoft-windows)
2020-02-19T10:21:49,513 INFO [SvnServer-thread-5] (SvnServer.java:204) - Connection from /x.x.x.x:49997 closed
2020-02-19T10:21:49,515 INFO [SvnServer-thread-5] (SvnServer.java:193) - New connection from: /x.x.x.x:49998
2020-02-19T10:21:49,515 INFO [SvnServer-thread-5] (SvnServer.java:204) - Connection from /x.x.x.x:49998 closed

Can you please help resolving this issue?

Thank you!

  1. Does it work for you using other SVN clients?
  2. What type of userDB is configured in git-as-svn?
  1. TortoiseSVN works perfectly
  2. userDB: !gitlabUsers {}

In Gitlab I use ldap authentication.

I suspect that SharpSVN doesn't have SASL authentication support.

So do you think I should try some userDB LDAP configuration instead of gitlabUsers?
Or will there be no difference using this?

The only thing that works without SASL is userDB: !localUsers. This is equivalent to using password-db in svnserve.conf if you used native Subversion svnserve instead of git-as-svn. In such setup, client uses CRAM-MD5 authentication that it has built-in. The only other built-in method in SVN client is ANONYMOUS (i.e. no authentication at all). CRAM-MD5 authentication procedure is described a bit here.

In order for CRAM-MD5 to work, SVN server needs to know plain-text password so it can compute a hash that is compared with what client has sent. In all other setups except userDB: !localUsers, git-as-svn does not know user password (neither GitLab nor LDAP would give it), so git-as-svn cannot do CRAM-MD5. Instead, in these setups, client sends their credentials to git-as-svn, and git-as-svn then forwards them to authentication service (GitLab OAuth in your case).

All other authentication mechanisms in SVN are implemented using SASL.

In your case, you additionally have GitLab integration set up. git-as-svn will not be able to properly talk to GitLab about user that is not authenticated against GitLab, so you do want to keep userDB: !gitlabUsers.

I'm currently trying to figure out how to test SharpSVN locally, however chances are low. All state of its website strongly hints that this software is abandoned for several years already. However, commit activity is pretty OK.

You could download the free trial version of Bosch Rexroth IndraWorks (IndraWorks ML 14V22 P4)

https://www.boschrexroth.com/en/xc/products/product-groups/electric-drives-and-controls/engineering/software-tools/indraworks-engineering

There you can test the VCS-Addon (Teamserver / Teamproject) function

This is the exact environment I use now

Hmm. I've just tested AnkhSVN 2.6.12735.14 (plugin for Visual Studio based on SharpSVN) and it does happily connect to git-as-svn set up with userDB: !gitlabUsers {}.

To be more exact, it contains C:\Program Files (x86)\AnkhSVN 2\SharpSvn.dll that identifies itself as version 1.9002.2777.76 built on 03.11.2015.

@mm060488 could you quickly drop SharpSvn dlls from AnkhSVN into that IndraWorks thing and see if that helps? Downloading 6GBs isn't fun.

I will give it a try. Thank you for your support

With this one it seems to connect and I can browse the repository but I cannot make a new folder.
I try to make a new commit now

The git-as-svn.log actually states:
Command execution error: svn: E200015: Empty directories is not supported: /myproject/trunk

Nice, I don't need to download 6GB :D

WRT empty directories: #126. We just do not support commiting empty directories because we cannot store it in git.

The problem is the empty directory seems to be created by the program itself. I just wanted to commit the whole project....

You are able to commit files with the AnkhSVN?

I think the VCS-Client itself creates the root folder of the project as empty folder. Afterwards it will fill it with the project files as batch process.

So.

Connect problem is kinda "solved". It is caused by SharpSvn libs built in some weird way in IndraWorks. The proper fix would be to contact IndraWorks support and complain that you cannot connect to SASL-enabled SVN server. Preferrably, same scenario should be reproduced against native svnserve instead of git-as-svn.

Commiting of empty directories is a different story. It is SVN feature that git-as-svn currently lacks. We have an issue #126 to track this, however there are no plans to implement it in nearest future.

I think this issue can be closed.