相关文章推荐
八块腹肌的匕首  ·  Nginx报错403 ...·  7 月前    · 
空虚的领带  ·  元素定位之css ...·  11 月前    · 

前段时间有小伙伴们问我关于SVN恢复历史版本及解决冲突的问题,今天抽空就整理了一下,以为在此以前,有的小伙伴解决冲突使用的方法是:先把自己写的代码备份或删掉,更新SVN服务器上的最新代码,再把自己的代码复制上去,提交。这种方法虽然很笨,也不是不可行,但是如果改的代码特别多的话,这种方法不是在浪费时间吗!

一、恢复历史版本

①查看历史版本内容

[1]首先需要把对应版本库的匿名访问权限设置为none:anon-access = none

[2]在要查看历史版本的文件上点右键→TortoiseSVN→Show log

[3]在感兴趣的历史版本上点右键,可以与当前工作副本进行比较,或直接打开。

②在要回复历史版本的文件上点右键→Update to revision

填上想要回到的版本即可

二、解决冲突

①文件发生冲突时的状态和在Eclipse中一样,这里就不赘述了。

②在冲突的文件上点右键→Edit Conflicts

③有“叹号”的行是发生冲突的行

④在冲突行点右键

可以选择四种操作:

[1]使用我的

[2]使用他们的

[3]把我的放在他们的前面

[4]把他们的放在我的前面

⑤在冲突解决后,直接保存——这时TortoiseSVN自动弹出如下确认界面

⑥文件变为红色叹号标志,自动生成的三个文件被删除。提交修改即可。

既然来了,点个“在看”呗

