1)导入数据到版本库

第一种情况,使用Import导入命令的时候

不能选择包含哪些指定文件或目录, 导入的文件夹不能变成工作副本,(如果你在“工作副本”目录下执行导入命令是不起作用的。)必须通过签出操作从服务器拿回工作副本。 很容易把错误的文件夹层次导入到版本库。

现在进入资源管理器,选择你的项目的顶层目录,右击打开上下文菜单。选择命令TortoiseSVN → 导入 ...,它会弹出一个对话框:

在这个对话框中,需要输入版本库所在的 URL,你的项目将会导入到这里。非常重要的事项,你必须了解: 你要导入的本地文件夹自身不会出现在版本库中,版本库中只有文件夹中的内容。例如,你有这样的文件夹结构:
C:\Projects\Widget\source
C:\Projects\Widget\doc
C:\Projects\Widget\images
你将 C:\Projects\Widget 导入到 http://mydomain.com/svn/trunk,然后你会惊奇的发现:
你的子目录径直地进入 trunk 中,而不是在 Widget 子目录中。你需要将子目录作为
URL 的一部分明确的指出来,http://mydomain.com/svn/trunk/Widget-X。注意,如果版本库中不存在指定的子目录,导入命令将会自动创建它们。这个问题困惑了我好一阵。

默认情况下,匹配全局忽略模式的文件和文件夹不会被导入。你可以使用包含忽略文件检验栏来禁止此行为。请注意,你导入的文件夹没有被版本控制!你需要检出刚才导入的版本,以便获得受版本控制的工作副本

第二种情况,已经有了版本库,想增加一个新的目录结构

可以使用版本库浏览器,在版本库里新添加一个项目文件夹,如果已经使用了标准的布局, 就在trunk目录下建立你的子目录,而不是在根目录下创建,这样组织目录就方便很多。

将刚才浏览器里新建的项目目录签出覆盖到你想嵌入的本地目录,如果你得到本地目录非空的警告,可以忽略它。这样就得到一个版本受控的顶级目录,下面是非版本控制的内容。

在此受版本控制的文件夹上使用TortoiseSVN → 增加...增加部分或全部内容。你可以增加或删除文件,在文件夹上设置svn:ignore属性,或者你需要的其它修改。

提交顶级目录,这样就产生了一个新的版本树,得到一份从你已有目录创建的本地工作副本。

2) 专用文件

有时候你需要版本控制一个包含用户专用的数据。它意味着你有一个文件,每个开发者/用户都需要修改,一边满足他/她的本地配置。但是版本控制这样的文件是困难的,因为每个用户可能都要提交他/她的修改。(我想Web.Config和App.Config就属于这样的文件)

在这种情况下,我们建议使用模版文件。创建一个包含所有开发者需要的数据的文件,增加到版本库中,让开发者检出。然后,每个开发者创建一个副本,改名此文件。于是,修改这个文件不再是问题。

作为例子,你可以看看TortoiseSVN的构建脚本。它调用一个TortoiseVars.bat文件,它并不在版本库中。 只有TortoiseVars.tmpl在版本库中。TortoiseVars.tmpl是一个模版文件,每个开发者都需要创建一个副本,改名为TortoiseVars.bat。在这个文件中,我们增加了注释,所以用户知道他们需要编辑那些行,以便适应他们的本地配置,使其能工作。于是为了不干扰用户,我们也将TortoiseVars.bat增加到它的父目录的忽略列表,也就是,我们设置了Subversion属性svn:ignore包含这个文件名称。这样,每次提交时它都不会作为没有版本控制的文件出现。

3)Revision Graph

在版本浏览器点击右键菜单,选择Revision Graph,可以看到版本的历史图。

5)只想检出一个大文件树的某部分

当你想要检出一个很大的文件树的某些部分而且只更新某几个文件夹的工作副本时,

假设有一个很大的文件树,其中包含 99 个子文件夹从 Project01 到 Project99,你只想检出Project03,Project25。按下列步骤操作:
1. 检出父文件夹时检出深度使用“仅此项”。现在,你获得一个空的顶级文件夹。
2. 选中新文件夹,使用 TortoiseSVN → 版本库浏览器 来显示版本库的内容。
3. 右键单击 Project03 然后选择右键菜单 → 更新项目至版本...。保持默认设置并单击 确定。现在这个文件夹就位于你的工作副本中了。为 Project25 重复相同的操作。

