Tortoise SVN 使用介绍

这篇文章源于6月份给公司新人作的关于SVN使用的培训,转眼已经过了几个月的时间,丢了也怪可惜的,于是整理出来希望能够帮助后来人快速入门。


安装说明

开发人员强烈建议使用IDE中的SVN插件更加智能与人性化。

首先安装SVN客户端,windows一般选择乌龟客户端https://tortoisesvn.net/downloads.html
根据系统位数选择相应客户端进行安装。

image_1ak3avt6j1k2p1f6h1cg711lp3pu9.png-57.9kB

如果你喜欢用命令行操作,请务必记得勾选command line client toolwill be install on local hard driver,不用命令行的跳过这一步。

image_1ak3cf587b5a15j21i9s1ne8uhf1g.png-55kB

然后一路next即可安装。安装完毕后,在任意地方右键查看快捷菜单。发现TortoiseSVN即表示安装成功。

image_1ak3cneu9tb6pu8k44rck90k1t.png-135kB

如果勾选了安装命令行工具,那么输入命令SVN,有如下提示也表示安装成功

image_1ak3ctqp61c0a1vku1e30cib9312a.png-9.6kB

但是此时菜单全是英文的,如果你不习惯英文,可以去下载语言包,记得下对系统位数。

image_1ak3b28uv1et21lelqiglpr1krjm.png-46.3kB

安装完语言包之后,可以右键进入setting设置。

image_1ak3d7reg1tdhdqjhfhim319d2n.png-89.7kB

选择你喜欢的语言(比如中文),然后确定,不出意外,现在的语言已经切换到中文了。

image_1ak3dama4kcf1flmr9a8d1hqe34.png-187kB

安装教程到此结束,下面开始介绍SVN的使用。

使用说明

检出项目

假如项目已经在服务器的仓库里,那么现在你要做的就是把它检出到本地。
首先创建一个空文件夹。在空文件夹内右键,选择SVN检出。

image_1ak3do46q18kl1l79c9u4pu1mdd3h.png-21.5kB

现在你看到应该是这个界面,填入版本库地址,选择确定。

image_1ak3dsjn6ha81ojlg2a1b1h67o3u.png-40.8kB

此时会弹出一个对话框让你输入账号密码,输入你的账号密码即可。记得勾选保存认证,不然每次操作都会让你输入。

image_1ak3e0eesor01kg616s81aj11h524b.png-21.5kB

等几分钟就可以检出完毕。

image_1ak3e38931rr19dg1cbd1t8pn3g4o.png-51.4kB

此时在你的目录下就能看到你的项目,现在可以开始愉快的工作了。

image_1ak3e6ja4gnsvep1oaluia2pp55.png-5.3kB

导入项目

但是有时候你已经在本地建立好了项目,需要把你项目推到SVN上,此时应怎么做呢?
右键选择版本库浏览器。

image_1ak3eopb116i6192u14i4c7r1avu6c.png-101kB

在相应目录下,右键,加入文件/加入文件夹,选择相应目录即可。

image_1ak3etni4fba1oi017rv1u6m1gn16p.png-116kB

比如我现在有个项目叫SVNProject,我想把它传到SVN上。

image_1ak3f04bl1k5q1qmrrcmu4m1j2j76.png-50.7kB

那么我只需选择加入文件夹即可。

image_1ak3f5l6f1h8f1rimgee1544sdc7j.png-35kB

务必要输入提交信息。这样别人才能知道你干了什么。

image_1ak3f7oe71gs6mkdlucdrrqq880.png-31.7kB

导入成功就能看到目录。

image_1ak3fbqo13gu1uji53ku5g1bs68d.png-110.6kB

但是,不要以为导入成功就可以了。你还得重新检出,重新检出的项目才是受SVN控制的,务必记得检出。

image_1ak3fghhcg9fk9oab61n5q1sqg8q.png-110.6kB

在SVNProject上右键检出到本地,然后在里面进行修改。现在就可以愉快的工作了。
检出过后的右键菜单变成了这样。

image_1ak3fnbnn1ber1u0k1hbs1ti6ovi97.png-24.4kB

提交

绿色表示当前文件没有被修改过(看不见颜色的重启下电脑就好了)。

image_1ak3g3u171j9j1r40mbp1hkv12ju9.png-4.1kB

假如我现在在我是新项目.txt中加了一行字,然后保存。

image_1ak3g7ct21svq1lrejruu6e16okm.png-6.1kB

发现现在变成了红色,红色表示已修改。

image_1ak3g9vfl1rqc1mvb19s81hg1t3913.png-4.9kB

怎么提交修改?
在根目录下,右键选择提交。

image_1ak3gdc7j17dt1n50d1l8e1trp1g.png-25.2kB

务必记得输入提交信息(虽然不输入也能提交),提交信息可以方便日后查看。

