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 remove any file

wiphi opened this issue · comments

I tried to setup the git-as-svn server (1.21.4) with Gitea (1.8.1).

Now I want to delete a file via TortoiseSVN and get a connection error. git-as-svn wants to delete a lfs file, but my file (neue-datei.txt) isn't a lfs file...

attached the syslog:

Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:58:41: Started GET /Philipp/svn-mirror for 192.168.2.19
Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:58:41: Completed GET /Philipp/svn-mirror 200 OK in 37.447729ms
Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:58:41: Started GET /vendor/plugins/promise-polyfill/polyfill.min.js for 192.168.2.19
Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] [Static] Serving /vendor/plugins/promise-polyfill/polyfill.min.js
Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:58:41: Completed GET /vendor/plugins/promise-polyfill/polyfill.min.js 304 Not Modified in 291.796µs
Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:58:41: Started GET /avatars/f6c308d34acef0f2739947df24b89b01 for 192.168.2.19
Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] [Static] Serving /f6c308d34acef0f2739947df24b89b01
Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:58:41: Completed GET /avatars/f6c308d34acef0f2739947df24b89b01 304 Not Modified in 180.134µs
Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:58:41: Started GET /vendor/plugins/promise-polyfill/polyfill.min.js for 192.168.2.19
Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] [Static] Serving /vendor/plugins/promise-polyfill/polyfill.min.js
Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:58:41: Completed GET /vendor/plugins/promise-polyfill/polyfill.min.js 304 Not Modified in 264.631µs
Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:58:41: Started GET /img/favicon.png for 192.168.2.19
Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] [Static] Serving /img/favicon.png
Aug 13 15:58:41 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:58:41: Completed GET /img/favicon.png 304 Not Modified in 119.796µs
Aug 13 15:58:42 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:58:42: Started GET /serviceworker.js for 192.168.2.19
Aug 13 15:58:42 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:58:42: Completed GET /serviceworker.js 200 OK in 2.729733ms
Aug 13 15:59:09 GITEA-SERVER git-as-svn[3470]: 2019-08-13T15:59:09,932  INFO [SvnServer-thread-9] (SvnServer.java:193) - New connection from: /192.168.2.19:50122
Aug 13 15:59:09 GITEA-SERVER git-as-svn[3470]: 2019-08-13T15:59:09,933  INFO [SvnServer-thread-9] (SvnServer.java:299) - Client: SVN/1.9.4 (x64-microsoft-windows)
Aug 13 15:59:09 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:59:09: Started GET /api/v1/repositories/5 for 127.0.0.1
Aug 13 15:59:09 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:59:09: Completed GET /api/v1/repositories/5 200 OK in 6.268944ms
Aug 13 15:59:09 GITEA-SERVER git-as-svn[3470]: 2019-08-13T15:59:09,945  INFO [SvnServer-thread-9] (SvnServer.java:367) - User: $anonymous
Aug 13 15:59:09 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:59:09: Started GET /api/v1/user for 127.0.0.1
Aug 13 15:59:09 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:59:09: Completed GET /api/v1/user 200 OK in 29.96604ms
Aug 13 15:59:09 GITEA-SERVER git-as-svn[3470]: 2019-08-13T15:59:09,981  INFO [SvnServer-thread-9] (SvnServer.java:367) - User: Philipp
Aug 13 15:59:09 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:59:09: Started GET /api/v1/repositories/5?sudo=Philipp for 127.0.0.1
Aug 13 15:59:09 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:59:09: Completed GET /api/v1/repositories/5?sudo=Philipp 200 OK in 4.762733ms
Aug 13 15:59:10 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:59:10: Started GET /api/v1/Philipp/svn-mirror.git/info/lfs/locks?path=%2Fneue-datei.txt&id=&refspec=master&cursor= for 127.0.0.1
Aug 13 15:59:10 GITEA-SERVER gitea[781]: [Macaron] 2019-08-13 15:59:10: Completed GET /api/v1/Philipp/svn-mirror.git/info/lfs/locks?path=%2Fneue-datei.txt&id=&refspec=master&cursor= 404 Not Found in 3.104626ms
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: Aug 13, 2019 3:59:10 PM org.apache.http.client.protocol.ResponseProcessCookies processCookies
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: WARNUNG: Invalid cookie header: "Set-Cookie: _csrf=QYtkSN4Aj8Dldwp5N5v138kScos6MTU2NTcwNDc1MDA1MTc2MzE0MA%3D%3D; Path=/; Expires=Wed, 14 Aug 2019 13:59:10 GMT; HttpOnly". Invalid 'expires' attribute: Wed, 14 Aug 2019 13:59:10 GMT
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: 2019-08-13T15:59:10,056  WARN [SvnServer-thread-9] (CommitCmd.java:644) - Exception during in cmd close-edit
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: ru.bozaro.gitlfs.client.exceptions.RequestException: http://localhost:3000/api/v1/Philipp/svn-mirror.git/info/lfs/locks?path=%2Fneue-datei.txt&id=&refspec=master&cursor= - 404 (Not Found)
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at ru.bozaro.gitlfs.client.Client.doRequest(Client.java:167) ~[gitlfs-client-0.15.0.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at ru.bozaro.gitlfs.client.Client.lambda$listLocks$10(Client.java:439) ~[gitlfs-client-0.15.0.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at ru.bozaro.gitlfs.client.Client.doWork(Client.java:100) ~[gitlfs-client-0.15.0.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at ru.bozaro.gitlfs.client.Client.listLocks(Client.java:439) ~[gitlfs-client-0.15.0.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.ext.gitlfs.storage.network.LfsHttpStorage.getLocks(LfsHttpStorage.java:104) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.ext.gitlfs.storage.network.LfsHttpStorage.getLocks(LfsHttpStorage.java:185) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.repository.git.GitWriter$GitCommitBuilder.checkLockFile(GitWriter.java:278) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.repository.git.GitWriter$GitCommitBuilder.checkUpToDate(GitWriter.java:272) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.command.CommitCmd$EditorPipeline.lambda$checkUpToDate$9(CommitCmd.java:586) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.command.CommitCmd$EditorPipeline.updateDir(CommitCmd.java:560) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.command.CommitCmd$EditorPipeline.lambda$closeEdit$7(CommitCmd.java:521) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.repository.git.GitRepository.wrapLock(GitRepository.java:131) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.repository.git.GitRepository.wrapLockWrite(GitRepository.java:122) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.command.CommitCmd$EditorPipeline.closeEdit(CommitCmd.java:515) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.command.LambdaCmd.process(LambdaCmd.java:40) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.command.CommitCmd$EditorPipeline.editorCommand(CommitCmd.java:639) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.SvnServer.serveClient(SvnServer.java:230) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.SvnServer.lambda$run$1(SvnServer.java:197) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_222]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_222]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: 2019-08-13T15:59:10,057  WARN [SvnServer-thread-9] (SvnServer.java:201) - Exception:
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: ru.bozaro.gitlfs.client.exceptions.RequestException: http://localhost:3000/api/v1/Philipp/svn-mirror.git/info/lfs/locks?path=%2Fneue-datei.txt&id=&refspec=master&cursor= - 404 (Not Found)
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at ru.bozaro.gitlfs.client.Client.doRequest(Client.java:167) ~[gitlfs-client-0.15.0.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at ru.bozaro.gitlfs.client.Client.lambda$listLocks$10(Client.java:439) ~[gitlfs-client-0.15.0.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at ru.bozaro.gitlfs.client.Client.doWork(Client.java:100) ~[gitlfs-client-0.15.0.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at ru.bozaro.gitlfs.client.Client.listLocks(Client.java:439) ~[gitlfs-client-0.15.0.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.ext.gitlfs.storage.network.LfsHttpStorage.getLocks(LfsHttpStorage.java:104) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.ext.gitlfs.storage.network.LfsHttpStorage.getLocks(LfsHttpStorage.java:185) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.repository.git.GitWriter$GitCommitBuilder.checkLockFile(GitWriter.java:278) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.repository.git.GitWriter$GitCommitBuilder.checkUpToDate(GitWriter.java:272) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.command.CommitCmd$EditorPipeline.lambda$checkUpToDate$9(CommitCmd.java:586) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.command.CommitCmd$EditorPipeline.updateDir(CommitCmd.java:560) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.command.CommitCmd$EditorPipeline.lambda$closeEdit$7(CommitCmd.java:521) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.repository.git.GitRepository.wrapLock(GitRepository.java:131) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.repository.git.GitRepository.wrapLockWrite(GitRepository.java:122) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.command.CommitCmd$EditorPipeline.closeEdit(CommitCmd.java:515) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.command.LambdaCmd.process(LambdaCmd.java:40) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.command.CommitCmd$EditorPipeline.editorCommand(CommitCmd.java:639) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.SvnServer.serveClient(SvnServer.java:230) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at svnserver.server.SvnServer.lambda$run$1(SvnServer.java:197) ~[git-as-svn.jar:?]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_222]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_222]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: #011at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]
Aug 13 15:59:10 GITEA-SERVER git-as-svn[3470]: 2019-08-13T15:59:10,058  INFO [SvnServer-thread-9] (SvnServer.java:204) - Connection from /192.168.2.19:50122 closed

Did I make a mistake in my config?

!config:
# Specifies IP to listen to for svn:// connections
# Default: 0.0.0.0
#
# host: 0.0.0.0
# Specifies port number to listen to for svn:// connections
# Default: 3690
#
# port: 3690
# Subversion realm name. Subversion uses this for credentials caching
# Default: git-as-svn realm
#
# realm: git-as-svn realm
# Traffic compression level. Supported values: LZ4, Zlib, None
# Default: LZ4
#
# compressionLevel: LZ4
# If enabled, git-as-svn indexed repositories in parallel during startup
# This results in higher memory usage so may require adjustments to JVM memory options
# Default: true
#
# parallelIndexing: true
# Sets cache location
cacheConfig: !persistentCache
  path: /var/cache/git-as-svn/git-as-svn.mapdb
# Tells git-as-svn to use Gitea API for repository list
repositoryMapping: !giteaMapping
  # Filesystem location where Gitea stores repositories
  # Note that git-as-svn requires write access
  path: /home/git/gitea-repositories
  # Common settings for all repositories exposed to svn://
  #
  template:
    branches:
       - master
    renameDetection: true
# Tells git-as-svn to use Gitea API for user authentication
userDB: !giteaUsers {}
shared:
  # Configures Gitea API for git-as-svn
  - !gitea
    # URL where your Gitea instance API is available
    url: http://localhost:3000/api/v1
    # Tells git-as-svn to store Git-LFS objects through Gitea LFS API
    lfs: true
    # Gitea access token
    # Note that git-as-svn requires Gitea Sudo permission in order to authenticateusers
    token: <SECRET> 

Thanks for help!

Hmmm... Okay, I didn't test this scenario. If you're not using LFS currently, as a quick workaround you may change lfs: true to lfs: false in !gitea section and restart git-as-svn after that.

BTW, do you have LFS enabled in Gitea at all? AFAIK, it is disabled by default. So, LFS setting in Gitea/git-as-svn needs to be in sync. Either enable LFS on both sides or disable it. If this is the cause of your problem, I'll update git-as-svn docs to reflect this.

What is happening here is git-as-svn trying to check that file you're committing is not currently locked with Git-LFS lock, but gets 404 error from Gitea LFS API.

Hmmm... Okay, I didn't test this scenario. If you're not using LFS currently, as a quick workaround you may change lfs: true to lfs: false in !gitea section and restart git-as-svn after that.

Now it works. I can remove files 👍

BTW, do you have LFS enabled in Gitea at all? AFAIK, it is disabled by default. So, LFS setting in Gitea/git-as-svn needs to be in sync. Either enable LFS on both sides or disable it. If this is the cause of your problem, I'll update git-as-svn docs to reflect this.

Gitea LFS is enabled, but the server is fresh installed and nobody has stored any lfs objects. But I don't want store *.txt files in the lfs system.

What is happening here is git-as-svn trying to check that file you're committing is not currently locked with Git-LFS lock, but gets 404 error from Gitea LFS API.

I see.

  1. I've added info on LFS_START_SERVER Gitea config option to docs
  2. Fixed a couple of bugs related to LFS locks and released that as 1.21.5

Thank you very much :) it's makes git for svn users very nice to use. so we can slowly migrate to git. Again: Thank you so much!