在Windows上无法使用TortoiseSVN等工具管理WSL2中的代码的问题

news2024/10/7 18:24:14

环境

Windows 11
WSL2(Ubuntu 22.04)

前言

众所周知,WSL2 的跨系统IO读写性能非常差(详情见我之前写的这篇文章),而我的代码又是在 WSL2 中运行的,为了提高性能,所以我的代码也必须放在 WSL2 中,以避免跨系统的IO读写。

但是最近遇到一个问题,如果你的代码是用SVN进行管理的话,在Windows中,是无法使用 TortoiseSVN 工具将代码仓库 checkout 到 WSL2 的目录中的。checkout的时候,TortoiseSVN会提示:

从 svn://svn.svnbucket.com/ljfrocky/test01 取出, 版本 HEAD, 全递归, 包含外部引用
sqlite[S5]: database is locked, executing statement 'PRAGMA
 case_sensitive_like=1;PRAGMA synchronous=OFF;PRAGMA
 recursive_triggers=ON;PRAGMA foreign_keys=OFF;PRAGMA locking_mode =
 NORMAL;PRAGMA journal_mode = TRUNCATE;'
另一进程正在阻塞当前工作版本的数据库,或者底层操作系统不支持文件锁定;如果当前工作版本位于网络文件系统上,请确保文件服务器已允许文件锁定。

在这里插入图片描述

根据提示,猜测是 Windows 系统无法对 WSL2 中的文件系统进行锁定,从而导致 TortoiseSVN 检出代码失败。

解决方法

既然在 Windows 系统上无法检出,那我们改为到 WSL2 中检出不就行了?

在 WSL2 中安装好 svn 工具,然后使用svn co {代码仓库地址}命令检出代码,显示成功了:
在这里插入图片描述
代码检出成功了,那现在可以用 TortoiseSVN 管理此目录的代码了吗?答案是还是不行,还是会报“文件系统无法锁定”的错误。

网上查找相关资料,也没有找到解决方法。看来想要在 Windows 上管理 WSL2 上的SVN仓库代码,目前是无法实现的,只能在 WSL2 的命令行界面中进行管理。但对于用惯了图形界面的人来说,突然要改为用命令行操作,可能会不太习惯。

那么有没有其它方法呢?有!我们知道 IDE 工具一般都带有代码版本管理功能,我们可以使用 Jetbrains 家 IDE 工具的远程开发模式来做开发,在远程开发模式中,我们可以使用 IDE 提供的图形化界面来管理 WSL2 中的代码。下面以 PhpStorm 来举例说明。

注:必须使用 IDE 的远程开发模式,如果使用本地模式的话,在进行代码版本管理的时候,还是会跟 TortoiseSVN 一样报错的。

远程开发模式

在这里插入图片描述
1)在PhpStorm的欢迎界面中,选择 Remote Develoment -> WSL -> New Project

在这里插入图片描述
2)然后选择你的 WSL2 系统,一般是 Ubuntu

在这里插入图片描述
3)选择一个你希望使用的 IDE 版本,还有项目所在目录,点击“Start IDE and Connect”。

根据 Jetbrains 的文档说明,点击 Start IDE 后,会在 WSL2 中安装一个 IDE backend 的后端服务程序,然后在Windows上会打开一个 thin client(瘦客户端),后续我们在瘦客户端上执行的操作,都会同步给后端服务,由后端服务来真正实施。其实就是由原来的单一程序架构,变成了 前端 - 后端 的架构。

在这里插入图片描述
4)在瘦客户端中,我们可以正常进行代码版本管理(代码提交、回滚、查看提交日志等等),不会再报错了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1017494.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023 Google 开发者大会:无障碍游戏体验升级、安卓开发人员生产力爆棚

目录 前言 一、会说话的狗 - “大黄” 二、GameFace -联合《荒野行动》,提升无障碍游戏体验 三、Android Studio Bot-解放开发人员生产力 五、Purnima致中国开发者的一封“信” 结语 🎈个人主页:库库的里昂 🎐CSDN新晋作者 …

9. 原型模式

引言 关键在于具备clone函数&#xff1b;克隆自身。 原型模式&#xff08;Prototype&#xff09;&#xff0c;用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象。 UML 测试代码&#xff1a; #include <iostream> using namespace std;class …

Python 之plt.plot()的介绍以及使用

文章目录 介绍代码实例 介绍 plt.plot() 是Matplotlib库中用于绘制线图&#xff08;折线图&#xff09;的主要函数之一。它的作用是将一组数据点连接起来&#xff0c;以可视化数据的趋势、关系或模式。以下是 plt.plot() 的详细介绍&#xff1a; plt.plot(x, y, fmt, **kwarg…

sun.security.validator.ValidatorException: PKIX path building failed

问题说明 在A系统使用HttpPost调用B系统的接口时报&#xff0c;B系统的ssl证书使用的是阿里云免费ssl证书&#xff0c;很郁闷调用别的系统都没有出现过这样的问题。 sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.Su…

ChatGLM-6b的微调与推理

基于ChatGLM-6B的推理与部署 1.使用git clone命令ChatGLM项目地址&#xff0c;将项目clone到本地。 2.下载ChatGLM-6B模型文件 【注意】运行下面代码的时候&#xff0c;要将源代码中的模型文件路径改成自己的地址&#xff0c;不然会报错&#xff01;&#xff01;&#xff01;…