改变工作副本深度
一旦以某个深度检出了工作副本后,以后还可以修改这个深度来获得更多或更少的内容,使用 右键菜单 → 更新该项至版本。在弹出的对话框中,确认选中了 粘滞深度 复选框。

6)提交修改到版本库

将你对工作副本的修改发送给版本库,称为提交修改。但在你提交之前要确保你的工作副本是最新的。你可以直接使用TortoiseSVN → 更新,或者,你可以先使用TortoiseSVN → 检查修改看看哪些文件在本地或是服务器上已经有了改动。

提交文件和提交文件夹的区别,当你提交文件时,提交对话框只显示你所提中的文件。当你提交文件夹中,提交对话框将自动选择有改动的文件。如果你忘记了你建立的一个新文件,提交文件夹将使你可以找到它。提交一个文件夹并不意味着每个文件都被标识为修改过的。

在提交对话框中双击任何修改过的文件,将运行外部 diff 工具显示你做的改动。上下文菜单将给你更多的选项,请看屏幕截图。你可以从这里将文件拖动到另一个应用程序中,如文本编辑器或 IDE。

缺省情况下,当你成功提交修改后,你在这些文件上持有的锁会被自动释放。如果你需要保留锁,请确认选中检查框保留锁。此检查框的缺省状态从 Subversion 配置文件的 no_unlock 选项获取。

拖放。你可以将文件从别的地方拖动到提交对话框,只要工作副本是由同一版本库中检出就可以了。比如,你有一个很大的工作副本,要开好几个资源管理器窗口来查看层次中不同的文件夹。如果你要避免从顶级文件夹提交(冗长而缓慢的文件夹改动检查),你可以打开一个文件夹的提交对话框,然后将别的窗口中的项拖进去,可样就可以一次提交它们了。

你可以将未版本控制的文件拖到工作副本提交对话框中,它们就会被自动增加。

从提交对话框底部的列表中将文件拖拽到日志消息编辑框中,就能以文本格式将文件的路径插入编辑框中。当你想将本次提交相关的文件路径插入日志消息中时该功能非常有用。

有时候文件不是用 Subversion 改名,于是它们在文件列表中作为丢失和未版本控制的文件出现。为了避免丢失历史,你需要通知Subversion。简单的选择老名称(丢失)和新名称(未版本控制),然后使用右键菜单 → 修复移动来指明这两个文件是改名关系。

7)用来自别人的修改更新你的工作副本

你需要定期地确保将别人所做的修改整合到你本地的工作副本中。从服务器获取更改到本地副本的过程就叫做 更新。更新的对象可以是一个文件,选中的多个文件或者对整个目录结构进行递归。要进行更新,选中要更新的文件或目录,右键单击然后选中右键菜单中的 TortoiseSVN → 更新。将会弹出一个
窗口,随着更新的进行显示进度。其他人所做的更改将会合并到你的文件中,并保留同一个文件中你所做的更改。版本库 不会 受更新影响。

进度对话框使用颜色代码来高亮不同的更新行为
紫色
新项已经增加到你的工作副本中。
深红
你的工作副本中删除了多余项,或是你的工作副本中丢失的项被替换。
绿色
版本库中的修改与你的本地修改成功合并。
亮红
来自版本库的修改在与本地修改合并时出现了冲突,需要你解决。
黑色
你的工作副本中的没有改动的项被来自版本库中新版本所更新。
这是默认的配色方案,但你可以通过设置对话框来定制这些颜色。

如果在更新过程中发生了 冲突 (有可能是因为你和他人修改了同一个文件的同一行并且这些更改不匹配)那么对话框会用红色显示冲突。可以通过 双击 那些行来启动外部合并工具解决冲突。等更新结束后,对话框会在文件列表的底部显示一段总结,包括已更新、已添加、已删除、冲突等情况的条目数量。可以使用 Ctrl+C 将这段信息复制到剪贴板。

冲突解决请看第二部分 使用TortoiseSVN碰到的几个问题(2)-冲突解决

