当我做svn更新时,我得到这个错误:

工作副本XXXXXXXX锁定请 执行“清理”命令

当我清理的时候,我得到

处理失败 以下路径:XXXXXXXX

我怎样才能跳出这个循环呢?


你是否正在使用TortoiseSVN并且刚刚升级?我以前从1.4迁移到1.5时就遇到过这个问题,而且无法重新启动。(尝试重启)。

您需要重新启动的原因是缓存文件变得异常。

否则,要继续前进,将该工作副本导出到一个新文件夹(不要复制.svn隐藏文件夹),重新签出项目,并将所有代码移回,然后继续提交。


一种方法是:

将编辑过的项目复制到另一个位置。 删除包含问题路径的文件夹。 通过Subversion更新包含的文件夹。 复制文件或根据需要合并更改。 提交

另一种选择是删除顶级文件夹并再次签出。希望不会发展到那种地步。


工作中的一位同事经常看到这条消息,对他来说,这是因为他删除了一个在SVN版本控制下的目录,而没有从SVN中删除它,然后在其不受版本控制的位置创建了一个同名的新目录。

如果这是你的问题……

有不同的方法来修复它,这取决于如何/为什么替换目录。

无论哪种方式,你都可能需要:

A)将现有目录重命名为临时名称

B)通过SVN还原恢复从文件系统中删除的目录,但不从SVN中删除

从那里开始,你可以选择

A)将相关文件复制到被删除的目录中

B)如果目录中的内容发生了重大变化,请对原始目录进行SVN删除,提交,并将新目录重命名为所需的名称,然后进行SVN添加以使该目录处于版本控制之下。


SVN通常在从存储库获取实际文件之前更新文件夹中文件的内部结构(. SVN /prop-base)。一旦获取文件,这将被清除。在更新过程中,由于“更新”失败或过早取消,通常会抛出错误。

检查.svn/prop-base目录下列出的文件 删除任何不在文件夹下的文件 清理 更新

现在更新应该可以工作了。


同样的问题,因为我导出了一个版本控制文件夹下的文件夹。必须从TortoiseSVN中删除文件夹,然后从文件系统中删除文件夹(TortoiseSVN不喜欢未版本化的子文件夹…为什么不呢? ?)


只需删除.svn文件夹,然后在父目录上运行清理。完美的工作! !


查看您的.svn文件夹,其中将有一个名为lock的文件。删除该文件,您将能够更新。每个子目录的.svn目录下可能存在较多的锁文件。它们也需要删除。这可以作为批处理从命令行非常简单地完成,例如。

find . -name 'lock' -exec rm -v {} \;

注意,您正在手动编辑.svn文件夹中的文件。他们被放在那里是有原因的。这个理由可能是错误的,但如果不是的话,你可能会破坏你的本地副本。

来源:http://www.svnforum.org/2017/viewtopic.php?p=6068


当我遇到这个问题时,我发现直接在问题路径上运行清理命令通常似乎可以工作。然后,我将再次从工作根目录运行清理,它将报错其他目录。我一直重复,直到它不再抱怨。


对我来说,诀窍是在我的工作副本顶部运行svn cleanup,而不是在问题发生之前我一直在工作的文件夹中运行。


最简单的方法是显示隐藏文件夹,然后打开. svn文件夹。您应该看到一个名为“lock”的零KB文件,删除它将解决这个问题


我在TortoiseSVN下有这个错误与我在新项目下创建的新目录有关。我刚刚创建了这个项目,所以这个目录之前不可能存在。我在存储库浏览器中查看,新文件夹确实已经在存储库中,但是TortoiseSVN没有显示它已提交。

为了解决这个问题,因为我刚刚创建了这个文件夹,所以我在存储库中删除了它,然后进行了提交。它运行得很好。

因为我是在Visual Studio之外完成的,所以我必须重新启动Visual Studio,让它重新解决所有问题。


如果您在Windows机器上,通过浏览器查看存储库,您可能会看到两个具有相同文件名但使用不同大小写的文件。Subversion是区分大小写的,而Windows不是,所以当Windows认为它正在拉下同一个文件而Subversion没有时,您可以获得一个锁。请删除存储库中重复的文件名,然后重试。