destoon自定义一个archiver内容文档

在archiver目录建立以下代码&#xff1a; <?php define(DT_REWRITE, true); require ../common.inc.php; $EXT[archiver_enable] or dheader(DT_PATH); //$DT_BOT or dheader(DT_PATH); $N $M $T array(); $mid or $mid 5; $vmid $list 0; foreach($MODULE as $k>…

微服务保护-授权规则

个人名片&#xff1a; 博主&#xff1a;酒徒ᝰ. 个人简介&#xff1a;沉醉在酒中&#xff0c;借着一股酒劲&#xff0c;去拼搏一个未来。 本篇励志&#xff1a;三人行&#xff0c;必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》&#xff0c;SpringCloud…

【JUC】Java并发编程从挖坑到入土全解(2)

目录 我们锁的到底是什么&#xff08;8个案例&#xff09; 案例1 案例2 案例3 案例4 案例5 案例6 案例7 案例8 总结 我们锁的到底是什么&#xff08;8个案例&#xff09; 有a、b两个线程&#xff0c;我们基于如下代码进行改造&#xff1a; public static void main…

数据结构---二叉搜索树

二叉搜索树 二叉搜索树什么是二叉搜索树&#xff1f; 二叉搜索树的操作查找插入删除 源代码非递归版 二叉搜索树 什么是二叉搜索树&#xff1f; 二叉搜索树(Binary Search Tree 简称BST)又称二叉排序树&#xff0c;是一种二叉树的特殊形式&#xff0c;它在每个节点上存储的键…

动态规划-货币问题

动态规划-货币问题 题目一 arr是货币数组&#xff0c;其中的值都是正数。再给定一个正数aim。每个值都认为是一张货币&#xff0c;即便是值相同的货币也认为每一张都是不同的&#xff0c;返回组成aim的方法数。例如 : arr { 1,1,1 }&#xff0c;aim 2&#xff0c;第0个和第…

C++之std::monostate应用实例(二百二十一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

安卓恶意应用识别(三)(批量反编译与属性值提取)

前言 上篇说到对安卓APK反编译&#xff0c;本篇实现批量反编译和批量特征提取及计算&#xff0c;主要就是通过python代码与cmd进行批量化交互&#xff0c;我在写文章之前&#xff0c;尝试批量下载了安卓apk&#xff08;大约10来个&#xff09;&#xff0c;发现现在这个应用软件…

基于SSM的珠宝首饰交易平台

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

GMAC PHY介绍

1.1PHY接口发展 &#xff08;1&#xff09;MII支持10M/100Mbps&#xff0c;一个接口由14根线组成&#xff0c;它的支持还是比较灵活的&#xff0c;但是有一个缺点是因为它一个端口用的信号线太多。参考芯片&#xff1a;DP83848 、DM900A&#xff08;该芯片内部集成了MAC和PHY接…

义乌购yiwugo根据ID取商品详情 API 接口系列,可测试

义乌购是义乌市场官方网站&#xff0c;以义乌市场为核心&#xff0c;覆盖全国小商品产业带优质供应商&#xff0c;提供一手货源&#xff0c;品类丰富&#xff0c;在线商品达500万&#xff0c;涉及玩具、饰品、工艺品、日用百货等26个大类。同时提供线上线下对应&#xff0c;交易…

线上论坛之性能测试

使用loadrunner进行简单性能测试&#xff1a;针对用户登录、发布帖子、点赞帖子、修改帖子内容、修改用户名、退出等功能进行简单的性能测试。 然后在实现的过程中&#xff0c;插入集合点以及事务等&#xff0c;并通过设置来实现用户的并发操作。 创建Vuser脚本。在自动化脚本中…

FIR数字滤波器设计及MATLAB实现

摘要&#xff1a;FIR数字滤波器是数字信号处理中得重要组成部分。本文主要介绍了利用MATLAB软件采用窗函数法设计符合指标的FIR数字滤波器。该方法也是窗函数法设计FIR数字滤波器的一般方法。 一、设计目的 MATLAB是一款功能强大的软件&#xff0c;它将数值分析、矩阵计算、科…

使用python实现短线选股

经常做短线的朋友都知道&#xff0c;选股是个较为复杂的工作&#xff0c;尤其是像我们这种非职业选手&#xff0c;下面就分享一些通过python实现选股的思路。 股票信息获取 炒短线离不开龙虎榜&#xff0c;我们先来通过龙虎榜来进行股票选择 url https://applhb.longhuvip…

深入网络底层,了解Linux系统收发网络数据包的过程、原理、流程,附图文说明

深入网络底层&#xff0c;了解Linux系统收发网络数据包的过程、原理、流程&#xff0c;附图文说明。 Linux 服务器收到网络数据包&#xff0c;需要经过哪些处理&#xff0c;一步步将数据传给应用进程的呢&#xff1f;应用进程发送数据包时&#xff0c;Linux 又是如何操作将数据…

【Rust日报】2023-09-15 RustRover:JetBrains单行版Rust IDE

RustRover&#xff1a;JetBrains单行版Rust IDE 深入了解 RustRover 的公共预览版&#xff0c;这是我们专为 Rust 开发人员设计的新 IDE&#xff01;体验其先进功能&#xff0c;并根据您的反馈帮助塑造其未来。现在就成为第一批探索它的人吧&#xff01; X post: https://x.com…