当前位置: 首页 > article >正文

7.上传project到服务器及拉取服务器project到本地、更新代码冲突解决

1.上传project到SVN服务器

1.在eclipse中,从show view里调出SVN资源库视图

7d504cc88b7f4e36b399887d17c776b4.png

2.在SVN资源库窗口的空白位置右键选择新建资源库位置

f76aca0125b34c61b360d48ae765149f.png

3.填好服务器的地址

e99ca2864b3a4708933a46ab264ef0dd.png

4.资源库导入成功,SVN资源库视图下出现导入的资源库

9121be2a54bb48f7b075fba020ab3229.png

5.新建project

6.写好project的初始版本

f1485b47508345e9a46511b9e685bafc.png

7.右键project --> team --> share project

d973c2a325354c7dbaf9b6eda3bd374e.png

8.选择repository类型为SVN --> 点击next

f9b25712a5bd4212829dbd2278732642.png

9.使用已有资源库位置

bb1fbf3af8884715a4165a3414e8efd7.png

10.使用项目名称作为文件夹名 --> 点击Finish --> 输入用户名和密码(此步不一定每个人都有)

93a338b8d4ef4844bc5679f8fa89365c.png

11.自由选择是否打开synchronize视图

ccac1e293e5e4310a21a776a92ed0b38.png

12.右键project --> team --> 提交

93e535678ea54508a158377589d05e78.png

13.自由选择是否写日志(建议写)

bd46fcb73122442a8a8b711966440202.png

14点击OK --> 上传到服务器成功,此时刷新资源库,资源库下出现上传的project

 

2.从服务器下载project到本地(三种方式)

1.在资源库视图点击资源库左边的小三角形后出现该资源库下的所有project

f22a587e67a243839e570bb91407bde3.png

2.选择要下载的project右键 --> 检出为

6ea7bd22e7dd4b488df23712c7b9c301.png

3.自由选择是否更改属性(建议使用默认) --> Finish --> 下载成功

3c574b105585400f974a5a7e74f53bb1.png

Eclipse导入SVN项目的三种方式

一.直接Import导入:

1.点击 File --> Import,进入导入项目窗口

724d96a0a5554dea825b496399622bdf.png

2.选择从SVN检出项目,点击Next

6441311f53d6424b9086e2ab189da68a.png

3.选择创建新的资源库位置,点击Next

c4fad69b19f440b6a6cb0687f8d530f9.png

4.在URL处输入SVN项目远程地址,点击Next

e826d82daa494c4fa213b8bae9d0fffd.png

5.选中检索到的远程项目,点击Next

3a6e441bbd2b446b883f0bde11c7033b.png

6.输入项目名称,点击Next

c3ac17d8984e46b09f63fced3ce15763.png

7.选择工作空间,点击Finish,到此项目导入完成。

6bdd1598c07a4da881cbe8c4fbd31189.png

二.SVN资源库导入:

1.点击Eclipse右上角带“+”的图标,进入Open Perspective窗口

f798d015f6bb4295bf99b966cf5919d1.png

2.选择SVN资源研究库,点击OK

33d20f67b2a64d59bf80922b4638c6ce.png

3.右上角出现对应的图标,同时进入SVN资源库界面

4081cf201ee14217bae411f0dcb3235a.png

4.在空白位置单击右键,点击 新建 --> 资源库位置,进入添加SVN资源库界面

0ff20b67c2d148f09618100049dda176.png

5.在URL处输入SVN项目远程地址,点击Finish

0c886ff2a6844e9aa347988b74eb47cc.png

6.在SVN资源库界面出现检索到的远程项目

06789cabca804d70a8b22a8422548ed6.png

7.点击远程项目的SVN地址,单击右键,点击“检出为”

8.输入项目名称,点击Next

ab7dd9f8dc944f6f9e161fd7ba1b30a1.png

9.选择工作空间,点击Finish,到此项目导入完成。

8f1e009a936d4cc7ad9673886d5d37e8.png

三.SVN客户端导入:

1.创建一个空文件夹,在文件夹中单击右键,点击"SVN Checkout"

6bf326021cc4483fb1b014ab7ebf4fdf.png

2.出现Checkout窗口,在URL of repository 处输入SVN项目远程地址,点击OK

34c6970193064b60a40a4cbf6af3f5d3.png

3.等待项目检出成功

0a51ebc894584f2e9ba7df4156dbcaee.png

4.点击OK,文件夹中会出现以下内容

ffbfd182839a4b98b95839affa3ac271.png

5.打开Eclipse, 点击 File --> Import,进入导入项目窗口

03c8c62156634e51bb1245c2265fcb58.png

6.选择普通导入项目方式:General --> Existing Projects into Workspace,点击Next

bdb501b14c5f43278c504b35de086663.png

7.进入Import窗口,点击Browse选择之前创建的文件夹

a3fd0832b3f74fe38237a895e38e6b02.png

8.选择之后,出现项目地址和项目名称,点击Finish,到此项目导入完成

3760684740984df98798b93d9d643e3e.png

9.Eclipse的Project Explorer界面出现导入的项目,显示的是Java项目,若是Web项目只需进行相应设置即可。

 