我遇到这个问题是因为外部文件夹不想被链接到现有文件夹中。如果您添加了一个svn:externals属性行,其中目标是一个现有的(有版本控制的或没有版本控制的)文件夹,您将得到svn Woring Copy locked错误。这里的清理也会告诉你一切正常,但仍然更新不工作。

解决方案:从存储库中删除麻烦的文件夹,并在设置了svn:externals属性的根文件夹中进行更新。这将创建文件夹,一切都将恢复正常。

我遇到这个问题是因为svn:externals for files要求目标文件夹进行版本控制。当我注意到这在不同的存储库中不起作用后,我从外部文件切换到外部文件夹,陷入了这种混乱。


开始搜索…锁…选择所有列出的文件并删除..fixed


应该做到以下几点:

SVN status | grep”。L" | sed 's/。*(. *) / \ 1美元/ | awk的{打印长度(1美元),$ 1}”|排序nr | awk的{打印2美元“pushd;SVN清理;Popd "}' | sh


不要删除您的解决方案!

在.svn文件夹中有一个名为lock的文件,长度为0字节

您可以从解决方案中的所有.svn文件夹中删除所有这些文件,这样就可以工作了

这对我来说是有效的


如果你在Linux上,试试这个:

find "/the/path/to/your/directory" -name .svn -type d | xargs chmod 0777 -R

然后在该目录上运行清理命令,然后尝试更新。


查克的解决方案对我来说不实用。在我第一次遇到这个问题时,它起作用了,但也给了我很多额外的工作。在第二种情况下,当我在网络外使用我的笔记本电脑时,我改变了文件的负载。我无法想象自己在更改文件后一个文件夹一个文件夹地查看。对乌龟抱着希望,努力工作。看看:

环境是:

Visual Studio 2008 Ankhsvn

过程:

首先我不能承诺,它说我需要清理 第二,我无法清理,在svn - bin中有一个文件夹 我下载了龟的最新版本,尝试和不工作,由于dammed文件夹。 重命名该文件夹,现在我可以更新本地存储库的最新版本。 来了几份文件。 做了承诺并成功了。


就地撤销文件版本,并将新的签入到相同的位置,为我解决了这个问题。

在TortoiseSVN中,要进行就地版本化,请从文件列表中右拖工作副本的根文件夹到目录树中,并从弹出菜单中选择“SVN Export versioned items here”。TortoiseSVN注意到目标和源是相同的,并建议解除工作副本的版本控制。

在解除版本控制之后,对同一文件夹执行一次新的签出(现在包含所有文件的未版本控制副本)。TortoiseSVN会警告你,你正在签入一个现有的文件夹,但你可以继续。

在此之后,清理、更新和其他操作工作顺利进行。由于上述两个步骤都保留了本地修改,因此不应该有任何信息丢失(但在此之前备份工作副本可能是一个好主意)。

警告:如果工作副本包含混合版本或未提交的属性更改,则该信息将丢失。对我来说,这种情况并不常见,如果要在损坏的工作副本或丢失未提交的属性更改之间做出选择,我倾向于选择后者。


我的根目录中有一个文件把它弄乱了。(没有锁文件,svn清理失败等)我的整个签出是> 2GB,网速较慢,所以再次检查所有内容对我来说不是一个很好的选择。

对我有用的是:

还原&还原的变化 搞砸了工作副本(#1)。 又查了一份回购文件 (2)——depth为空 添加和 在new中提交文件 工作副本(#2)。 已在 原始工作副本(#1)。

对我来说似乎又恢复正常了。


我只是创建了一个新文件夹,签出项目,将更新的文件复制到新文件夹中。

用新的结账方式修好了。


我遇到了这样的问题,“清理”工作,但“更新”将继续失败。有效的解决方案是通过Windows资源管理器删除有问题的文件夹,而不是TortoiseSVN的删除(这将删除标记为提交到存储库的内容,然后我做了一个“签出”,从存储库中“更新”文件夹。

关于O/S删除和SVN删除之间区别的更多信息: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-rename.html

值得注意的是:

当你TortoiseSVN→Delete一个文件时,它会立即从你的工作副本中删除,并在下次提交时在存储库中标记为删除。

And:

如果一个文件是通过资源管理器而不是使用TortoiseSVN上下文菜单删除的,提交对话框会显示这些文件,并允许你在提交之前从版本控制中删除它们。但是,如果您更新了工作副本,Subversion将发现丢失的文件并用存储库中的最新版本替换它。


Spotlight在递归查找锁文件方面是它通常的垃圾。

EasyFind在Mac App Store上运行良好

http://itunes.apple.com/gb/app/easyfind/id411673888?mt=12

搜索“lock”

全选/删除


更新目录权限(授予写访问权)也可以解决这个问题。

chmod +w <dir_name>

我做了以下来解决我的问题:

的前面加上“_”,重命名了有问题的文件夹 文件夹的名字。 对父文件夹进行了“清理”。 将有问题的文件夹重命名为原来的名称。 做了一个提交。


在Mac OS下的版本: 清除工作副本锁…


在我的案例中,我通过手动删除SQLite中的一条记录来解决这个问题”。svn\wc"文件锁记录在WC_LOCK表中。

我用SQLite编辑器打开“WC”文件并执行

delete from WC_LOCK

按照eakkas的注释,您可能还需要从WORK_QUEUE表中删除所有条目。


我在使用SVN 1.7时遇到了完全相同的问题,上面提到的修复程序都不起作用。

最重要的是,确保备份所有编辑过的内容。

在花了几个小时后(没有重新下载所有内容,因为我的分支的大小超过6gb),我发现在你的分支的.svn文件夹中有一个名为“wc”的db文件。

使用任何db管理器打开db文件(我使用firefox的sqlite管理器插件),并导航到WC_LOCK表。这个表将包含获取的锁的条目。从表中删除记录,你就完成了:)


我也有同样的问题。似乎在最新版本中已经修复了。 我已经将我的Tortoise SVN更新到最新版本(1.7.11),清理工作进行得很好。

您可以在这里下载最新版本:downnoad tortoise svn。


我知道这是一个非常老的帖子,但我坚持认为:

解决这个问题最简单和最安全的方法是删除你隐藏的”。Svn”文件夹并再次检查所有内容。

当你再次检查头部修订时,它修复了svn周围的大多数问题,应该保持局部更改(标记为“冲突”)。


这个方法对我很管用。

找到根文件夹, 右击和清除 检查所有可用选项 按ok

清理后,它将允许您更新到最新版本。


清理有时并不足以解决这个问题。

如果您使用TortoiseSVN v1.7.2或更高版本,右键单击锁定文件的父目录,并从菜单中选择TortoiseSVN -> Repo Browser。在Repro Browser GUI中右键单击被锁定的文件,将会有一个选项来移除锁定。


对我来说,这其实是乌龟的错。Tortoise只是抱怨“不能清理,运行清理”,但是当我运行命令行(svn cleanup)时,它清楚地告诉我它不能删除一些正在使用的文件,解决方案是显而易见的。一旦我关闭Visual Studio(它保持文件打开),那么清理工作就很好了。

其他程序也可以在repo中保持文件打开,从而导致此问题。在另一个例子中,Excel保持xls打开是罪魁祸首,所以关闭所有可能在repo中使用任何东西的程序,甚至重新启动以强制程序关闭,然后再次尝试清理,这可能是明智的。


在解决方案资源管理器中,右键单击项目,在打开的子菜单中单击subversion并选择清理。它会解决问题,就像对我一样。希望它能起作用。


步骤:

关闭svn文件夹中的所有编辑文件 关闭eclipse或任何正在使用svn目录中的文件夹或文件的编辑器。 右键单击svn签出文件夹,然后单击释放锁。 右键单击svn签出文件夹,然后单击清洁。 您的SVN已准备好进行SVN提交和更新操作。

欢呼:)


在对项目结构进行更改时,首先可以通过使用svn copy和svn move etc命令来避免这类问题。请记住,svn只检查已经添加到subversion的文件中的更改,而不检查物理目录结构的更改。请参阅http://svnbook.red-bean.com/en/1.7/svn.tour.cycle.html

此外,在提交更改时,svn首先在todo列表中存储更改的“摘要”。在执行此todo列表中的svn操作时,它会锁定该文件,以防止在执行这些svn操作时发生其他更改。如果svn的操作中途中断,比如崩溃,文件将保持锁定状态,直到svn完成todo列表中的操作。可以使用svn cleanup命令“重新激活”。请参阅http://svnbook.red-bean.com/en/1.7/svn.tour.cleanup.html


