如何解决“本地编辑,更新时传入删除”消息

当遇到 SVN 提示'本地编辑,更新时传入删除'冲突时,通常是因为文件已被他人删除并提交。解决方法包括:还原已删除的文件,使用解决冲突命令,或在未对文件做出修改的情况下直接删除冲突目录。在某些情况下,可能需要通过特定的 SVN 操作来恢复和删除文件以解决冲突。
摘要由CSDN通过智能技术生成

本文翻译自:How to resolve “local edit, incoming delete upon update” message

When I do a svn status . 当我做一个svn status . , I get this: ,我明白了:

!     C auto-complete-config.elc
      >   local edit, incoming delete upon update
!  +  C auto-complete.elc
      >   local edit, incoming delete upon update
!  +  C popup.elc
      >   local edit, incoming delete upon update
!  +  C fuzzy.elc
      >   local edit, incoming delete upon update

basically, these files shouldn't be in the repository. 基本上,这些文件不应该在存储库中。 A developer has removed them. 开发人员已将其删除。 Then, I think I did a svn rm ... after the fact by mistake (should've done svn update . instead). 然后,我认为我做了一个svn rm ...之后错误的事实(应该已经完成​​了svn update . )。

So now, when I do svn status . 所以现在,当我做svn status . , I get these tree conflict messages. ,我得到这些树冲突消息。

I found the doc here but not sure how to “merge” it according to the doc. 我在这里找到了doc但不确定如何根据doc“合并”它。

How to get rid of them? 如何摆脱它们?

I think my working copy is in sync with the repository. 我认为我的工作副本与存储库同步。 Don't know why these messages shows. 不知道为什么这些消息会显示出来。 These files should be removed and are removed as far as I know everywhere. 据我所知,这些文件应该删除并删除。 I tried svn update . 我试过svn update . and svn revert . svn revert . but I still get this message when I do svn status . 但是当我做svn status .时,我仍然会收到此消息svn status . .


#1楼

参考:https://stackoom.com/question/I7Ij/如何解决-本地编辑-更新时传入删除-消息


#2楼

So you can just revert the file that you deleted but remember, If you are working on any type of project with a set project file (like iOS), reverting the file will add it to your system folder structure but not your project file structure. 因此,您只需还原已删除的文件,但请记住,如果您正在使用设置项目文件(如iOS)处理任何类型的项目,则还原文件会将其添加到系统文件夹结构中,但不会添加到项目文件结构中。 additional steps may be required if you are in this case 如果你是这种情况,可能需要额外的步骤


#3楼

尝试使用解决冲突

svn resolve --accept=working PATH

#4楼

Short version: 精简版:

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update
$ touch foo bar
$ svn revert foo bar
$ rm foo bar

If the conflict is about directories instead of files then replace touch with mkdir and rm with rm -r . 如果冲突是有关目录,而不是文件然后更换touchmkdirrmrm -r


Note: the same procedure also work for the following situation: 注意:相同的过程也适用于以下情况:

$ svn st
!     C foo
      >   local delete, incoming delete upon update
!     C bar
      >   local delete, incoming delete upon update

Long version: 长版:

This happens when you edit a file while someone else deleted the file and commited first. 当您在其他人删除文件并首先提交时编辑文件时会发生这种情况。 As a good svn citizen you do an update before a commit. 作为一名优秀的svn公民,您可以在提交之前进行更新。 Now you have a conflict. 现在你发生了冲突。 Realising that deleting the file is the right thing to do you delete the file from your working copy. 意识到删除文件是正确的做法,您从工作副本中删除该文件。 Instead of being content svn now complains that the local files are missing and that there is a conflicting update which ultimately wants to see the files deleted. 而不是内容svn现在抱怨本地文件丢失,并且存在冲突的更新,最终希望看到文件被删除。 Good job svn. 干得好svn。

Should svn resolve not work, for whatever reason, you can do the following: 如果svn resolve不起作用,无论出于何种原因,您可以执行以下操作:

Initial situation: Local files are missing, update is conflicting. 初始情况:缺少本地文件,更新存在冲突。

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update

Recreate the conflicting files: 重新创建冲突的文件:

$ touch foo bar