使用TortoiseSVN碰到的几个问题(1)-导入,提交,更新的更多相关文章

  1. 使用TortoiseSVN碰到的几个问题(2)-冲突解决, 图标重载

    8)解决冲突 冲突分为两种:文件冲突---当两名(或更多)开发人员修改了同一个文件中相邻或相同的行时就会发生文件冲突.下面的属性冲突应该也属于文件冲突. 树冲突---当一名开发人员移动.重命名.删除一 ...

  2. TortoiseSVN 执行清理( cleanUp )失败的解决方案

    TortoiseSVN 执行清理( cleanUp )失败的解决方案 今天碰到了一个比较棘手的问题,在这里做一下记录,以方便自己和有需要的朋友在之后碰到该类问题时有个参考. 现象 更新SVN时弹出清理 ...

  3. (转)TortoiseSVN与VisualSVN Server搭建SVN版本控制系统

    本片主要介绍如何搭建SVN版本控制系统,主要使用工具: 1 客户端:TortoiseSVN (小乌龟) 2 服务端:VisualSVN Server 搭建出图形化管理,以及右键菜单版本控制管理的SVN ...

  4. TortoiseSVN与VisualSVN Server搭建SVN版本控制系统

    本片主要介绍如何搭建SVN版本控制系统,主要使用工具: 1 客户端:TortoiseSVN (小乌龟) 2 服务端:VisualSVN Server 搭建出图形化管理,以及右键菜单版本控制管理的SVN ...

  5. 客户端TortoiseSVN的安装及使用方法

    一.客户端TortoiseSVN的安装 运行TortoiseSVN程序,点击Next,下面的截图顺序即为安装步骤: 图1: 图2: 图3: 图4: 点击Finish按钮后会提示重启系统,其实不重启也没 ...

  6. VisualSVN Server以及TortoiseSVN客户端的配置和使用方法

    http://www.cnblogs.com/beautifulFuture/archive/2014/07/01/3818211.html 近期学习代码管理工具,首先学习一下svn和Tortoise ...

  7. TortoiseSVN 同步分支

    对比工具可以使用 winmerge 和 beyond compare ,winmerge免费小巧,beyond compare功能更强大.这两款工具都比TortoiseSVN自带的对比工具要好一些. ...

  8. SVN与TortoiseSVN实战:属性的奇技淫巧(二)

    硬广:<SVN与TortoiseSVN实战>系列已经写了七篇,本系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解. 关于属性的奇技淫巧较多,分为两篇来写,第一篇详见< ...

  9. TortoiseSVN 更新时忽略指定文件夹

    命令行可以这么来svn update –set-depth=exclude 文件夹 那么TortoiseSVN客户端呢?在文件夹右键中的”更新至版本(U)”更新深度选”排除”,确定,搞定下次更新就不会 ...

随机推荐

  1. jQuery练习:表单模态框

    代码:基于事件冒泡原理和事件委托 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta cha ...

  2. 第八节:pandas字符串

    Pandas提供了一组字符串函数,可以方便地对字符串数据进行操作.

  3. Thesis Viva checklist

    This list gives you suggestions helpful in preparing to defend your thesis: I know my thesis thoroug ...

  4. Huawei-R&S-网络工程师实验笔记20190530-FTP上传下载、STelnet登录、SFTP登录

    >Huawei-R&S-网络工程师实验笔记20190530-FTP上传下载.STelnet登录.SFTP登录 >>实验开始,参考<Huawei-R&S-网络工程 ...

  5. jquery 插件封装模板

    //插件编写模板 ;(function ($) { $.fn.plugIn = function ( opt ) { var def = { //这里填写自定义的参数例如: event : 'clic ...

  6. GeoTrust 企业(OV)型 增强版(EV) 多域名(SAN/UC) SSL证书

    GeoTrust 企业(OV)型 增强版(EV) 多域名(SAN/UC)SSL证书(GeoTrust True BusinessID With EV Multi-Domain(SAN/UC) SSL ...

  7. Maven学习总结(4)——Maven核心概念

    Maven学习总结(四)--Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1.2.Maven坐标主要组成 groupId:组织标识 ...

  8. noip模拟赛 公交车

    题目描述LYK在玩一个游戏.有k群小怪兽想乘坐公交车.第i群小怪兽想从xi出发乘坐公交车到yi.但公交车的容量只有M,而且这辆公交车只会从1号点行驶到n号点.LYK想让小怪兽们尽可能的到达自己想去的地 ...

  9. ZOJ - 2243 - Binary Search Heap Construction

    先上题目: Binary Search Heap Construction Time Limit: 5 Seconds      Memory Limit: 32768 KB Read the sta ...

  10. ZooKeeper常用命令行工具及使用(转)

    一.服务端 bin目录下常用的脚本解释 zkCleanup:清理Zookeeper历史数据,包括食物日志文件和快照数据文件 zkCli:Zookeeper的一个简易客户端 zkEnv:设置Zookee ...