草庐IT

windows - 无法升级 SVN 工作副本

coder 2023-11-11 原文

我有一个非常非常大的 svn 仓库。当我尝试使用它(提交、更新等)时,它说有锁。

当我运行“svn cleanup”时,它说工作副本太旧,我需要升级它。

当我运行“svn upgrade”时,它会运行,但什么也没说。

为了以防万一,我还在 repo 上运行了“svnadmin upgrade”。

我安装了最新的 TortoiseSVN。

通常,如果我有 SVN 问题,我会移出文件,更新,再移回文件,但正如我之前提到的,这是一个非常大的存储库。

如有任何帮助,我们将不胜感激。

谢谢!

具体信息:

>svn update
svn: E155004: Run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
svn: E155004: Working copy '*****' locked.
svn: E155004: '*****' is already locked.

>svn cleanup
svn: E155036: Please see the 'svn upgrade' command
svn: E155036: The working copy at '*****' is too old (format 29) to work with client version '1.8.1 (r1503906)' (expects format 31). You need to upgrade the working copy first.

>svn upgrade

>

更新 1: 我安装了 1.7.X 客户端并尝试运行清理。由于某种原因,它提示 repo 不是工作副本。我尝试使用相同的 1.7.X 客户端进行更新并收到以下消息:

>"c:\Program Files\SlikSvn\bin\svn.exe" update
svn: E155021: This client is too old to work with the working copy at '*****' (format 31).
You need to get a newer Subversion client. For more details, see http://subversion.apache.org/faq.html#working-copy-format-change

所以,这个客户端东西 repo 是格式 31。tortoisesvn 认为它是格式 29。现在我更困惑了。

更新 2: 对@David W 的回应

Is this about a working copy or the repository?

工作副本。尽管我也在 repo 协议(protocol)上尝试了 svnadmin 升级。但是,我使用的 svnadmin 是 1.8.1。我只是尝试使用 TortoiseSVN (1.8.10) 升级 repo 协议(protocol),但这并没有解决问题。

is this about a file that's locked because someone locked it, or because your working directory is locked due to an incomplete

我是唯一一个使用该存储库的人,所以我知道没有其他人锁定它。这可能是由于操作不完整。

我用 1.8.10 运行 svn status,没有任何东西有“K”。有一些文件带有“L”,还有一个带有“?”。列出的所有项目都是目录,而不是文件,但标有“?”的项目除外。

如果我运行“svn lock --force dirname”,它会响应该特定节点“不是文件”。当我在标有“?”的文件上运行它时,它响应说“未找到”该节点。

Then, there is a locked working directory because of an incomplete operation...

是的,您调用了它。这就是为什么所有的东西都标有“L”,我想。

当我运行清理 (1.8.10) 时,它给出了我在初始问题中报告的相同错误(格式 29 对于此格式 31 客户端来说太旧了)。

Remember that you can always delete a working directory and create a new one

是的。如果我删除工作副本中的任何目录并点击更新,它会提示它已被锁定。我无法清除锁定,因为格式不匹配。理论上我可以重新 checkout 整个存储库,然后将内容复制回去,但存储库是 12GB(210,000 个文件)。

Be careful about mixing up Subversion clients

所以,我不知道我有两个客户端,但我只使用 TortoiseSVN (1.8.10)。我今天才在尝试排除故障时发现我有两个。

* 更新 3:决议 * 使用@David W 的提示,这是我解决问题的方法: 1) 备份我的 .svn 文件夹 2) 从 https://github.com/sqlitebrowser/sqlitebrowser/releases 下载了一个 SQLite 编辑器 3) 打开我的 wc.db 文件并浏览 WC_LOCK 表。该表中有 1 个条目,我将其删除。 4) 尝试使用 TortoiseSVN (1.8.10) 运行清理,之前提示锁。终于成功了! 5) 尝试在我的存储库中运行命令(更新、提交等),一切都很顺利。

感谢所有帮助过我的人,尤其是@David W,感谢他没有放弃我。