image_1ak3gif5h13l11rfmorm87g5a71t.png-74kB

提交完毕后,可以发现又恢复到了绿色。

image_1ak3gngr3o2amk41abkod91ogi2a.png-5kB

假如现在加入了一个新文件。可以看出是蓝色的。蓝色表示不属于版本库的未知文件,未知文件是不能提交的。

image_1ak3grpb5hgbs62sj4tthfql2n.png-11.6kB

记住选择增加把它加入到版本库里面去。

image_1ak3h1boe1njh1dhrhu1bjr1t333k.png-50.7kB

增加完毕后,变成了蓝色加号,表示新增加的版本库文件。

image_1ak3h5j9j1j4cnfhhq2vv2lba41.png-4.3kB

接下来,只需写代码,然后提交即可。
删除文件也应该右键提交,如下。

image_1ak3hcqrakda18mc5pg1dlke4d4e.png-57.7kB

记得随时检查你的文件状态,如果没有添加到版本控制里要及时添加进去,不然你的文件提交不上去。

更新

假如你和B同学在协作。B同学写完代码提交到了SVN上,如果你想获取最新修改,就需要选择更新(如果服务器上已经有别人提交过的新的,你是提交不上去的,必须先更新再提交)。
怎么知道服务器有没有更新?你可以直接选择更新,有没有更新一下就知道。或者右键检查修改,然后检查版本库,就能看到服务器上改了哪些文件。

image_1ak3i1mon1f871qr9178eds61qoq4r.png-100.3kB

右键选择HEAD和BASE比较。

image_1ak3i7ql4mre1t6e17r717o81nlq58.png-22.9kB

左边的表示你的代码,右边的表示服务器上的代码。

image_1ak3i9ado1p6cv6aoh460210it5l.png-117.7kB

如果有修改记得及时更新到本地然后再继续工作。

但是有时候更新会冲突,比如你和服务器上的改了同一个地方。
这时候你需要更新下来解决冲突。

image_1ak3ihv861ceq1gko16jl1uu3mqe62.png-68.8kB

它会提示你哪个文件冲突,你只需打开那个文件,按照需求解决冲突即可。

image_1ak3ikl7a1c9dmk619r9d371mui6f.png-11.4kB

<<<<<<.mine到====表示你的代码,其他表示服务器的代码。你只需改成你想要的。

image_1ak3iojkm7ic6911jr39021qk46s.png-5.1kB

然后选择解决,告诉SVN我已经解决冲突了就行了。

image_1ak3itj8gt8315rf1flij6k1l1979.png-41.3kB

剩下的就是团队协作间的更新提交操作,这里不做赘述。

查看日志

选择显示日志,可以看出团队里面的人干了什么。

image_1ak3j48bv6r9tnm821u3gpjn7m.png-30kB

可以看出谁谁谁,什么时间,干了什么事。最后那一列信息是自己提交的时候写的。建议大家提交时务必要填写提交信息,这样别人一看就知道你干了什么。提交信息对于自己也是有好处的,时间长了也能看到当初做了什么。

image_1ak3j7va3jbt147j1s2thni1eui83.png-98.6kB

版本回滚

如果你改了东西,但是还没有提交,可以使用还原功能。
image_1ak4pcd3bpac328t5u1mas1k1v9.png-103kB
但是如果我们写错了东西并且提交了上去怎么办?通过版本回滚可以将文件恢复到
以前的版本。右键更新至版本,通过查看日志来选择版本,然后回滚即可。
image_1ak3k9pl5nt0euj10eob6e1pai8t.png-21.1kB

有时候我们需要查看以前版本的代码。此时我们可以新建个文件夹检出到指定版本。

image_1ak3kifgr1b1q1fv0p871f25jda9a.png-158.9kB

版本控制

版本控制有好几种方法,如下。

  1. 在提交发布版本时添加版本信息,这是最简单的一种方法。
    image_1ak3locvo1ndq4pg1nohuhn1fh89n.png-17.1kB

  2. 打标签
    每次发布版本时应该打标签。右键选择分支/标记。在至路径以版本号打上标签即可
    image_1ak3muiav1t0o9v21a5qfnt3ut9.png-28.3kB
    image_1ak4tm0e3aal1t71r94p941h9p2a.png-80kB
    这样你就有了一个v1.0版本的标签。
    以后如果你想查看某个版本的代码,只需切换过去就行
    image_1ak3n7ai51l6b77j10811plc12ba13.png-14.9kB

总结

我们在日常使用中,最常用的是更新和提交操作。这两个步骤务必要非常熟练。其他的可以在遇到问题是查看文档。此外,需要注意的是,所有版本控制工具只能跟踪文本文件(能用记事本打开查看的文件),不要妄想SVN能记录你word改了哪一行。一旦遇到word冲突,记住仔细对比两个版本,然后解决冲突。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
针对打不开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、付费专栏及课程。

余额充值