If the conflict is about directories then replace touch with mkdir . 如果冲突与目录有关,则用mkdir替换touch

New situation: Local files to be added to the repository (yeah right, svn, whatever you say), update still conflicting. 新情况:要添加到存储库的本地文件(是的,svn,无论你说什么),更新仍然存在冲突。

$ svn st
A  +  C foo
      >   local edit, incoming delete upon update
A  +  C bar
      >   local edit, incoming delete upon update

Revert the files to the state svn likes them (that means deleted): 将文件恢复到svn喜欢它们的状态(这意味着删除):

$ svn revert foo bar

New situation: Local files not known to svn, update no longer conflicting. 新情况:svn不知道本地文件,更新不再冲突。

$ svn st
?       foo
?       bar

Now we can delete the files: 现在我们可以删除文件:

$ rm foo bar

If the conflict is about directories then replace rm with rm -r . 如果冲突是关于目录,那么用rm -r替换rm

svn no longer complains: svn不再抱怨:

$ svn st

Done. 完成。


#5楼

If you haven't made any changes inside the conflicted directory, you can also rm -rf conflicts_in_here/ and then svn up . 如果您没有在冲突的目录中进行任何更改,您还可以rm -rf conflicts_in_here/然后svn up This worked for me at least. 这至少对我有用。


#6楼

您可以强制将本地目录还原为svn。

 svn revert -R your_local_path
