首先看官网得介绍:
TortoiseSVN 是一个 Windows 下的版本控制系统 Apache™ Subversion® 的客户端工具。就是 说,TortoiseSVN 常年管理文件和目录。文件存储于一个中央版本库中。版本库就像一个常见的文件服 务器,除了它保存你对文件和目录所有的改变。这一特性使得你可以恢复文件的旧版本并查看历史-谁在什么时间如何进行的修改。这就是为什么很多人认为 Subversion 和版本控制系统是一种“时间机器”。 某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树, 并且具备许多与软件开发有关的特性 - 比如,对编程语言的支持,或者提供程序构建工具。不过 Subversion 并不是这样的系统;它是一个通用系统,可以管理任何类型的文件集,包括源代码。
理解:
跟多人会把它跟git类比,实际上他们都是代码仓库,TortoiseSVN是一种中心化的版本管理中心,它的代码都由中央的主机管理,开发者每次从中央主机获取最新的代码,开发完成后提交到系统中,完成一次开发。本次使用也是针对开发者,不包括中央代码的创建和管理。
TortoiseSVN安装方法十分简单不在本文章中说明。
安装完成后,右键任意一个文件夹就会看到右键菜单中有下面的内容,上面是SVN检出,也就是把服务端的代码下载到本地,这个图标只会在你第一次右键的时候显示。下面的是SVN的主要功能,在接下来的内容中将会详细介绍。
下面我们就开始初始化第一个项目了。我们需要三个内容
①安装好的SVN
②SVN仓库的地址(这个去找项目的管理员要)
③SVN登录的账户和密码(这个需要找仓库管理员分配)
然后创建一个空白文件夹,右键这个文件夹,点击SVN Cheacout,之后会弹出下面的窗口,很明显看到这个窗口有三部分,最上面是仓库,之后是检出深度,第三个是历史版本。在仓库设置中,我们填写部门给提供的SVN链接,然后下面的文件夹是自己所右键的文件夹目录,如果想要图简单,现在就可以点击OK了。
如果要考虑细节,可以点击Choose items查看目录内容,选择自己想要的内容,例如如果这里自己只想要代码不想要data中的数据,那么data可以不勾。
在下面是历史版本,一般情况我们会使用最新的,如果有需要自己再研究吧,之后点击确定,SVN就会提示你输入账户和密码,输入正确就就可以把仓库代码更新到本地了。
按正常来说,刚检出的图标应该是下面第一个的样式,也就是一个绿色的对勾,当你进行操作之后,图标会发生变化,例如如果修改了一个文件,它的图标就会变成红色叹号,提示你已经做出了修改。
下面对常用的图标做一个介绍:
normal: 一个新检出的工作副本使用绿色的对勾做重载。表示 Subversion 状态正常.
modified:在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可 以很容易地看出哪些文件从你上次更新工作副本后被修改过,需要被提交。
conficted:如果在更新的过程中出现了冲突,图标会变成黄色感叹号。
readonly:如果你给一个文件设置了svn:needs-lock属性,Subversion 会让此文件只读,直到你获得文件锁。具 有这个重载图标的文件来表示你必须在编辑之前先得到锁。
locked:如果你拥有了一个文件的锁,并且 Subversion 状态是正常,这个重载图标就提醒你如果不使用该文件 的话应该释放锁,允许别人提交对该文件的修改。
deleted:这个图标表示当前文件夹下的某些文件或文件夹已经被调度从版本控制中删除,或是该文件夹下某个受 版本控制的文件丢失了。
added:加号告诉你有一个文件或目录已经被调度加入版本控制。
ignored:横条告诉你有一个文件或目录被版本控制系统所忽略。这个图标重载是可选的。
non-versio:这个图标说明文件和目录未被版本控制,但是也没有被忽略。这个图标重载是可选的。
TortoiseSVN右键菜单功能太详细了,看下面的图就会知道(如果右键时按住shift会发现更多菜单项),它大概分为下面几个部分,左侧:更新,提交;右侧:日志、目录操作、代码文件操作、分支、添加和忽略、补丁、设定和帮助。
左侧之所以在左侧,就是因为太常用了,每次开发之前,我们需要先点一下左侧的updata,这样就会让自己的目录跟服务端保持一致,后续开发也就更方便。
自己写完了代码,下班之前可以点一下commit,把自己一天的工作成果保存上去,也为了同事更好的下载最新的代码。
我们会发现右侧有很多是和Window文件管理器是一样的内容,但是在这,使用Window文件管理器的重命名、删除、复制等等就不太合适了,最好是用TortoiseSVN菜单中的内容,这样SVN才会知道你做出了哪些修改。
除此之外他还多了很多功能,下面做一下简单的介绍:
Import(导入):选择要提交到服务器的目录,右键选择TortoiseSVN----Import,系统弹出导入提示框,在URL of repository输入框中输入服务器仓库地址,在Import Message输入框中输入导入日志信息,点击确定,则文件导入到服务器仓库中。
Add(加入):如果有多个文件及文件夹要提交到服务器,我们可以先把这些要提交的文件加入到提交列表中,要执行提交操作,一次性把所有文件提交,如图,可以选择要提交的文件,然后点击执行提交(SVN Commit),即可把所有文件一次性提交到服务器上
Check for Modifications(检查更新):点击Check for Modifications,系统列表所以待更新的文件及文件夹的状态.
Revision Graph(版本分支图) :查看文件的分支,版本结构,可以点击Revision Graph,系统以图形化形式显示版本分支.
Rename(改名) :SVN支持文件改名,点击Rename,弹出文件名称输入框,输入新的文件名称,点击确定,再把修改提交,即可完成文件改名
Delete(删除) :SVN支持文件删除,而且操作简单,方便,选择要删除的文件,点击Delete,再把删除操作提交到服务器
Moving(移动):选择待移动的文件和文件夹;按住右键拖动right-drag文件(夹)到跟踪拷贝内的新地方;松开左键;在弹出菜单中选择move files in Subversion to here
Revert(还原) :还原操作,如刚才对文件做了删除操作,现在把它还原回来,点击删除后,再点击提交,会出现如上的提示框,点击删除后,再点击Revert,即已撤销删除操作,如果这时候点击提交, 则系统弹出提示框:没有文件被修改或增加,不能提交
Branch/Tag(分支/标记) :当需要创建分支,点击Branch/Tag,在弹出的提示框中,输入分支文件名,输入日志信息,点击确定,分支创建成功,然后可查看文件的版本分支情况
Switch(切换) :文件创建分支后,你可以选择在主干工作,还是在分支工作,这时候你可以通过Switch来切换。
Merge(合并) :主干和分支的版本进行合并,在源和目的各输入文件的路径,版本号,点击确定。系统即对文件进行合并,如果存在冲突,请参考冲突解决。
Export(导出) :把整个工作拷贝导出到本地目录下,导出的文件将不带svn文件标志,文件及文件夹没有绿色的”√”符号标志。
Relocate(重新定位) :当服务器上的文件库目录已经改变,我们可以把工作拷贝重新定位,在To URL输入框中输入新的地址
Add to Ignore List(添加到忽略列表) :大多数项目会有一些文件(夹)不需要版本控制,如编译产生的*.obj, *.lst,等。每次送交,TortoiseSVN提示那些文件不需要控制,挺烦的。这时候可以把这些文件加入忽略列表。