1.上传project到SVN服务器
1.在eclipse中,从show view里调出SVN资源库视图
2.在SVN资源库窗口的空白位置右键选择新建资源库位置
3.填好服务器的地址
4.资源库导入成功,SVN资源库视图下出现导入的资源库
5.新建project
6.写好project的初始版本
7.右键project --> team --> share project
8.选择repository类型为SVN --> 点击next
9.使用已有资源库位置
10.使用项目名称作为文件夹名 --> 点击Finish --> 输入用户名和密码(此步不一定每个人都有)
11.自由选择是否打开synchronize视图
12.右键project --> team --> 提交
13.自由选择是否写日志(建议写)
14点击OK --> 上传到服务器成功,此时刷新资源库,资源库下出现上传的project
2.从服务器下载project到本地(三种方式)
1.在资源库视图点击资源库左边的小三角形后出现该资源库下的所有project
2.选择要下载的project右键 --> 检出为
3.自由选择是否更改属性(建议使用默认) --> Finish --> 下载成功
Eclipse导入SVN项目的三种方式
一.直接Import导入:
1.点击 File --> Import,进入导入项目窗口
2.选择从SVN检出项目,点击Next
3.选择创建新的资源库位置,点击Next
4.在URL处输入SVN项目远程地址,点击Next
5.选中检索到的远程项目,点击Next
6.输入项目名称,点击Next
7.选择工作空间,点击Finish,到此项目导入完成。
二.SVN资源库导入:
1.点击Eclipse右上角带“+”的图标,进入Open Perspective窗口
2.选择SVN资源研究库,点击OK
3.右上角出现对应的图标,同时进入SVN资源库界面
4.在空白位置单击右键,点击 新建 --> 资源库位置,进入添加SVN资源库界面
5.在URL处输入SVN项目远程地址,点击Finish
6.在SVN资源库界面出现检索到的远程项目
7.点击远程项目的SVN地址,单击右键,点击“检出为”
8.输入项目名称,点击Next
9.选择工作空间,点击Finish,到此项目导入完成。
三.SVN客户端导入:
1.创建一个空文件夹,在文件夹中单击右键,点击"SVN Checkout"
2.出现Checkout窗口,在URL of repository 处输入SVN项目远程地址,点击OK
3.等待项目检出成功
4.点击OK,文件夹中会出现以下内容
5.打开Eclipse, 点击 File --> Import,进入导入项目窗口
6.选择普通导入项目方式:General --> Existing Projects into Workspace,点击Next
7.进入Import窗口,点击Browse选择之前创建的文件夹
8.选择之后,出现项目地址和项目名称,点击Finish,到此项目导入完成
9.Eclipse的Project Explorer界面出现导入的项目,显示的是Java项目,若是Web项目只需进行相应设置即可。
3.从服务器更新代码
1.更新代码
右键项目project--> 与资源库同步
2.选择打开Synchronize视图
3.与本地代码有不同的服务器代码将显示在Synchronize视图下,双击可以查看本地代码和服务器代码的对比,加号的为新增的文件(本地还没有)
4.将模式切换到Incoming Mode,这个模式下的代码都是服务器更新的代码,需要下载到本地的,右键要更新的文件-->team-->更新
5.如果出现下图这个符号,则代表本地代码和服务器代码有冲突(即:本地代码在未更新到最新版本的情况下,对代码进行了更改;或者在你对a.Java写代码的期间,有人往服务器上传了新的a.java代码,使得代码间出现了冲突)
2.代码冲突
冲突情况1:服务器代码和自己代码改动的地方相同
这种情况比较复杂,一般只能将自己的代码保存一份到本地,然后直接将服务器代码更新下来,然后在新的代码上修改自己的逻辑。
冲突情况2:服务器代码和自己代码改动的地方不同
这种情况比较常见,就是你跟别的开发者都在更改同一个文件,但是由于开发任务是分开的,所以更改的地方是不同的,解决办法如下。
1、双击冲突文件进入比较视图
2、找到服务器上新增的但本地没有的代码块,选中此代码块,点击右上角的按钮(如下图箭头指向的按钮)将服务器代码复制到本地(其他地方也同此操作),如果点击按钮没用,则关闭比较视图重新打开
3.将所有服务器上新增的代码复制到本地文件后,右键冲突文件选择标记为合并即可,此时该文件就会消失在Synchronize视图下,并且该文件的代码已经成功将本地代码和远程代码合并到一起
3.代码提交(二种方式)
1.eclipse上使用svn提交代码
首先在提交代码的时候,会看到有的文件前会有雪花标志,代表该文件被修改过
提交代码的时候,点击整个项目,右键---team---与资源库同步,这个目的是检查本地的代码和服务器上的代码有没有冲突,如果有冲突的话,应该像将冲突解决,否则提交代码会出错
点击与资源库同步按钮之后,会跳转到Team Synchronizing界面,这个时候eclipse会自动检测本地的代码和服务器上的代码有没有冲突,有的话会在eclipse的左侧显示出来,如果没有冲突,那么会跳出弹框 Synchronzing No Changes found
选择要提交的文件,然后右键,提交。会跳出一个弹框,让你输入对你这次提交的代码的描述,主要就是写你完成的需求的详细的内容,和编码上传者
点击OK,上传成功
上传的文件之前的雪花标志已经消失不见。意味者上传成功
有的时候,代码之前会出现问号,意味着,这个文件是新增加的
2.客户端方式(小乌龟)提交
1.选中需要更新的代码文件夹或目录,是否代码冲突 点击右键,上传自己文件 选择“TortoiseSVN”–“Add”
2.此时SVN客户端会自动帮你识别出已经变更过的代码文件,可以根据自己的需要选择是否需要上传
3.选择“Ok”后会提示所有的文件已经“Add”成功了
4.再次回到第一步的目录,点击右键,选择“SVN Commit”
5.在弹出的对话框的“Message”框内输入你此次代码变更的备注
6.点击“Ok”按钮,此时SVN开始将变更文件代码上传到SVN远程服务端
7.再次回到刚才操作的目录,我们发现文件夹的状态标识也变成绿色的小勾了,此时代码已经提交成功了
4.代码回退/还原/
1.回退相应版本
1.选中要回退的代码,右键选择team>显示资源历史记录
2.在该代码文件的历史记录中选择要回退到的对应历史版本,右键>获取内容,即可将对应版本代码覆盖到本地文件
2.还原
取消本地的全部修改,回退到最近一次更新后状态
使用Team --> Revert (还原)命令即可
3.代码误删
文件还在,恢复删除或覆盖的代码
选中文件 -> replace with -> Local History
误删本地文件或误更新文件导致文件删除
在误删除文件后,右键文件之前所在的文件夹,找到 Restore from Local History 的菜单,单击会弹出
4.分支
svn它有3个目录,分别为trunk, branches, tags三个空的子目录。
trunk是主分支,用于我们线上部署
branches是分支,用于开发,修复bug等
tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。
1.创建分支(切换分支)
创建分支实际上就是将程序copy一份到指定的分支目录
在项目名称上点击右键,弹出菜单,选择“Team”,再选择“Branch/Tag”,弹出下面的页面
“Copy to URL”填写创建新分支的路径地址,后面会将程序copy到该目录下,形成新的分支。点击“Next”:
标注了开发人、项目名称以及版本
选择最新版本
自己决定,勾选上就会自动切换到分支上。不勾选就需要我们手动切换分支
分支上,有项目了。那么我手动切换下分支
选择我才刚在分支上创建的目录
切换成功
2.分支同步主干代码
如图:在主干分支上增加了公共代码
在分支进行拉取
选择第一个
或者
上图中的选项:
1) 从主干合并到分支
2) 从分支合并到主干
3) 将主干上的修改合并到分支
4) 合并2个分支到主干
5) 从主干到分支,手工指定不需要合并的修改
6) 从主干到分支,手工指定要合并的修改
从主分支拿取
同步过来了
3.主干同步分支代码
在分支上开始开发代码
写好并提交
开始合并分支代码了
选择第三个
选择主干和分支
合并过来了
4.分支中代码冲突
那么如果在开发过程中改变了公共方法
主干代码
分支代码
主干开始同步分支代码,有冲突文件
查看冲突文件
根据分支进行对比
冲突内容
解决好后,选择文件,标记为解决
一提交即可。解决起来很麻烦
分支上正常开发代码
总结:使用Merge a range of revision的时候,有冲突的文件会给标注,我们需要自己去处理冲突。
使用Merge two different trees,会直接根据目标版本更新,直接覆盖掉不相同的内容。所以这里一定要规定分支要合并主支以后,在操作主支合并分支。
这个根据大家的实际情况而定