3.从服务器更新代码

1.更新代码

右键项目project--> 与资源库同步

cbd4d8c85bbe4a65b9c73f0cc07fbedb.png

2.选择打开Synchronize视图  

3.与本地代码有不同的服务器代码将显示在Synchronize视图下,双击可以查看本地代码和服务器代码的对比,加号的为新增的文件(本地还没有)

c7d55952a6a34a64928c6ab79d9bf2bf.png

4.将模式切换到Incoming Mode,这个模式下的代码都是服务器更新的代码,需要下载到本地的,右键要更新的文件-->team-->更新

eb35020ddcf147dcbab6948b35df7846.png

5.如果出现下图这个符号,则代表本地代码和服务器代码有冲突(即:本地代码在未更新到最新版本的情况下,对代码进行了更改;或者在你对a.Java写代码的期间,有人往服务器上传了新的a.java代码,使得代码间出现了冲突)

e0a83cc4f07f4d359f3b90351dea1f9b.png

2.代码冲突

冲突情况1:服务器代码和自己代码改动的地方相同

这种情况比较复杂,一般只能将自己的代码保存一份到本地,然后直接将服务器代码更新下来,然后在新的代码上修改自己的逻辑。

 

冲突情况2:服务器代码和自己代码改动的地方不同

这种情况比较常见,就是你跟别的开发者都在更改同一个文件,但是由于开发任务是分开的,所以更改的地方是不同的,解决办法如下。

 

1、双击冲突文件进入比较视图

1913a47b3a4e4bd686ed9cf3fab1b345.png

2、找到服务器上新增的但本地没有的代码块,选中此代码块,点击右上角的按钮(如下图箭头指向的按钮)将服务器代码复制到本地(其他地方也同此操作),如果点击按钮没用,则关闭比较视图重新打开

b5dfc74651514605b42a0670892de7f6.png

3.将所有服务器上新增的代码复制到本地文件后,右键冲突文件选择标记为合并即可,此时该文件就会消失在Synchronize视图下,并且该文件的代码已经成功将本地代码和远程代码合并到一起

8c080dcc07f74757abd55d52e088ce65.png

3.代码提交(二种方式)

1.eclipse上使用svn提交代码

首先在提交代码的时候,会看到有的文件前会有雪花标志,代表该文件被修改过

780384b485d446fea809739b329d656b.png

提交代码的时候,点击整个项目,右键---team---与资源库同步这个目的是检查本地的代码和服务器上的代码有没有冲突,如果有冲突的话,应该像将冲突解决,否则提交代码会出错

59f598810e564d7cb083bab4a1344997.png

点击与资源库同步按钮之后,会跳转到Team Synchronizing界面,这个时候eclipse会自动检测本地的代码和服务器上的代码有没有冲突,有的话会在eclipse的左侧显示出来,如果没有冲突,那么会跳出弹框 Synchronzing No Changes found

a60ab3e3580a4a90afd1f00e6bd16e3e.png

95c6262cac25476b82585b05ba215741.png

选择要提交的文件,然后右键,提交。会跳出一个弹框,让你输入对你这次提交的代码的描述,主要就是写你完成的需求的详细的内容,和编码上传者

52ccd442b558482388ee246899229699.png

点击OK,上传成功

上传的文件之前的雪花标志已经消失不见。意味者上传成功

5b14f1ff35f145f7b9884adbea07a52c.png

有的时候,代码之前会出现问号,意味着,这个文件是新增加

a5dd96296e6d45ed87a158659aa9eb4f.png

2.客户端方式(小乌龟)提交

1.选中需要更新的代码文件夹或目录,是否代码冲突 点击右键,上传自己文件 选择“TortoiseSVN”–“Add”

2.此时SVN客户端会自动帮你识别出已经变更过的代码文件,可以根据自己的需要选择是否需要上传

3.选择“Ok”后会提示所有的文件已经“Add”成功了

4.再次回到第一步的目录,点击右键,选择“SVN Commit”

5.在弹出的对话框的“Message”框内输入你此次代码变更的备注

6.点击“Ok”按钮,此时SVN开始将变更文件代码上传到SVN远程服务端

7.再次回到刚才操作的目录,我们发现文件夹的状态标识也变成绿色的小勾了,此时代码已经提交成功了

 

4.代码回退/还原/

1.回退相应版本

1.选中要回退的代码,右键选择team>显示资源历史记录

2.在该代码文件的历史记录中选择要回退到的对应历史版本,右键>获取内容,即可将对应版本代码覆盖到本地文件

320d83b5bc5f4a2c99117ab249c0d546.png

 

2.还原

取消本地的全部修改,回退到最近一次更新后状态

使用Team --> Revert (还原)命令即可

70d0a19ed26c45c9860899d71c4cde33.png

3.代码误删

文件还在,恢复删除或覆盖的代码

选中文件 -> replace with -> Local History

555cf63dfc7944caad62f9e9bce3d6bf.png

 

误删本地文件或误更新文件导致文件删除

在误删除文件后,右键文件之前所在的文件夹,找到   Restore from  Local  History  的菜单,单击会弹出

