ChatGPT解决这个技术问题 Extra ChatGPT

我正在开发一个使用 subversion 作为版本控制的网络,但得到“工作目录锁定”错误消息

这是故事:

我有

个人电脑-A:

视窗 XP 专业版

视觉SVN 2.5.2

乌龟 SVN 1.7.3

PC-B:

Windows XP 主页

乌龟 SVN 1.7.3

我已经使用 VisualSVN 在 PC-A 上创建了存储库。

从 PC-B,我检查 http:\\PC-A:81\svn\test\trunk 到 D:\xampp\htdocs\test-lalala。

从 PC-A,我还检查 http:\\PC-A:81\svn\test\trunk 到 D:\xampp\htdocs\test-lalala。

我创建了一个运行 my-post-commit.bat 文件的提交后挂钩,因此当我提交到 http:\\PC-A:81\svn\test\trunk,文件夹 D:\xampp\htdocs\test-lalalaon PC- A 将更新,因此其他人可以看到结果。

"C:\Program Files\VisualSVN Server\bin\svn.exe" update "D:\xampp\htdocs\test-lalala" --username myusername --password mypassword --config-dir "C:\Program Files\VisualSVN Server\conf" 

在 PC-B 上,创建 index.php 文件并提交。当我提交时,我收到此错误消息

https://i.stack.imgur.com/PUtyF.png

在 PC-A 上,我尝试右键单击 D:\xampp\htdocs\test-lalala TortoiseSVN > CleanUp,然后检查“清理工作副本状态”和“包括外部”(默认选中)。尝试添加文件并提交,但仍然收到相同的错误消息。

我尝试在 .svn 文件夹上查找锁定文件,但没有锁定文件。我还尝试删除 PC-A D:\xampp\htdocs\test-lalala 上的工作副本并再次结帐,但是当我提交时,仍然收到相同的错误消息。

如何解决此错误消息?所以当我提交时,文件夹会自动更新吗?

Jonathon J Howey 的回答对我有用。我必须再做一件事,那就是在清理之前关闭我的视觉工作室。

d
divinedragon

每次我遇到工作副本锁定错误时,我都会运行“清理”。之后一切恢复正常。

在命令行上,您可以执行 svn cleanup,它也会删除锁定文件。

注意:在上一级目录上执行此操作,大多数情况下应该可以解决。


当我从锁定位置清理一个目录级别时为我工作
它在 Ubuntu 上运行,我在客户端上有 Ubuntu,在服务器上有 Linux,它可以工作。实际上,这个问题在 Linux 上比在 Windows 上更频繁地发生在我身上。
如果使用 GUI,请不要忘记选中“Break locks”复选框。
J
Jonathon J Howey

对于仍然遇到此问题的任何人(错误:工作副本“{DIR}”已锁定。),我有您的解决方案:

我发现当一个 TortoiseSVN 窗口崩溃时,它会留下一个 TSVNCache.exe,它仍然有一些处理您的工作副本的句柄,这会导致您看到的锁定问题(并且还会阻止清理工作)。

所以要解决这个问题:

任何一个

1a) 使用 Process Explorer 或类似工具删除 TSVNCache.exe 拥有的句柄

1b) ..或者更简单,只需使用任务管理器杀死 TSVNCache.exe

然后

2)右键单击-> TortoiseSVN-> 清理。只需要检查“清理工作副本状态”。

从那里开始,快乐的更新/提交。您可以通过执行 SVN 更新来重现锁定行为,然后在更新完成之前快速杀死它的 TortoiseProc.exe 进程。


只是运行清理对我有用,但这是在注销并再次打开之后,所以可能以这种方式杀死了这个过程。
我让 Visual Studio 与 AnkhSVN 一起运行,并且必须在清理工作之前关闭它。
经过大量搜索,我终于找到了这个。这应该更明显,因为它是唯一对我有用的东西!
P
Prince

在顶级目录级别运行“清理”。


“工作目录锁定”错误可能是由于 svn 客户端在添加文件夹/文件时存在锁定并且未正确提交,并且可能通过清理修复。
当我没有在 顶级目录 级别运行清理时,我得到了同样的错误
+1 表示“在顶级目录级别”。没有其他人提到它,它似乎很重要。
s
sgupta

我通过删除 WC_LOCK 表中的 SQLite ".svn\wc.db" 文件锁定记录中的 WC_Lock 记录来解决它。

只需使用 SQLite 编辑器打开“wc.db”文件并执行

从 WC_LOCK 中删除

解决方案在另一个我现在找不到的链接中给出。但确实是一个很好的解决方案;不用担心删除所有目录


SQL Lite 的 DB Browser 是否与 SQLLite 编辑器相同?
是的,应该是。对我来说,我通常只使用 Firefox 扩展来编辑数据库
A
Alexis Pigeon

我通过删除隐藏的 .svn 文件夹来修复它,并用新的结帐 .svn 替换它,它工作正常。可能这个隐藏的文件夹搞砸了!


S
Sadikhasan

我相信它对你很好

转到顶级 SVN 文件夹。

右键单击文件夹(包含您的 svn 文件)-> TortoiseSVN -> CleanUp

这肯定会解决你的问题。


S
Shirish

如果您是 Windows 用户并使用“Tortoise SVN”用户。

选择文件。右键点击。选项 'Tortoise SVN' --> 获取锁。使用选项“偷锁”。


H
Hardik Savani

您只需一步即可修复它。

第 1 步:打开终端并转到您的项目,然后启动命令“svn cleanup”然后“svn update”


这是两个步骤;P ...甚至是三个
P
Permana

我最终使用了导出命令而不是更新命令。这是提交后挂钩

"C:\Program Files\VisualSVN Server\bin\svn.exe" 导出 "D:\xampp\htdocs\test-lalala" --quiet --non-interactive --force --username myusername --password mypassword


R
Ram Balwad

错误“工作副本锁定”,只需按照以下步骤操作:

在哪个目录中更新时出错转到其父目录在父目录中转到“.svn”隐藏目录删除名称为“lock”的文件清理并完成

您可以正确更新svn而不会出错


p
prashant thakre

乌龟 svn -> 清理

这就是 SVN 中的全部内容


经常失败或无限期清理
如果用户遇到问题并且根本不使用 TortoiseSVN 怎么办?
L
LivCool

当您收到工作副本错误时,只需运行 svn cleanup 即可清除所有不需要的文件和文件夹。如果仍然出现错误,那就做一件事。

将您的文件复制到其他驱动器并删除工作副本文件夹或文件,然后进行更新,它将获取新文件,然后用您更新的副本替换并提交相同的文件。


A
Alan Fletcher

我遇到了与您描述的相同的问题。这似乎是 Tortoise 1.7.3 上的一个错误。我已经恢复到 1.7.2,执行了清理和更新。现在我的 SVN/Tortoise 又可以正常工作了


F
Frank Roth

对于 PHPStorm 或 Intellij:

VCS -> Cleanup Project

K
KrishPrabakar

您的 BitLocker 磁盘加密是否正在运行?就我而言,它锁定了磁盘的整个驱动器进行加密,而 SVN 因此错误而失败。


L
Liam
svn cleanup test-lalala/
svn update

重复两次


你能进一步解释一下吗? test-lalala 代表什么?
@NicoHaase 这与问题中使用的名称相同
“重复两次”是什么意思?

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