在 SVN 中合并后我无法提交更改

发布于 2024-07-06 21:48:33 字数 883 浏览 9 评论 0原文

使用 TortoiseSVN 合并项目的两个分支后,我在提交更改时遇到了问题。

以下是详细信息:

我对我正在处理的项目进行了合并分支。

项目包括主存储库和作为svn external(库也分支)作为项目的子目录与主存储库联合的库。

当我尝试提交更改时,TortoiseSVN 说:

Commit A
re all the targets part of the same working copy? 
Unable to lock 'D:\websites\project\lib' 
Please execute the "Cleanup" command.

当然清理没有帮助。

project 目录的 svn:external 关键字定义良好,lib 文件夹仍然包含正确版本的库(主干版本)。

SVN服务器和客户端都是1.5.x版本(TortoiseSVN是1.5.3.x)。

从技术角度来看,项目都是同一 SVN 存储库中的项目。

知道出了什么问题吗?

我一直在谷歌上搜索解决方案,但没有找到任何有用的东西,所以我尝试分两步提交我的更改:

  1. 从项目文件夹提交更改
  2. 从库文件夹提交更改

这没有任何问题。

但我仍然想知道为什么我不能一次性提交所有内容。

编辑:

  • (Ken G 回答后)TortoiseSVN 1.3.x 的固定版本 -> 1.5.3.x。

I had a problem with committing changes after merging two branches of my project using TortoiseSVN.

Here are details:

I did a merge branch to trunk of project which I am working on.

Project includes main repository and libraries joint to main repository as svn external (libraries are also branched) as subdirectory of project.

When I was trying to commit changes TortoiseSVN said:

Commit A
re all the targets part of the same working copy? 
Unable to lock 'D:\websites\project\lib' 
Please execute the "Cleanup" command.

Of course Cleanup didn't help.

svn:external keyword for project directory was well defined, also lib folder still contained proper version of libraries (trunk version).

Both SVN server and client are in 1.5.x version (TortoiseSVN is 1.5.3.x).

From technical point of view both project and libraries are projects in the same SVN repository.

Any idea what went wrong?

I had been googling a bit for the solution, but didn't find anything useful, so I tried to commit my changes in two steps:

  1. commit changes from project folder
  2. commit changes from libraries folder

Which went without any problems.

But I am still wondering why I couldn't commit everything in one commit.

EDITS:

  • (After Ken G answer) Fixed version of TortoiseSVN 1.3.x -> 1.5.3.x.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

情绪操控生活 2024-07-13 21:48:33

TortoiseSVN 1.3非常旧,最新版本为 1.5.x。 自 1.3 以来,Subversion 和 TortoiseSVN 都发生了许多变化,因此升级您的客户端可能是您最好的选择。

话虽如此,1.5 TortoiseSVN 将创建/更新工作副本为 1.5 版格式。 在针对以前的 Subversion 工作副本使用 TortoiseSVN(或任何 SVN 客户端)时要非常小心。

1.3 of TortoiseSVN is very old, the latest revision being 1.5.x. There have been numerous changes in both Subversion and TortoiseSVN since 1.3, so upgrading your client is probably your best bet.

Having said that, 1.5 TortoiseSVN is going to create/update Working Copies to a version 1.5 format. BE VERY CAREFUL when using TortoiseSVN (or any SVN client) against a previous Subversion's working copy.

够钟 2024-07-13 21:48:33

svn:external 将导致 Subversion 在签出时组合不同的存储库路径,但最终这些路径仍然是“不相交的”,因此您必须进行两次提交才能获得应用更改。

以下是 使用 Subversion 进行版本控制<的相关引用/a>

Subversion 仍然真正运作
仅在非不相交的工作副本上。
因此,举例来说,如果您想提交
您在其中一项或多项中所做的更改
更多的外部工作副本,
您必须显式运行 svn commit
这些工作副本——致力于
主工作副本不会递归
进入任何外部。

svn:external will cause Subversion to combine different repository paths on check-out, but ultimately those paths are still 'disjoint', so you have to do two commits to get the changes applied.

Here's the relevant quote from Version Control with Subversion

And Subversion still truly operates
only on nondisjoint working copies.
So, for example, if you want to commit
changes that you've made in one or
more of those external working copies,
you must run svn commit explicitly on
those working copies—committing on the
primary working copy will not recurse
into any external ones.

╄→承喏 2024-07-13 21:48:33

我想我记得在 TortoiseSVN 中读到过一个与此相关的错误,该错误已在最新版本中修复。 查看最新的发行说明

I think I remember reading about a bug relating to this in TortoiseSVN that's been fixed in the latest release. Check the latest release notes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文