98365116a352424db9d532563b63ce3c.png

 

4.分支

svn它有3个目录,分别为trunk, branches, tags三个空的子目录。

trunk是主分支,用于我们线上部署

branches是分支,用于开发,修复bug等

tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。

1.创建分支(切换分支)

创建分支实际上就是将程序copy一份到指定的分支目录

在项目名称上点击右键,弹出菜单,选择“Team”,再选择“Branch/Tag”,弹出下面的页面

5aa26f872c8b47bd80d6df51f2acefec.png

“Copy to URL”填写创建新分支的路径地址,后面会将程序copy到该目录下,形成新的分支。点击“Next”:

122dc873469b47f4a066f16e572e18af.png

标注了开发人、项目名称以及版本

c7fc8c7b29284428b43134660a1460ff.png

选择最新版本

e9722f4c6d9248d6a3b6e68d31bce088.png

自己决定,勾选上就会自动切换到分支上。不勾选就需要我们手动切换分支

bdc97c3d61e44b489defe4025962cfb9.png

分支上,有项目了。那么我手动切换下分支

e59631e7ce634cd1a1318ea95ce1dee7.png

选择我才刚在分支上创建的目录

e608eada7dfa437da38cff86874eb550.png

切换成功

2.分支同步主干代码

如图:在主干分支上增加了公共代码

f66510874e8c45929e83be0fb64ede79.png

在分支进行拉取

393a2ab9f8b140b09f0940722f63554a.png

选择第一个

a9708dbc53b0428a81aa92459a9f8e2d.png

或者

ea2bca23bed34be295a0bd65a1a1d806.png

上图中的选项:

        1) 从主干合并到分支

        2) 从分支合并到主干

        3) 将主干上的修改合并到分支

        4) 合并2个分支到主干

        5) 从主干到分支,手工指定不需要合并的修改

        6) 从主干到分支,手工指定要合并的修改

 

从主分支拿取

ca6ee9a6e53c4694bf103eb481b3ae27.png

同步过来了

3.主干同步分支代码

在分支上开始开发代码

5b16d8cf42e048ebab2a3625010f2f6f.png

写好并提交

开始合并分支代码了

f850199ed73c4c65ad51c5f9c193b5fd.png

选择第三个

7bdfda3cda67446b905b17c35b9e0c99.png

选择主干和分支

362805b211ed4ca5a8d885c7a8338ded.png

合并过来了

7fb36bc3c65243a5937904840b9e9a8c.png

4.分支中代码冲突

那么如果在开发过程中改变了公共方法

主干代码

fdc4f9153a714d45bdff8e6d206bc2eb.png

分支代码

12fb1784de9644e1894acb52d20654d5.png

主干开始同步分支代码,有冲突文件

ae2e8cc780684b2eb5a8f2373e8cd219.png

查看冲突文件

f242d10ae9d8455a84ffdd0ec7080c65.png

根据分支进行对比

cac36f06d1b746478dcbafd2b820ba2a.png

冲突内容

af605647c8074c4cbc378f84c8bf8cc3.png

解决好后,选择文件,标记为解决

0c6c0d40b12748a8a2bad3c6b8fd7da2.png

一提交即可。解决起来很麻烦

 

分支上正常开发代码

648efb5d71144c49b4b9f836b8f4c88a.png

总结:使用Merge a range of revision的时候,有冲突的文件会给标注,我们需要自己去处理冲突。

使用Merge two different trees,会直接根据目标版本更新,直接覆盖掉不相同的内容。所以这里一定要规定分支要合并主支以后,在操作主支合并分支。

这个根据大家的实际情况而定

 

 


http://www.kler.cn/a/159920.html

相关文章:

  • gpu-V100显卡相关知识
  • 【STM32】基于SPI协议读写SD,详解!
  • centos7上安装mysql
  • Ai创作新风标!仅需三步,利用ai工具免费制作抖音爆款的动物融合视频(含完整的步骤)
  • C语言第九周课——经典算法
  • 985研一学习日记 - 2024.11.12
  • Leetcode每日一题学习训练——Python3版(最小化旅行的价格总和)
  • Mac-idea快捷键操作
  • Android 横竖屏切换 窗口全屏
  • C++ 构造函数与析构函数
  • Python Flask 框架开发
  • K-Radar:适用于各种天气条件的自动驾驶4D雷达物体检测
  • 图形遍历效率低?试试 R 树
  • 【华为OD题库-043】二维伞的雨滴效应-java
  • 【C++】:set和map
  • PIKA,一个神奇的AI工具
  • 《LeetCode力扣练习》代码随想录——字符串(反转字符串---Java)
  • 学生上课睡觉老师的正确做法
  • 【力扣】——可获得的最大点数(滑动窗口)
  • python炒股自动化(1),量化交易接口区别
  • 绘制折扇-第11届蓝桥杯选拔赛Python真题精选
  • SAP CA01/CA02 创建及更新工艺路线BAPI
  • 大话数据结构-查找-二叉排序树
  • Vue获取Promise then的返回值无效为空
  • 【ML】LSTM应用——预测股票(基于 tensorflow2)
  • [SQL]销售管理数据库的查询操作