版本控制工具
svn是约束每个用户代码,不被连带删除
SVN清空之前的默认用户设置
SVN的两个操作:
SVN Update:相当于拉取代码。(SVN服务端仓库——>磁盘)
SVN Commit:相当于提交代码。(磁盘——>SVN本地仓库)
SVN查看操作日志:
SVN客户端恢复到某一版本:(版本的回退,然后再SVM Commit)
SVN Commit提交时注释:(避免忘记提交此次的目的)
SVN查看某一版本的文件内容:(保存到某一路径)
SVN的基本操作(学习 SVN 服务端的简单配置与客户端的常用功能)
【1】新增一个文件(客户端新增一个文件,并把它提交到SVN的服务端)
比如在Test文件夹下新建一个Java文件,但是该图标多了一个蓝色的问号
,这个蓝色的问号就代表该文件是新增的并且等待被提交的。
提交文件,在.svn所在文件夹下,右击鼠标SVNCommit...,在下面的文件列表里会出现想要提交的文件,Status代表状态不受版本控制,上传之后图标就会变成对号。
删除文件:直接在磁盘上操作即可(磁盘下的任何操作都属于磁盘操作,所有的SVN操作都需要SVNCommit...下完成)删除SVN里的也需要commit。
也就是客户端执行的任何操作,最终都需要SVNCommit...来完成服务端的操作,同样修改也是一样的,如果是修改的文件Status为modified,如果已经删除了的文件Status为missing。
SVN客户端的安装与配置
安装完SVN客户端就会发现在任意文件夹下右击鼠标,会有SVNCheckout...,这个功能就是当第一次从某个SVN仓库下载的时候需要用到的。
当点击SVNCheckout...,需要输入仓库的路径。
比如说从Test仓库中下载,就会出现如图的URL,该路径填写到客户端SVN路径中即可(如果客户端和服务端没有安装在同一台机器,甚至没有在同一局域网内,那么此时计算机名就需要变更为IP地址(服务端所在的那台机器的公网IP):端口号的形式),如果客户端和服务端在同一台机器上,可以简写计算机名,也可以把他变成127.0.0.1。
下面还有一个路径,该路径是本地磁盘路径,也就是把该仓库下载下来放在磁盘的哪一个位置,这里放置在Test文件夹下,如果没有则会自动创建。
当客户端第一次与服务端进行连接时,会出现如下界面,选择第一个就不会再出现了
接下来就需要输入用户名和密码,也就是服务端的用户A或者B的密码,勾中下面Save下次就不用再次输入了。
接下来就会在指定位置下载该仓库中的文件,在该文件夹下会有个.svn文件夹,如果没有,则点击工具——>文件夹选项——>查看那一栏(把不显示隐藏的文件夹那个勾去掉),如果.svn文件夹被删除了,那么Test文件夹就不再是和服务端仓库联系的文件夹了,在这个文件夹下就可以进行客户端的增删改查操作了。
SVN服务器端的安装与配置
SVN——客户端:TortoiseSVN,下载地址:http://tortoisesvn.net/downloads.html
SVN——服务端:VisualSVN,下载地址:http://www.visualsvn.com/server/download
需要先安装服务端:安装中不要选择中间那一项,如果选中则没有可视化的界面了,对号勾也不要去掉,如果去掉,命令行里的一些命令就不能使用了(就需要以后在环境变量里添加PATH)。
接下来选择标准版,不要选择企业版(企业版需要money)。
第一个是SVN安装路径,第二个是仓库路径(代码一旦放置再服务端,代码就相当于放置在这个仓库里了,以后对代码的增删改的操作都会在这个仓库里,这个仓库一旦没有了代码就真的不存在了,所以仓库这个文件一定要妥善保管并勤加备份)端口号服务端规定何种端口号,客户端就通过这个端口号联系,后边如果不勾就是用http协议。
SVN配置:
首先需要配置一个仓库,这里的仓库可以有多个,每个工程可以放置在不同的仓库里(点击Repositories——>Create New Repository——>起个名称(这里选中Empty repository,也就是只有一个仓库,里面没有内容,如果选择下面的会带有三个文件夹)。
选择权限选择默认即可(所有的开发人员,一旦联系上以后,拥有对所有文件的读和写的权限)
这个地址也就是客户端和服务端联系时填写的地址(联系以后才可以读文件和写文件)
接下来还需要新增两个用户
选中Users——>Create User——>填写用户名和密码
版本控制工具的作用:每个人的代码可以互相调用,又不会产生冲突。
合并代码:把扩展名改了就行了,
恢复代码Revert
查看log日志:
恢复文件:
版本控制工具:
第四章所讲的SVN常见问题实际意义很大!mark
1、每天早上上班要update SVN,每天下班要commit SVN。 2、查看是谁动了我的代码,右键 tortoise 后查看 log 日志。 3、文件被别人删除,在空白处右击,show log,可以查看整个库的所有增删改查操作记录,如果单个文件还在,只想查看该文件记录,那就在该文件上查看 log(自从新建一个文件后,对该文件的所有操作都会被服务器仓库记录下来,随时可以可别人商量恢复)。 4、权限清空:TortoiseSVN——Settings——Seved Date——Clear clear all。 5、commit 上面有一块区域是做注释的(推荐常用)。 6、良好冲突: 如果A和B都在修改了代码,B先于A上交,当A去commit的时候,就会提交失败,必须先更新你的本地文件,那么B的代码会和A的代码同时存在(两个人修改的不是一个地方算好的情况了)。 7、较差冲突: 有冲突时提交会产生三个文件,.mine是自己改好之后的代码,rx,ry,x,y两个数字较小者是我改之前的代码,数字较大者,是服务端的代码 1)如果要保留自己的版本,就用mine覆盖原来的代码,再次提交 2)如果认为对方是正确的,就revert一下,这个时候已经拿到了最新的代码(不一定非要这样操作,但是这样方便) 3)如果认为上一个版本是正确的,用版本较小的覆盖(直接删除改后缀名) 经验1:如果Commit Failed!就不要点了ok继续按update了,先把自己的代码复制到一边,再把那个文件revert,再update,再把放在一边的文件重命名复制到相同文件夹下,选中两个冲突的文件,TortoiesSVN->diff,左边是最新的代码,右边的是我的,解决冲突之后两个人最好都update一下。 经验2:与历史记录比对:show log之后,同时选中两个版本(比如现在到了第10版,那么要10/9先比较,看看有没有差异,没有差异,则比较9/8版,如果仍没有差异,以此类推继续比较),Compare revisions。
1.分支不同 ==> update merge(svn自动合并) 2.分支冲突 ==> 协商解决冲突,选择一个正确的版本覆盖(最新的正确直接Revert最新): 出现四个文件。黄色感叹号代表SVN没办法自动合并,因为A B修改的内容一致。 第一个文件:共同修改内容对比显示。第二个文件:A你的代码 第三个文件:A B修改之前的版本代码 第四个文件:B的代码 解决办法:1.A和B讨论,选择哪个版本。就把那个版本恢复。 恢复方法:比如A的正确,就把第二个文件重命名为A的那个文件名,覆盖。 若想恢复成A B之前的版本,用第三个文件覆盖 若想恢复成B的,也是用第四个文件覆盖,或者在第一个文件右击,revert到现在服务器上的B的版本
svn常见的问题: 1.多人操作同一个文件。对于提交时commit,我们尽可能的输入一些文字描述。commit里边上边是一个信息板,提供你提交内容描述,下边是对你要提交项目的勾选。 2.我们在操作之前,我们再项目里边右键点击任意地方,选择TortoiseSVN----->settings,清除 Saved Data----->Authentication data------->Clear all,清除A的权限,因为我们现在要模拟的是A和B同时操作一个文件。 3.多人操作同一个文件的时候,我们上传文件前要使用SVN Update更新文件,然后再Commit。 4.如果我们打开文件发现我们原来写的内容发生改变,我们要知道谁动了我们的代码,我们可以右键点击TortoiseSVN,下边有好多svn使用命令,我们选择show log进行查看历史记录。里边的顺序是上边是最新修改的内容。红色感叹号 --->修改 绿色加号 -->表示新添加 5.对于修改的代码有几种情况: 1.A的代码是正确的,我们右键点击历史记录里边A提交的代码,选择Revert to this revision。我们在我们的项目里边发现我们的文件又变成了 红色感叹号 ,同时里边的内容发生了改变。 2.B的代码是正确的 和A的操作相同。 3.A和B的代码都需要 当B修改完之后,里边已经有B的内容了,我们查看A的内容是否完整,如果完整,那么就OK了!如果不完整,我们把B的内容复制出来,然后回退到自己之前那个版本,把B的代码再粘进来。 4.A的需要一部分,B的需要一部分。 和3步骤一样。 5.B把这个文件删除了, 选择我们的项目,点击进入,选择 .svn文件,然后右键点击,选择show log ,我们就可以看见针对于这个项目的所有改动。我们可以回退或追回到我们要的项目。如果是删除了,在show log 面板里边分为两块,我们在下边这块会看到删除的文件,我们直接右键拷贝出来就好了! 只要我们这个仓库文件 ---->.svn存在,我们就不用担心。
每次更新。删除。增加后都要重新提交一次 svn版本控制工具,多人协作,需要安装服务端和客户端,服务端要建仓库和用户,客户端checkout输入用户名和密码,和保存路径;commit提交本地磁盘增删改文件,可以留意蓝问号(新增),红感叹号(修改),绿钩(已提交),还有提交时文件的status状态是missing,modify等等
@版本管理工具介绍---SVN篇——SVN客户端的安装与配置 1、在服务器端选择对应的某个仓库,上边便会显示一个路径。在客户端任何一个文件空白处右击,CheckOut—URL of Repository中填写刚才那个仓库的上边显示的url路径地址。在一个局域网或一台电脑上,IP 地址处可以填写电脑名;想通过公网连接,则必须为IP 地址。 2、Check Out:把下载下来的仓库存放位置。 3、文件夹中的SVN隐藏文件夹不能删除,删除了改文件夹就跟普通文件夹一样了。(根据svn的版本不同,有的只有在最外层有此文件夹,有的是每个文件夹下面都有此文件夹)
svn客户端下载地址:https://tortoisesvn.net/downloads.html svn服务端下载地址:https://www.visualsvn.com/server/download
什么是版本控制工具? 类似于银联卡,其特征和银联卡类似:受保护的和受约束的 为什么要用版本控制工具? 方便管理,防止代码误删,防止弄乱别人的代码,并且每个人写的代码互相之间都不会产生冲突,方便下次再次编写代码
这个.svn文件夹一定不能删,它的作用是和服务端联系。
版本控制工具下载地址
TortoiseSVN客户端
VisualSVN服务端
svn版本控制工具
对代码的增删改都在这个记录里面
版本控制工具下载:
客户端TortoiseSVN:http://tortoisesvn.net/downloads.html
服务器端VisualSVN:http://www.visualsvn.com/server/download
这节主要是比对