Windows 10下Tortoise SVN报txn-current-lock权限拒绝错误求助
解决SVN提交时
txn-current-lock权限拒绝问题 这种权限问题我之前帮团队排查过好几次,别慌,咱们一步步来定位解决:
核心原因分析
这个错误本质是你的SVN客户端通过svn+ssh访问服务器时,当前登录用户没有权限读写SVN仓库db目录下的txn-current-lock文件——大概率是因为仓库是离职成员创建的,相关文件/目录的所有者、权限组没有对当前团队成员开放。
具体解决步骤
1. 登录SVN服务器检查权限(需要服务器操作权限)
首先让有服务器管理员权限的人登录SVN所在服务器,执行以下命令查看问题文件的权限详情:
ls -l /svn/p/thegreatwar/svn/db/txn-current-lock
你会看到类似这样的输出:
-rw-r--r-- 1 olduser oldgroup 0 Aug 10 14:32 txn-current-lock
这里的olduser/oldgroup就是离职成员的用户/组,这就是问题所在——当前团队的ssh用户不在这个组里,也不是文件所有者,自然没有写权限。
2. 修改仓库目录的所有者与权限组
执行递归命令,把整个SVN仓库db目录的所有者和组改成团队共用的SVN用户/组(比如svnadmin和svngroup,根据你们实际情况替换):
sudo chown -R svnadmin:svngroup /svn/p/thegreatwar/svn/db/
然后调整目录和文件的基础权限,确保组内用户有读写权限:
sudo chmod -R 755 /svn/p/thegreatwar/svn/db/ sudo chmod 664 /svn/p/thegreatwar/svn/db/txn-current-lock
3. 确保SSH用户加入SVN权限组
如果你们团队是用各自的SSH账号访问SVN,要把每个成员的SSH用户加入到刚才的svngroup里:
sudo usermod -aG svngroup your_ssh_username
执行完后让用户退出SSH重新登录,权限组变更才会生效。
4. (可选)清理残留的锁定文件
如果上面的操作后还是报错,可能是之前的锁定文件残留导致的。先确认当前没有其他成员正在提交,然后删除这个锁定文件:
sudo rm /svn/p/thegreatwar/svn/db/txn-current-lock
之后再尝试提交,SVN会自动重新创建这个文件。
5. 检查TortoiseSVN的SSH配置
回到Windows的TortoiseSVN,打开「设置」→「Network」→「SSH Client」,确认SSH连接的用户名是你刚才加入权限组的那个账号,避免用了旧的离职成员账号。
内容的提问来源于stack exchange,提问作者Aanker
相关产品推荐
相关产品推荐

