博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何使用SVN协调代源代码,多人同步开发
阅读量:6708 次
发布时间:2019-06-25

本文共 1627 字,大约阅读时间需要 5 分钟。

转自原文

 

1.什么是SVN

SVN是一种版本管理系统,前身是CVS,是开源软件的基石。即使在沟通充分的情况下,多人维护同一份源代码的一定也会出现混乱的情况,版本管理系统就是为了解决这些问题。

2. SVN中的一些概念

a. repository(源代码库)

源代码统一存放的地方
b. Checkout(提取)
当你手上没有源代码的时候,你需要从repository checkout一份
c. Commit(提交)
当你已经修改了代码,你就需要Commit到repository
d. Update (更新)
当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更

日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) –>作出自己的修改并调试成功 –> Commit(大家就可以看到你的修改了)

聪明的读者很快就要发问,如果两个程序员同时修改了同一个文件呢?SVN可以Merge这两个程序员的改动,对,合并,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行呢,SVN会提示文件Confict, 冲突,需要手动确认。

 

3.示范一下如何使用

Coollittlethings实际上就是提供一个SVN Repository的服务器

下面有文字以及截图说明一下如何使用SVN这样一个超级工具,可以让我们一起来修改同一份代码

我以我新创建的了一个共同制作blogger模版的项目为例,有兴趣的朋友可以和我联系一起来就修改blogger模版,你也可以上传你的模版,让我来帮你改,^_^

第一步Checkout

a.首选你需要有一个Coollittlethings的帐号,确保你具有该项目的权限

b.下载和安装SVN的客户端, 安装完成以后可能需要重新启动

c. 从Coollittlethings上Checkout源代码。

TortoiseSVN是一个资源管理器的插件,安装完成以后,鼠标邮件点任何文件夹或者桌面都有TortoiseSVN的菜单项
选择SVN Checkout

d.填写源代码的SVN路径和本地文件夹

这里的源代码路径是

这个是我在Coollittlethings上建立的一个模版项目

e.填写你的Coollittlethings的帐号和密码

第二步,修改程序文件,这里是模版的HTML文件,我自然是用DW拉

Checkout下来的文件都会有一个版本管理的标志

然后用编辑器修改程序,比如这里我只是用Dreamweaver小改了一下,也可以用VS.net, Eclipse等等

保存以后更改过的文件会有一个!号的标志

第三步,Commit

确认(程序调试成功)以后,你就可以Commit到源码库上去了

Commit的时候可以简单说一下你的改动,比如这里我告诉大家我简单改了一下css

好了,如果是另外一个程序员他之前已经Checkout了源代码,那他早上起来可以先同步一下源代码Update

Show一下Log就可以看到别人改了什么。

把文件放在同一个服务器上就解决了代码同步的问题,聪明的同学又会问,那如果两个人同时修改了一个文件呢?

Good Question! 这个时候SVN对源代码的管理是细致到行为最小单位的,就是说,如果两个人改的不是同一行代码,另外一个程序Update一下,那所有的修改就被合并呢, 比如说我修改了程序的上半部分并commit了,king修改了下半部分, 这个时候,king只要update,那我修改的那一部分就被合并了进来,king手上的就是最新版本。

那如果是修改了同一行呢? Good Question 2! 这个时候SVN就会显示冲突,需要手工修改,SVN的文档第一句话就是SVN不能代替程序员之间的沟通。

 

转载地址:http://kkalo.baihongyu.com/

你可能感兴趣的文章
1tb等于多少g 1TB和500G有什么区别
查看>>
对象序列化与反序列化(二进制 byte[])
查看>>
显示系统托盘列表(并执行隐藏与显示)
查看>>
jstring 和char 之间的转换方法
查看>>
PullToRefresh的个性化扩展
查看>>
分布式服务框架ZooKeeper
查看>>
【转】android gravity属性 和 weight属性
查看>>
Android SDK上手指南:知识测试
查看>>
C#和JAVA中编写事务代码
查看>>
vuejs组件交互 - 03 - vuex状态管理实现组件交互
查看>>
SQL Server 2017 安装过程中的一点说明(有点意思)
查看>>
Qt编写的RTSP播放器+视频监控(vlc版本)
查看>>
一起谈.NET技术,关于Expression Tree和IL Emit的所谓的"性能差别"
查看>>
CGI, mod_perl, PHP, JSP性能比较
查看>>
密码库 链接
查看>>
java中Double的isInfinite()和isNaN()
查看>>
JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(四):自定义T4模板快速生成页面...
查看>>
关于“鸡脚神”的看法
查看>>
vsftpd服务器
查看>>
枚举的基础类型
查看>>