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

news2025/1/24 14:57:39

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.coloradmin.cn/o/1289631.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++基础 -46- 类的静态函数成员

类的静态函数成员可以不创建类直接访问 #include "iostream"using namespace std;class base {public:static void show(){cout << "hello world" << endl;} };int main() {base::show(); }类的静态函数成员不能访问非静态成员 class base…

GPT实现开放式世界游戏实践【生化危机】

最近开始研究如何基于GPT构建一个游戏引擎&#xff0c;于是先从简单的文字游戏开始探索。 从最简单的选择机制、故事机制&#xff0c;完善成一个包括天气、事件、技能、属性、伙伴、建造系统的-生化危机版文字游戏-。 我唯一的体验是&#xff1a;AI游戏&#xff0c;大有可为! …

【LVS实战】04 LVS+Keepalived实现负载均衡高可用

一、介绍 Keepalived 是一个用于 Linux 平台的高可用性软件。它实现了虚拟路由器冗余协议 (VRRP) 和健康检查功能&#xff0c;可以用于确保在多台服务器之间提供服务的高可用性。Keepalived 可以检测服务器的故障&#xff0c;并在主服务器宕机时&#xff0c;自动将备份服务器提…

音视频之旅 - 基础知识

图像基础知识 像素 像素是图像的基本单元&#xff0c;一个个像素就组成了图像。你可以认为像素就是图像中的一个点。在下面这张图中&#xff0c;你可以看到一个个方块&#xff0c;这些方块就是像素 分辨率 图像&#xff08;或视频&#xff09;的分辨率是指图像的大小或尺寸。…

Python读写txt文件数据

&#x1f388; 博主&#xff1a;一只程序猿子 &#x1f388; 博客主页&#xff1a;一只程序猿子 博客主页 &#x1f388; 个人介绍&#xff1a;爱好(bushi)编程&#xff01; &#x1f388; 创作不易&#xff1a;如喜欢麻烦您点个&#x1f44d;或者点个⭐&#xff01; &#x1f…

OkGo导入失败解决办法

jcenter()maven { url "https://jitpack.io" }再同步就可以了

【3DsMax】制作简单的骨骼动画

效果 步骤 首先准备4个板子模型展开放置好 添加一个4段的骨骼 选中其中的一块板子添加蒙皮命令 在蒙皮的参数面板中&#xff0c;设置每块板子对应哪块骨骼 设置好后你可以发现此时就已经可以通过骨骼来控制模型了 接下来就可以制作动画 点击左下角“时间配置”按钮 设置一下动…

二叉树OJ题之三

哈喽伙伴们&#xff0c;有一段时间没更新博客了&#xff0c;主要是这段时间要准备学校的期末考试&#xff0c;所以没有把部分时间分给博客&#xff0c;今天我们一起去接着看二叉树递归有关的OJ题&#xff0c;今天我们要学习的是 判断相同的树&#xff0c;力扣题目--100 &…

案例052:用于日语词汇学习的微信小程序

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

inBuilder低代码平台新特性推荐-第十四期

各位CSDN的友友们&#xff0c;大家好~ 今天来给大家介绍一下inBuilder低代码平台社区版中特性推荐系列第十四期——导入校验构件 关键特性 导入支持全流程扩展&#xff1a;当基本导入难以满足需求时&#xff0c;可通过自定义扩展构件在导入全流程中进行扩展实现绿色为可扩展的…

生成对抗网络——研讨会

时隔一年&#xff0c;再跟着李沐大师学习了GAN之后&#xff0c;仍旧没能在离散优化中实现通用的应用&#xff0c;实在惭愧&#xff0c;借着组内研讨会的机会&#xff0c;再队GAN的前世今生做一个简单的综述。 GAN产生的背景 目前与GAN相关的应用 去reddit社区的机器学习板块…

会议邀请 | 思腾合力邀您共赴2023“机器人+”智能制造先进成果展

为进一步提升制造业活力&#xff0c;推动机器人技术研发和场景开发不断向下游应用空间拓展延伸&#xff0c;2023机器人与智能制造强国论坛及系列主题活动将于12月7日至9日在山东省济宁市举办。思腾合力作为行业领先的人工智能基础架构解决方案商&#xff0c;受邀参加本次盛会的…

软件测试项目实战

目录 一、引言 二、测试任务 三、测试进度 四、测试资源 五、测试策略 六、测试完成标准 七、风险和约束 八、问题严重程度描述和响应时间规范 九、测试的主要角色和职责 ​有需要实战项目的评论区留言吧&#xff01; 软件测试是使用人工或者自动的手段来运行或者测定…

consistency model

Consistency is All You Need - wrong.wang什么都不用做生成却快了十倍其实也并非完全不可能https://wrong.wang/blog/20231111-consistency-is-all-you-need/[学科基础] 从布朗运动到扩散模型采样算法 - 知乎引言 扩散模型是近年来新出现的一种生成模型&#xff0c;很多工作将…

python爬虫-某公开数据网站实例小记

注意&#xff01;&#xff01;&#xff01;&#xff01;某XX网站逆向实例仅作为学习案例&#xff0c;禁止其他个人以及团体做谋利用途&#xff01;&#xff01;&#xff01; 第一步&#xff1a;分析页面和请求方式 此网站没有技巧的加密&#xff0c;仅是需要携带cookie和请求…

外包干了2个多月,技术明显有退步了。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入武汉某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年国庆&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

查看端口占用并杀死进程

1.安装查看工具 sudo yum install net-tools 2.查看占用情况 netstat -tunlp | grep 8089 3.杀死进程 kill -9 227

已解决error: (-215:Assertion failed) inv_scale_x > 0 in function ‘cv::resize‘

需求背景 欲使用opencv的resize函数将图像沿着纵轴放大一倍&#xff0c;即原来的图像大小为(384, 512), 现在需要将图像放大为(768, 512)。 源码 import cv2 import numpy as np# 生成初始图像 img np.zeros((384, 512), dtypenp.uint8) img[172:212, 32:-32] 255 H, W …

优化 uniapp 发行操作:一键打包、混淆代码

​ uniapp一键发行代码并混淆代码 第一步.在项目根目录下安装插件 npm install javascript-obfuscator -g安装完成后&#xff0c;javascript-obfuscator就是一个独立的可执行命令了。 javascript-obfuscator -v第二步&#xff1a;HbuilderX点击发行按钮&#xff0c;打包代码…

【网络安全技术】IPsec——AH和ESP

一、IPsec通信 主要是两个协议&#xff0c;认证头AH&#xff08;Authentication Header&#xff09;和封装安全载荷ESP&#xff08;Encapsulate Security Payload&#xff09;。AH提供了认证&#xff08;integrity&#xff0c;抗否认&#xff0c;抗重放&#xff09;&#xff0c…