针对打不开chm格式的网友 转换后为网页格式的<SVN操作手册中文版> 目录 译者序 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书组织结构 Subversion 1.1的新特性,svn客户端和linux下命令行。 目录 1. 简介 1.1. 什么是 TortoiseSVN? 1.2. TortoiseSVN 的历史 1.3. TortoiseSVN 的特性 1.4. 安装 TortoiseSVN 1.4.1. 系统要求 1.4.2. 安装 1.4.3. 语言包 1.4.4. 拼写检查器 2. Basic Version-Control Concepts 2.1. 版本库 2.2. 版本模型 2.2.1. 文件共享的问题 2.2.2. 锁定-修改-解锁 方案 2.2.3. 复制-修改-合并 方案 2.2.4. Subversion 怎么做? 2.3. Subversion 实战 2.3.1. 工作副本 2.3.2. 版本库的 URL 2.3.3. 修订版本 2.3.4. 工作副本怎样跟踪版本库 2.4. 摘要 3. 版本库 3.1. 创建版本库 3.1.1. 使用命令行工具创建版本库 3.1.2. 使用 TortoiseSVN 创建版本库 3.1.3. 本地访问版本库 3.1.4. 访问网络共享磁盘上的版本库 3.1.5. 版本库布局 3.2. 版本库备份 3.3. 服务器端钩子脚本 3.4. 检出链接 3.5. Accessing the Repository 3.6. 基于 svnserve 的服务器 3.6.1. 简介 3.6.2. 安装 svnserve 3.6.3. 运行 svnserve 3.6.3.1. 以服务形式运行 svnserve 3.6.4. svnserve 与基本认证 3.6.5. 使用 SASL 以便更安全 3.6.5.1. 什么是 SASL? 3.6.5.2. SASL 认证 3.6.5.3. SASL 加密 3.6.6. 使用 svn+ssh 认证 3.6.7. svnserve 基于路径的授权 3.7. 基于 Apache 的服务器 3.7.1. 简介 3.7.2. 安装 Apache 3.7.3. 安装 Subversion 3.7.4. 配置 3.7.5. 多版本库 3.7.6. 路径为基础的授权 3.7.7. 使用 Windows 域认证 3.7.8. 多重认证源 3.7.9. 用 SSL 使服务器更安全 3.7.10. 在虚拟 SSL 主机中使用客户端证书 4. 日常使用指南 4.1. 开始 4.1.1. 图标重载 4.1.2. 右键菜单 4.1.3. 拖放 4.1.4. 常用快捷方式 4.1.5. 认证 4.1.6. 最大化窗口 4.2. 导入数据到版本库 4.2.1. 导入 4.2.2. 导入适当的位置 4.2.3. 专用文件 4.3. 检出工作副本 4.3.1. 检出深度 4.4. 将你的修改提交到版本库 4.4.1. 提交对话框 4.4.2. 修改列表 4.4.3. Excluding Items from the Commit List 4.4.4. 提交日志信息 4.4.5. 提交进程 4.5. 用来自别人的修改更新你的工作副本 4.6. 解决冲突 4.6.1. File Conflicts 4.6.2. Tree Conflicts 4.6.2.1. Local delete, incoming edit upon update 4.6.2.2. Local edit, incoming delete upon update 4.6.2.3. Local delete, incoming delete upon update 4.6.2.4. Local missing, incoming edit upon merge 4.6.2.5. Local edit, incoming delete upon merge 4.6.2.6. Local delete, incoming delete upon merge 4.7. 获得状态信息 4.7.1. 图标重载 4.7.2. 在 Windows 资源管理器中的 TortoiseSVN 列 4.7.3. 本地与远程状态 4.7.4. 查看差别 4.8. 修改列表 4.9. 版本日志对话框 4.9.1. 调用版本日志对话框 4.9.2. 版本日志动作 4.9.3. 获得更多信息 4.9.4. 获取更多的日志信息 4.9.5. 当前工作副本的版本 4.9.6. 合并跟踪特性 4.9.7. 修改日志消息和作者 4.9.8. 过滤日志信息 4.9.9. 统计信息 4.9.9.1. 统计页 4.9.9.2. 作者提交次数统计页 4.9.9.3. 按日期提交统计页 4.9.10. 离线方式 4.9.11. 刷新视图 4.10. 查看差异 4.10.1. 文件差异 4.10.2. 行结束符和空白选项 4.10.3. 比较文件夹 4.10.4. 使用 TortoiseIDiff 进行比较的图像 4.10.5. 其他的比较/合并工具 4.11. 添加新文件和目录 4.12. Copying/Moving/Renaming Files and Folders 4.13. 忽略文件和目录 4.13.1. 忽略列表中的模式匹配 4.14. 删除、移动和改名 4.14.1. 正在删除文件/文件夹 4.14.2. 移动文件和文件夹 4.14.3. 改变文件名称大小写 4.14.4. 处理文件名称大小写冲突 4.14.5. 修复文件改名 4.14.6. 删除未版本控制的文件 4.15. 撤消更改 4.16. 清理 4.17. 项目设置 4.17.1. Subversion 属性 4.17.1.1. svn:keywords 4.17.1.2. 增加和编辑属性 4.17.1.3. Exporting and Importing Properties 4.17.1.4. 二进制属性 4.17.1.5. 自动属性设置 4.17.2. TortoiseSVN 项目属性 4.18. External Items 4.18.1. External Folders 4.18.2. External Files 4.19. 分支/标记 4.19.1. 创建一个分支或标记 4.19.2. 检出或者切换 4.20. 正在合并 4.20.1. 合并指定版本范围 4.20.2. 复兴分支 4.20.3. 合并两个不同的目录树 4.20.4. 合并选项 4.20.5. 预览合并结果 4.20.6. 合并跟踪 4.20.7. 子合并期间处理冲突 4.20.8. Merge a Completed Branch 4.20.9. Feature Branch Maintenance 4.21. 锁 4.21.1. 锁定在Subverion中是如何工作的 4.21.2. 取得锁定 4.21.3. 释放锁定 4.21.4. 检查锁定状态 4.21.5. 让非锁定的文件变成只读 4.21.6. 锁定钩子脚本 4.22. 创建并应用补丁 4.22.1. 创建一个补丁文件 4.22.2. 应用一个补丁文件 4.23. 谁修改了哪一行? 4.23.1. 追溯文件 4.23.2. 追溯不同点 4.24. 版本库浏览器 4.25. 版本分支图 4.25.1. 版本图节点 4.25.2. Changing the View 4.25.3. 使用图 4.25.4. 刷新视图 4.25.5. Pruning Trees 4.26. 导出一个Subversion工作副本 4.26.1. 从版本控制里移除删除工作副本 4.27. 重新定位工作副本 4.28. 与 BUG 跟踪系统/问题跟踪集成 4.28.1. Adding Issue Numbers to Log Messages 4.28.1.1. Issue Number in Text Box 4.28.1.2. Issue Numbers Using Regular Expressions 4.28.2. Getting Information from the Issue Tracker 4.29. 与基于 WEB 的版本库浏览器集成 4.30. TortoiseSVN的设置 4.30.1. 常规设置 4.30.1.1. 右键菜单配置 4.30.1.2. TSVN对话框设置一 4.30.1.3. TSVN对话框设置二 4.30.1.4. TortoiseSVN 颜色设置 4.30.2. Revision Graph Settings 4.30.2.1. Revision Graph Colors 4.30.3. 图标叠加设置 4.30.3.1. 图标集选择 4.30.4. 网络设置 4.30.5. 外部程序设置 4.30.5.1. 差异查看器 4.30.5.2. 合并工具 4.30.5.3. 差异查看/合并工具的高级设置 4.30.5.4. 统一的差异查看器 4.30.6. 已保存数据的设置 4.30.7. 日志缓存 4.30.7.1. Cached Repositories 4.30.7.2. 日志缓存统计 4.30.8. 客户端钩子脚本 4.30.8.1. Issue Tracker Integration 4.30.9. TortoiseBlame 的设置 4.30.10. 注册表设置 4.30.11. Subversion 的工作文件夹 4.31. 最后步骤 5. SubWCRev 程序 5.1. SubWCRev 命令行 5.2. 关键字替换 5.3. 关键字例子 5.4. COM 接口 A. 常见问题(FAQ) B. 如何实现 … B.1. 一次移动或复制多个文件 B.2. 强制用户写日志 B.2.1. 服务器端的钩子脚本(Hook-script) B.2.2. 工程(Project)属性 B.3. 从版本库里更新选定的文件到本地 B.4. Roll back (Undo) revisions in the repository B.4.1. 使用版本日志对话框 B.4.2. 使用合并对话框 B.4.3. 使用 svndumpfilter B.5. Compare two revisions of a file or folder B.6. 包含一个普通的子项目 B.6.1. 使用 svn:externals B.6.2. 使用嵌套工作副本 B.6.3. 使用相对位置 B.7. 创建到版本库的快捷方式 B.8. 忽略已经版本控制的文件 B.9. 从工作副本删除版本信息 B.10. 删除工作副本 C. Useful Tips For Administrators C.1. 通过组策略部署 TortoiseSVN C.2. 重定向升级检查 C.3. 设置 SVN_ASP_DOT_NET_HACK 环境变量 C.4. 禁用上下文菜单 D. TortoiseSVN 操作 D.1. TortoiseSVN 命令 D.2. TortoiseIDiff 命令 E. 命令行交叉索引 E.1. 约定和基本规则 E.2. TortoiseSVN 命令 E.2.1. 检出 E.2.2. 更新 E.2.3. 更新到版本 E.2.4. 提交 E.2.5. 差异 E.2.6. 显示日志 E.2.7. 检查所作的修改 E.2.8. 版本图 E.2.9. 版本库浏览器 E.2.10. 编辑冲突 E.2.11. 已解决 E.2.12. 改名 E.2.13. 删除 E.2.14. 恢复 E.2.15. 清理 E.2.16. 获得锁 E.2.17. 释放锁 E.2.18. 分支/标记 E.2.19. 切换 E.2.20. 合并 E.2.21. 输出 E.2.22. 重新定位 E.2.23. 在当前位置创建版本库 E.2.24. 添加 E.2.25. 导入 E.2.26. 追溯 E.2.27. 加入忽略列表 E.2.28. 创建补丁 E.2.29. 应用补丁(Apply Patch) F. 实现细节 F.1. 图标重载 G. 用 SSH 使服务器更安全 G.1. 配置 Linux 服务器 G.2. 配置 Windows 服务器 G.3. 用于 TortoiseSVN 的 SSH 客户端工具 G.4. 创建 OpenSSH 证书 G.4.1. 使用 ssh-keygen 创建密钥 G.4.2. 使用 PuTTYgen 创建密钥 G.5. 使用 PuTTY 测试 G.6. 使用 TortoiseSVN 测试 SSH G.7. SSH 配置参数 6. IBugtraqProvider interface 6.1. The IBugtraqProvider interface 6.2. The IBugtraqProvider2 interface
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值