转换后为网页格式的< SVN 操作手册中文版> 目录 译者序 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书组织结构 Subversion 1.1的新特性, svn 客户端和linux下命令行。 1. 简介 1.1. 什么是 Tortoise SVN ? 1.2. Tortoise SVN 历史 1.3. Tortoise SVN 的特性 1.4. 安装 Tortoise SVN 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. 使用 Tortoise SVN 创建 版本 库 3.1.3. 本地访问 版本 库 3.1.4. 访问网络共享磁盘上的 版本 库 3.1.5. 版本 库布局 3.2. 版本 库备份 3.3. 服务器端钩子脚本 3.4. 检出链接 3.5. Accessing the Repository 3.6. 基于 svn serve 的服务器 3.6.1. 简介 3.6.2. 安装 svn serve 3.6.3. 运行 svn serve 3.6.3.1. 以服务形式运行 svn serve 3.6.4. svn serve 与基本认证 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. svn serve 基于路径的授权 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 资源管理器中的 Tortoise SVN 列 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. Tortoise SVN 项目属性 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. Tortoise SVN 的设置 4.30.1. 常规设置 4.30.1.1. 右键菜单配置 4.30.1.2. T SVN 对话框设置一 4.30.1.3. T SVN 对话框设置二 4.30.1.4. Tortoise SVN 颜色设置 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. 使用 svn dumpfilter 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. 通过组策略部署 Tortoise SVN C.2. 重定向升级检查 C.3. 设置 SVN _ASP_DOT_NET_HACK 环境变量 C.4. 禁用上下文菜单 D. Tortoise SVN 操作 D.1. Tortoise SVN 命令 D.2. TortoiseIDiff 命令 E. 命令行交叉索引 E.1. 约定和基本规则 E.2. Tortoise SVN 命令 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. 用于 Tortoise SVN 的 SSH 客户端工具 G.4. 创建 OpenSSH 证书 G.4.1. 使用 ssh-keygen 创建密钥 G.4.2. 使用 PuTTYgen 创建密钥 G.5. 使用 PuTTY 测试 G.6. 使用 Tortoise SVN 测试 SSH G.7. SSH 配置参数 6. IBugtraqProvider interface 6.1. The IBugtraqProvider interface 6.2. The IBugtraqProvider2 interface
1.在本地的 svn 项目文件,右键----Toitoise SVN ----显示日志(Showlog) 2.选中某个 版本 ,右键---- 恢复 到此 版本 ,本地的文件夹就会 恢复 到这个 版本 的了。 3.本地更新到 SVN 。 如果还是不行可以点击 记得一定备份
版本 冲突 原因: 假设A、B两个用户都在 版本 号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns.txt文件的 版本 号已经变成101了。同时B用户在 版本 号为100的kingtuns.txt文件上作修改,修改完成之后提交到服务器时,由于不是在当前最新的101 版本 上作的修改,所以导致提交失败。 版本 冲突 现象: 冲突 发生时,subversion会在当前工作目录中保存所有的目标文件 版本 [上次更新 版本 、当前获取的 版本
由于某些特殊原因,我们可能需要将 SVN 资源库中的某个文件回滚到以前的某个 历史 版本 (准确地说,这不是"回滚","回滚"操作会导致指定 版本 到当前 版本 的变更记录丢失,我们这里只是将当前文件内容还原 恢复 为以前的某个 版本 )。 右键点击指定的文件,在弹出的关联菜单中点击【Team】->【Show In History】。 如下图所示,此时会显示当前文件的所有 历史 版本 列表,右键点击指定的 版本 ,在弹出的关联菜
1.在 SVN 的工作目录中,先检查当前的 版本 号,可以使用命令“ svn info”。 2.然后通过“ svn update -r version”,将 SVN 恢复 到上一个 版本 。其中,“version”表示要回退到的 版本 号。 3.出现“Updated to revision version”表明 恢复 成功,可以使用“ svn info”命令再次检查 版本 号是否已经被 恢复 到上一个 版本 。 需要注意的是, 恢复 操作会导致工作目录的文件 版本 与上一个 版本 一致,如果有未提交的更改, 恢复 后这些更改将被覆盖。因此,在进行 恢复 操作之前,最好先将未提交的更改备份一下,以免误操作导致数据丢失。 ### 回答2: 要将 SVN 回退到前一个 版本 ,可以采取以下步骤: 1.打开终端或命令行窗口,切换到您的 SVN 仓库所在的目录。 2.输入以下命令来查看仓库的日志: svn log 3.查找您要 恢复 到的前一个 版本 ,并记下该 版本 的 revision 号码。通常它位于提交日期最近的 版本 的上方。 4.输入以下命令,将您的工作副本回退到指定的 revision 号: svn update -r revision_number 例如,如果您要回退到 revision 1234,则输入以下命令: svn update -r 1234 5.完成后,您的 SVN 工作副本将从最新的 版本 回到指定的 版本 。 请注意,回退操作将会撤销您在最新 版本 中所做的所有更改,因此请确保在执行此操作之前已保存您想要保留的所有更改。此外,如果您使用 SVN 客户端的图形用户界面,通常可以在“ 历史 记录”视图中找到要 恢复 到的特定 版本 ,并通过单击“还原”按钮来完成此操作。 ### 回答3: SVN (Subversion)是一种 版本 控制系统,可以记录文件和目录的更改 历史 。如果由于某些原因我们需要将代码 恢复 到上一个 版本 ,可以按照以下步骤进行操作: 1. 首先打开 SVN 客户端软件,如Tortoise SVN 或者Smart SVN 。 2. 在本地文件夹中,右键单击要 恢复 的文件或目录,选择“ SVN 更新”菜单。 3. 在弹出的对话框中,选择要 恢复 版本 ,可以是上一个 版本 或者任意一个 历史 版本 ,然后单击“确定”按钮。 4. SVN 客户端将把文件 恢复 为选择的 版本 ,并将其提交到服务器上。 5. 如果在 恢复 前未备份当前 版本 的代码,可以在 恢复 后通过查看 历史 版本 来查看之前的更改,但是无法回到更改前的原始 版本 。 总之, SVN 可以非常方便地 恢复 到之前的 版本 ,以确保代码的稳定性。但也要注意备份当前 版本 的代码,以便在需要时可以 恢复 到原始 版本 。同时,我们应该尽可能避免用 SVN 回退代码,因为这可能会导致不必要的代码丢失和文件 冲突