在我的例子中,一台运行TortoiseSVN的Windows 7机器无法完全重命名文件夹。任何清理、更新或重命名操作的组合都不能解决这个问题。文件夹最初是用不同的case创建的,Tortoise或Subversion不会将其更改为存储库中的内容。

我的解决方案是:

通过Windows资源管理器复制文件夹(不带Subversion控件) 文件)在项目之外。 通过TortoiseSVN删除并提交文件夹。 通过Windows资源管理器将文件夹复制回正确的(当前)名称。 通过TortoiseSVN将文件夹添加回存储库。

我在每一步之后都进行了清理。糟糕的解决方法,但对我很有效。


我相信它对你很有效

转到顶级SVN文件夹。

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

这肯定能解决你的问题。


做清理工作

删除“。svn”文件夹。 在根文件夹中执行svncheckout。 尝试执行清理操作。

这解决了我的问题。


今天我经历了以上问题说

Svn:执行' Svn cleanup'命令移除锁(输入' Svn help cleanup') 详细信息)

这就是我的解决方案,开始工作了

关闭Xcode IDE,我试图从那里提交更改。 在Mac上——>进入终端——>输入下面的命令

svn cleanup <我的svn项目代码>的目录路径

例子:

svn净化/Users/Ramdhan/SVN_Repo/项目

按回车键并等待清理完成。 进入XCode IDE和清洁和构建项目 现在我可以提交我的所有更改,并采取更新以及。

希望这能有所帮助。


对我来说,问题是完全满磁盘驱动器(linux inodes在我的情况下),当我删除一些文件夹,它又开始工作了。

错误如下(任何svn动作):

$ svn cleanup
svn: E155004: Run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
svn: E155004: Working copy locked; try running 'svn cleanup' on the root of the working copy ('/my/directory') instead.
svn: E155004: Working copy '/my/directory' locked
svn: E200030: sqlite[S14]: unable to open database file
svn: E200030: Additional errors:
svn: E200030: sqlite[S14]: unable to open database file

最简单的方法:

进入项目的父目录(文件夹)。 右键单击 按下TortoiseSVN,然后按下清理… 清理对话框将自动出现 选择“清理工作副本状态”、“打破锁”、“修复时间戳”、“清理原始副本”、“刷新外壳覆盖”、“包括外部组件” 总统好

你成功地完成了你的工作。

检查屏幕截图以供参考。

第一步:

第二步: 启用中断锁定选项(清除弹出窗口中的第二个复选框)

希望这对你有很大帮助。


我在答案中没有看到这个问题的一个原因是,更新或签出可能已经使用其他用户/权限完成,例如使用$sudo。


首先尝试了许多解决方案,然后我只是删除了我有问题的文件夹。

然后执行SVN Update。

这对我很管用。

我不推荐这种方法,但除了这种方法,其他方法都不起作用。:(


我经常遇到这样的问题。我的模式会导致清理问题。

我在查看器中打开图像文件。 我删除图像文件/文件夹。 我正在提交/更新

关闭被删除的文件打开的图像查看器可以解决这个问题。 也许其他软件也能以同样的方式阻止清理。

一般来说。我相信在这种情况下重新启动电脑会有帮助。


对我来说,以上的方法都没用。 我通过砸锁找到了解决办法。 当我执行svn清理时,我选择了“打破锁”和“清理工作副本状态”。


While doing svn update using tortoise svn, the process got interrupted and stopped complaining the file is in use. Next it asked me to use CleanUp command on the folder. I tried to run CleanUp command but it failed to do so. Then I found a command shell which was using the folder files. So, I closed the command shell and checked if any editor is using the files related to it. We need to close them as well. Again, I tried CleanUp on the folder with options Break locks,revert changes,clear working copy status . The CleanUp went successfully. Then finally able to update my svn folder.


不管我怎么努力,清理工作对我都不起作用。相反,我从Visual Studio单独提交每个文件夹。然后我提交了最上面的文件夹,并成功了。


确切地说,这里没有列出这个答案:我的解决方案是关闭我的IDE(在本例中是Netbeans)。似乎IDE已经锁定了该文件。