SVN(集中式)

Checkout : 从公司的SVN服务器下载公司的源代码,只需要下载一次

commit  : 每天下班前需要提交一个”可运行版本"

update :每天上班前 下载昨天提交的"可运行代码"

update 除了可以更新服务器最新的代码以外还可以更新到指定的版本,每次提交代码之后,SVN的版本号都会自动增加1,正是因为版本号每次会自动加1,也就是说版本号是唯一的,所以我们可以根据版本号更新到指定的代码

注意:

1>在向服务器进行commit的时候如果出现了out of date这个错误,说明的是在你进行commit之前已经有人commit过了,服务器的文件名字已经被修改,所以会造成错误,所以每一次需要commit的时候要先update

2>新建文件或者文件夹之后如果直接提交(直接commit)会报如下错误:is not under version control该错误的含义是 : 提示我们提交的文件没有纳入版本控制

3>在提交代码时必须写上注释(要认真写)否则会报如下错误:Could not use external editor to fetch log message;svn co -m”注释"

4>svn add只会将文件添加到本地,不会添加到服务器

5>如果说利用SVN管理源代码,就不能直接在项目中删除源文件

6>如果修改文件之后,并且文件没有提交( commit ),想反悔,可以使用SVN的revert指令让文件回到上一次提交时之前的状态

SVN版本控制策略拷贝->修改->合并

其他版本控制策略 锁定->修改->解锁方案(VSS)不可进行并行开发

SVN在终端的使用指令

svncheckout:下载服务器的代码到本地 (简写svnco)

svncommit:将改动的文件提交到服务器(简写svnci)

svnupdate:更新服务器的代码到本地 (简写svnup)

svnadd:向本地的版本控制库中添加新文件

svndelete、svn remove:从本地的版本控制库中删除文件(简写svndel、svnrm)

svnmove:移动文件或者目录或文件更名

svnmkdir:创建纳入版本控制下的新目录

svnrevert:撤销之前的一切修改

svnmerge:将两个版本之间的差异合并到当前文件

svninfo:查看文件的详细信息

svndiff:查看不同版本的区别

svnlog:查看日志信息

svnlist:列出版本库下的文件和目录列表

svnstatus:查看文件状态(简写svnst)

svnhelp:获取帮助信息(比如svnhelpci)

svnlock:加锁

svnunlock:解锁

svn st显示的文件状态

第1列状态说明:描述文件被添加、删除或其他修改

' '没有修改

'A'被添加到本地代码仓库

'C'冲突

'D'被删除

'I'被忽略

'M'被修改

'R'被替换

'X'外部定义创建的版本目录

'?'文件没有被添加到本地版本库内

'!'文件丢失或者不完整(不是通过svn命令删除的文件)

'~'受控文件被其他文件阻隔

SVN的本质是通过一个文件夹来管理源代码,默认情况下,用于管理源代码的文件夹是隐藏的.

个隐藏文件夹的名称叫做.svn

#显示隐藏文件

$ defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder

#不显示隐藏文件

$ defaults write com.apple.finder AppleShowAllFiles No && killall Finder

SVN版本控制常见问题

1>超时SVN 使用SVN有一个原则:先更新本地库的文件,再提交( commit )只有本地的版本号大于等于服务器的版本号时才能提交,否则会报一个out of data 错误

2>冲突当多个人修改了同一个文件的同一行代码会导致冲突

例子:

我: 修改了main.c 11行,增加了abc

其他人: 修改了main.c 11行,增加了123

其他人先提交代码( commit )

我再提交代码( commit )

会报这个错 :Conflict discovered in ( 发现冲突 ),提示我们如何解决问题

1>( mc ) mine-conflict ,代表用我们的代码替换服务器的代码

2>( tc ) theirs-conflict,代表用服务器代码替换我们的代码,本地的代码只保留服务器的,会自动删除我们的

3>( p )postpone 自动动手解决 本地文件中会同时保留服务器代码和本地代码,会在本地创建3个备份

后缀名为mine的是备份的自己最新的代码

后缀名为r+数字为本地修改之前的版本

后缀名为r +数字+1为服务器最新版本,也就是其他人刚提交的版本( commit )

并且本地的文件会增加一些这样的代码<<<<<<<<到 =====中间存放的是我们自己修改的代码======到>>>>>>中间存放的是服务器最新的代码

注意:手动解决完代码冲突之后,需要告诉SVN服务器我们已经解决冲突了,这样才可以保证数据的安全性和SVN的可靠性


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS 开发 SVN 版本控制器 更多技术交流请加群 iOS技术联盟 27512466 SVN是Subversio...
    Sunny_Fight阅读 12,871评论 7 63
  • 命令的使用 1、检出 svn cohttp://路径(目录或文件的全路径)[本地目录全路径] --username...
    小李龍彪阅读 9,892评论 0 9
  • SVN SVN使用 基本操作svn checkout:把项目源码下载到本地,只需要做一次svn update:将本...
    彼岸的黑色曼陀罗阅读 5,614评论 0 4
  • 什么样的笔,才能将眼前这幅图景清晰、真实、完整地描绘下来,然后植于心底铬于记忆?这样,无论你走到哪里,随时皆能置于...
    尘烟一缕阅读 3,576评论 0 1
  • 月光大刀一挥 将天空割了个口子 重庆的夜晚 两道星光逃了出来 街道上的老司机 开着马力十足的小三轮 冲上了那个斜坡...
    耀之阅读 1,877评论 0 1

友情链接更多精彩内容