TortoiseSVN客户端常用命令Word格式文档下载.docx
《TortoiseSVN客户端常用命令Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《TortoiseSVN客户端常用命令Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
2、update
获取版本库中最新版本,具体的方法是:
在WC目录上单击右键,SVNUpdate。
这时WC中的文件就是最新的版本了。
3、commit
commit功能就是将你本地的文件修改记录上传到服务器上面,可以理解为上传。
只会上传原先checkout然后又被修改了的文件,假如你新加入了某些文件,需要右键点击文件选择Add,然后文件上面会出现一个加号,在下次commit的时候才能选到该文件。
commit页面:
注意:
commit的时候,最好填写Log信息,
Log内容包括:
修改了哪些东西及为什么做这些修改(what+why)
强制必须录入log:
property中设置录入log最小长度,此时commit必须录入log,否则不允许提交.
设置录入log最小长度页面:
4、add
将要添加的文件或者目录拷贝到WC下,
然后在该文件或目录上单击右键,TortoiseSVN->
Add,点OK。
如果添加了不止一个文件或目录,
则鼠标不要在WC中点中任何文件,
然后单击右键,TortoiseSVN->
Add,
就可以添加多个文件或目录。
这时文件的状态图标会发生如下变化:
Add命令只是告诉本地的WC将该文件纳入版本管理,
并没有将这个改变提交到服务器端,
在F:
\Project1下单击右键,SVNCommit...,
将你所做的修改提交到Repository。
5、modify
用文本编辑器或IDE对文件修改后,
文件的状态图标会变化,
然后单击右键,SVNCommit...即可提交修改。
6、revert
(1)、放弃未提交的修改,
单击右键,TortoiseSVN->
Revert,
本地的WC中的文件和目录会恢复到修改前的状态。
(2)、回复到之前某个revision状态:
a、在本地WC中单击右键,TortoiseSVN->
UpdatetoRevision...,
然后输入你想要回复到的Revision号
点OK按钮。
此时仅仅是WC中回复到特定版本,对Repository没有任何影响。
b、把Repository回复到某个revision状态方法:
方法一:
先执行Update命令将WorkingCopy更新到最新的Revision,
然后在WorkingCopy中单击右键,
TortoiseSVN->
ShowLog,
弹出的LogMessages窗口中会显示该Repository的所有Revision,
选中最新的Revision,之后按住Shift键,
再单击你想回复到的Revision+1的那个Revision
(比如Repository的最新Revision是79,
你想将Repository的状态回复到Revision60,
那么就选中Revision70,再按住Shift键,
选中Revision61,
就是说选中Revision61到Revision79之间的所有Revision)。
然后在选中的Revision上单击右键,
选中“Revertchangesfromtheserevision”。
再点Yes按钮,就可以将WC的状态回复到目标Revision60。
注意:
此时只是WC回复到目标Revision,之后应该用Commit提交修改,
这样Repository最新状态就与WC的状态一致,都为Revision60。
方法二:
采取大版本号向小版本号merge的方式,进行回滚
保证我们拿到的是最新代码,TortoiseSVN右键merge,如果我们最新版本为79,要回滚到60,如下图,“From”的URL和“to”的URL均了录入要回复的文件在版本库的存放地址
点“merge”,然后commit即可。
7、delete
删除文件时,选中要删除的文件或目录,
Delete
然后提交修改。
注意千万不要用windows自己的“删除”或者“Delete”键来删除文件,否则将无法提交你的修改。
这一点对目录的删除来说尤为重要。
因为每个目录里有个.svn隐藏目录,存放目录下文件的信息,使用操作系统命令delete/move时,.svn还指向原来的位置,所作操作不受SVN控制。
8、move
移动方法:
(1)、选择你要移动的文件或目录
(2)、拖拽(right-drag)他们到新的工作副本下,
(3)、松开鼠标右键
(4)、在弹出菜单选择上下文菜单→SVN移动文件。
原理同上。
9、Branche/Tag
操作方法:
创建分支非常简单,只需在需要创建分支的工作目录上,使用TortoiseSVN→Branch/Tag命令,在"
ToURL"
项指定待创建的分支url即可
实现本质:
subversion对分支和标签是通过复制一份最新的版本库的快照来实现的。
一般情况下,tag,是用来做一个milestone的,不管是不是release,都是一个可用的版本。
这里应该是只读的,更多的是一个显示用的,给人一个可读(readable)的标记;
branch,是用来做并行开发的,这里的并行是指和trunk进行比较。
分支与标签的区别:
在实现上,branch和tag,对于svn都是使用copy实现的,所以他们在默认的权限上和一般的目录没有区别。
至于何时用tag,何时用branch,完全由人主观的根据规范和需要来选择,而不是强制的(比如cvs),一个不去做任何的修改的分支就是版本库某一时刻的一个快照,相当于为某一个版本做了一个标签
Branch和Tag都是拷贝指向原始文件的链接,当你对拷贝做修改时,记录为相对原始文件的修改,称为延迟拷贝,效率高且几乎不占用空间。
Tag:
版本号是个好东西,但是我们更倾向于记住像第二预览发布版这样的名字,而不是V01这样的数字,标签是用来做这件事情的。
版本控制系统可以让你给某一个时刻的一组文件或者一些目录或者整个项目分配一个名字。
如果你个某几个文件分配标签“第二发布预览版”,以后就能使用这个标签签出它们。
标签是一种很好地跟中项目代码开发过程中发生的重要事件的方式。
分支合并:
使用TortoiseSVN→Merge命令,在“From:
(startURLandrevisionoftherangetomerge)”中选择希望合并的目录(如:
trunk),并指定希望合并的开始revision编号,在“To:
(endURLandrevisionoftherangetomerge)”中选择结束revision编号。
然后点击“merge”完成合并操作,剩下的工作就是编辑冲突了。
当然运气好的话是不需要这个过程滴。
值得注意的是,“From:
”和“To:
”中的URL通常是相同的,切记不要与创建分支时的含义混淆
10、getlock/releaselock
选择工作副本中你想要获取锁定的文件,然后选择命令TortoiseSVN--->
Getlock…
出现一个对话框,允许你输入注释,这样别人知道你为什么锁定这个文件。
注释是可选的,
并且只用于基于Subversion的库。
选择需要锁定的文件在复选框打勾,点击“确定”按钮
锁定选择的文件:
出现一个对话框,输入正确的用户名和密码即可向版本库提交你想锁定文件的信息。
锁定文件成功!
返回信息!
”Lockedbyadmin”表示文件已被admin用户锁
定;
”alpay_payto.php”表示锁定文件的名称。
点击”OK”按钮确定锁定文件成功。
释放锁定(取消锁定)
选择工作副本中你想要取消锁定的文件,然后选择命令TortoiseSVN--->
Releaselock…
之后操作同getlock。
当被锁定文件commit后,会自动解锁,无需再去解锁;
如果commit后还需上锁,则在commit时可选择:
“keeplock”
强制锁定:
设置对象文件svn:
needs-lock这个属性,update后强制文件的属性为只读,只有lock之后,才能对文件进行修改操作,commit-releaselock之后,又自动变成只读。
具体做法:
先将a.jpg文件拷贝到WC中,然后在该文件上单击右键,
Add,告诉Subversion要将该文件纳入版本控制,
接着在该文件上单击右键并选中属性,
在弹出的属性对话框中选中Subversion页。
在下拉框中选中“svn:
needs-lock”,
并在下面的文本框中填入“*”
(其实这里填什么都无所谓,只要文件有“svn:
needs-lock”附加属性就行),
之后点Set按钮,“svn:
needs-lock”附加属性就设置好了。
然后执行Commit命令提交修改。
这时当其他人执行Update时,
a.jpg就会添加到他们的WC中,
并且文件的附加属性也会随文件一起被得到。
可以看到a.jpg此时的图标就是灰色的,
文件的Windows属性也是只读的
11、cleanup
SVN本地更新时,由于一些操作中断更新,如磁盘空间不够,用户取消,
可能会造成本地文件被锁定的情况。
一般出现这种情况的解决方法:
(1)、可以使用SVNcleanup来清除锁定。
(2)、如果不是本目录锁定,系统提示上一层目录锁定,需要到上一层或者根目录中清除。
(3).如果在根目录下都无法clean的话,一般采取的方法是另外找一个目录重新checkout。
但有时SVN目录下可能有一些自己本地修改的文件,还未提交到SVN服务器,这时重新checkout需要注意本地文件的备份,并且不要强制覆盖服务器上其它人修改的内容。
(4)、如果觉得第3种很麻烦,可以考虑这样的方法。
其实SVN加锁会在.SVN(隐藏文件)中生成一个名字叫lock的文件(无后缀),查找所有的手工删除。
然后再尝试更新,系统可能会提示某个.base文件无法访问。
找到它,把相关的文件或其所在的目录删除,重新update。
工作量就小多了。
12、export
集成测试或项目上线需要版本时,使用export而不用checkout,export得到干净的目录与文件,不带版本控制因素。
13、Checkformodifications
同服务器上的项目版本进行比较,并可做相应的修改。
14、Showlog
查看版本日志及不同版本间相互比较
15、RevisionGraph
版本示意图
16、Repo-Browser
查看当前版本库,这是TortoiseSVN查看版本库的入口,通过这个菜单项,我们就可以进入配置库的资源管理器,然后就可以对配置库的文件夹进行各种管理,相当于我们打开我的电脑进行文件管理一样
17、Rename
SVN支持文件改名,点击Rename,弹出文件名称输入框,输入新的文件名称,点击确定,再把修改提交,即可完成文件改名。
18、switch与relocate
版本库转移,当我们版本库发生转移的时候就需要用到这个功能。
例如我原先的版本库是建在U盘上的,现在转移到(复制整个配置库文件夹)开发服务器上,使用https代替文件系统的访问。
因此就需要将原来的工作拷贝的目标版本库重新定位到开发服务器上。
relocate与switch的区别:
(1)、如果WC反应相同的版本库目录,但是版本库本身位置改变了,使用relocate;
(2)、如果WC需要反应一个版本库的新目录,素要switch。
19、switch与svnupdate比较:
svnswitch和svnupdate的输出很像,switch命令只是update命令的一个超集。
当你运行svnupdate时,会告诉版本库比较两个目录树,版本库这样做,并且返回给客户区别的描述,svnswitch和svnupdate两个命令唯一区别就是update会一直比较同一路径。
也就是了,如果你的工作拷贝是/calc/trunk的一个镜像,当运行svnupdate时会自动地比较你的工作拷贝的/calc/trunk与HEAD版本的/calc/trunk。
如果你使用svnswitch跳转工作拷贝到分支,则会比较你的工作拷贝的/calc/trunk与相应分支目录的HEAD版本。
换句话说,一个更新通过时间移动你的工作拷贝,一个转换通过时间和空间移动工作拷贝。
因为svnswitch是svnupdate的一个变种,具有相同的行为,当新的数据到达时,任何工作拷贝的已经完成的本地修改会被保存,这里允许你作各种聪明的把戏
20、diff:
(下面是针对同一个文件而言)
原本错误地理解了diff的意思是比较本地的文件与服务器的相应文件有什么不同,但实际意思并非这样。
更准确地说这条语句的意思是比较一个文件中你修改过的部分与服务器的相应文件相应部分有什么不同,对于那些没有修改过的地方(同一文件中)不同也不会比较,当然可以先up一下再svndiff
这样就保证了本地文件与服务器的相应文件的所有不同的地方全都显示出来了,当然冲突情况除外.