最佳答案

I have a very very large svn repo. When I try to use it (commit, update, etc.) it says there are locks.

这是关于工作副本还是存储库?两种不同的东西。另外,这是关于一个文件被锁定是因为有人锁定它,还是因为您的工作目录由于不完整而被锁定

您可以在文件上设置一个,以防止您进行提交。从命令行,您可以执行 svn status 并查看锁定文件旁边的 K。然后,您可以使用 svn lock --force窃取 该锁,并检查您的更改。 (只要存储库中没有阻止您窃取锁的钩子(Hook))。

然后,由于未完成的操作,有一个锁定的工作目录。在这种情况下,当您执行 svn status 时,您会看到一个 L。在这种情况下,您通常可以在该工作副本的根目录(.svn 文件夹所在的位置)执行 svn cleanup

请记住,您可以始终 删除一个工作目录并创建一个新目录。小心混淆 Subversion 客户端。曾经,这似乎并没有那么重要,但在修订版 1.6、1.7、1.8 和 1.9 中,工作副本的结构发生了变化,可能与运行其他修订版的客户端不兼容。


更新2

Yep. If I delete any directory in the working copy and hit update, it complains that it is locked. I can't clear the lock, 'cause of the format mismatch. I can theoretically just re-checkout the entire repo, then copy things back, but the repo is 12GB (210,000 files).

删除目录然后执行 svn up 不会清除锁定问题。我的意思是删除整个工作目录,然后重做一个svn co。您不必检查整个存储库。你只需要检查你需要什么。您需要所有 21 万个文件吗?我怀疑:

$ svn co http://server/repo            # NOOOO!
$ svn co http://server/repo/trunk      # A bit better, but do you need all
                                       # the projects under Trunk?
$ svn co http://server/repo/trunk/foo  # Now, I'm just checking out foo
$ svn co http://server/repo/trunk/bar  # Now, I'm just checking out bar

这会检查两个工作目录:一个用于 foo,一个用于 bar

如果您真的非常想检查整个主干,请使用 --depth 来稀疏地检查您需要的内容:

# Checking out trunk, but only getting the project directories
$ svn co http://server/repo/trunk --depth=immediates
$ svn up --set-depth=infinity foo
$ svn up --set-depth=infinity bar

理论上我在这里检查了整个主干,但我只得到空的主项目目录。我只从项目foobar 获取文件。但是,foobar 共享 一个工作目录。假设我开始对 foo 进行长时间更新,然后转到 bar 并尝试提交。我会收到工作目录已锁定的警告。我不能在同一个工作目录上执行两个单独的 Subversion 命令,即使它们位于该工作目录的不同部分。

So, I was unaware that I had two clients, but I only only only use TortoiseSVN (1.8.10). I only discovered today that I had two when I was trying to troubleshoot.

如果您安装了 Tortoise,您还可以安装 Subversion 命令行客户端,这是一个可选安装。我强烈推荐它!不要使用从其他地方下载的命令行客户端(如 SlikSVN 或 CollabeNet。并不是说这些客户端不好。而是你应该使用你的 TortoiseSVN 版本附带的命令行客户端,以保证两者之间的某种奇偶校验)颠覆客户。

清理与升级与 Svnadmin

这些很容易混淆。你不应该在你的工作目录上使用 svnadmin 命令。 svnadmin 用于服务器。您遇到的问题完全是客户问题。

随着 Subversion 从 1.6 到 1.7 再到 1.8 再到 1.9,upgrade 会将您的工作目录升级到新格式。完成后,您将无法返回到旧格式。您升级到 1.8 格式,1.7 和 1.6 客户端将不再工作。

清理是为了帮助移除由于不完整的 Subversion 客户端命令而导致的锁定。

关于windows - 无法升级 SVN 工作副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26165001/

有关windows - 无法升级 SVN 工作副本的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  3. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  4. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  5. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  6. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  7. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  8. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  9. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  10. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

随机推荐