一、svn服务器端
1.创建一个svn的仓库
svnadmin create /Users/username/Svn/WorryFreeDecoration
2.配置svn的用户权限
主要修改/Users/username/Svn/WorryFreeDecoration/conf目录下的三个文件
(1)文件svnserve.conf
- # anon-access = read
- # auth-access = write
- # password-db = passwd
- # authz-db = authz
anon-access = read代表匿名访问的时候是只读的,若改为anon-access = none代表禁止匿名访问,需要帐号密码才能访问
(2)文件passwd
- [users]
- mj = 123
- jj = 456
-
- (3)文件authz
- [groups]
- topgroup=mj,jj
- [/]
- @topgroup=rw //组权限
- mj=rw //某个人的权限
checkout 用于将整个服务器上的所有代码下载到本地
commit是将本地修改之后的文件提交到服务器
update用于更新服务器的代码到本地
out of date 说明是本地代码和服务器的代码不一样,那么就需要进行update一次操作
3.启动svn服务器
svnserve -d -r /Users/username/Svn/
注意:后边的路径是仓库的父级路径
4.关闭svn服务器
到活动监视器进行关闭
二、svn图形化管理
cornerstone.dmg
说明:如果使用上边的工具的时候需要与xcode进行结合使用
使用的时候可以先在svn服务器上边进行创建一个空的仓库,然后将使用cornerstone进行checkout到指定的项目目录中,并且Xcode使用格式: Address: svn://localhost/WorryFreeDecoration
Description: WorryFreeDecoration
UserName和Password
这样这两者进行结合来使用即可
三、常用命令使用
拷贝-修改-合并
svn import ./ svn://localhost/mycode --username=nhf --password=nhfc99 -m "初始化导入"
说明:后边的mycode是仓库的名字
import svn import ./SVN文档.rtf svn://localhost/Users/niuhongfei/svn/mycode --username=nhf --password=nhfc99 -m "ceshi"
Adding SVN文档.rtf
checkout niuhongfeideMac-mini:Desktop niuhongfei$
svn checkout svn://localhost/Users/niuhongfei/svn/ --username=nhf --password=nhfc99 /Users/niuhongfei/Desktop
svn checkout http://192.168.15.155/svn/weibo/ ./
1.svn的格式:
svn <subcommand> [options] [args]
2.查看帮助信息
(1)svn help
查看svn所有明德帮助信息
(2)svn help 子命令
3.常用命令
svn checkout : 下载服务器的代码都本地
svn commit : 将改动的文件提交到服务器
svn update : 更新服务器的代码到本地
svn add : 向本地的版本控制库添加新文件
svn delete、svn remove : 从本地的版本控制库中删除文件
svn move : 移动文件或者目录或者文件更名
svn mkdir : 创建纳入版本控制下的新目录
svn revert : 侧小之前的一切修改
svn merge : 将两个版本之间的差异合并到当前文件
新建文件或文件夹之后如果直接提交就会报错:is not under version control
含义是:提示我们提交的文件没有纳入本地版本控制
svn add [文件名] //将某个文件放入到本地版本控制中
svn commit -m “注释信息” //将修改过的多少的文件提交到服务器中
svn status //查看当前版本控制中的状态
svn revert //用于回退方式,用于从本地版本库中进行恢复数据,前提是没有提交(commit)
svn update -r 3 //回退到指定的版本
svn log //版本提交日志
权限控制:
1.可以控制仓库的权限
2.可以控制仓库内部的文件夹中的权限
冲突:
当多个人修改同一行的时候会发生冲突
解决冲突的方法:
1.mine-conflict 用户我们的代码替换服务器的代码
本地的代码只保留我们自己写的
2.theirs-conflict 代表用服务器代码替换我们的代码
本地的代码只保留服务器的,会自动删除我们的
3.postpone 自己手动进行解决
本地文件中会同时保留服务器代码和本地代码
将会在本地创建3个备份
*.mine 备份自己的文件
r(n-1)本地修改之前的版本
r(n)服务器最新的版本
<<<<<<< 到 ========中间存放的是我们自己修改的代码
======= 到 >>>>>>>>中间存放的是服务器最新的代码
手动修改冲突之后需要告诉svn服务器我们已经解决冲突了,这样才能保证数据的安全性和SVN的可靠性
svn resolved //已经解决
xcode中使用本地svn:
address->file:///Users/niuhongfei/svn/zhuanmi
description->zhuanmi
username->nhf
passwd->nhfc99