代码管理平台
可以更方便的管理项目,更新项目代码,与放在服务器或者个人电脑不同的是,代码变更更清晰,包含了详细的变更,记录若干文件的内容变化,以便将来查阅特定版本修订情况。
管理工具发展简史:cvs(在兼容性方面不是很好)=》svn(c\s架构。始于2000年,开源版本控制系统,比较依赖网络)=》git(linux创始人发起,始于2005)。还有github,它是基于git的在线web页面代码托管平台,可以选择付费服务。除此之外,还有gitlab是一个开源的github,两者没有直接关系。
svn
svn的安装
#安装服务端
yum install -y subversion
#创建版本库,放哪都行
cd /data/svnroot/myproject/
svnadmin create /data/svnroot/myproject/
查看conf目录下,有三个配置文件:
authz passwd svnserve.conf
#authz 权限配置文件
#passwd 密码文件
#svnserver.conf 仓库的配置文件
编辑权限配置文件passwd文件,增加用户名和密码:
[users]
# harry = harryssecret
# sally = sallyssecret
user1 = abcd #左侧用户,右侧密码
user2 = abcd
user3 = abcd
给用户和项目配置权限,编辑authz文件:
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
aaa = user1,user2
[/] #代表/data/svnroot/myproject/
@aaa = rw #属组为aaa的权限为rw
user3 = r
然后编辑svnserve.conf配置仓库:
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /data/svnroot/myproject #生效的项目
启动:
svnserve -d -r /data/svnroot/
#-d后台进行
#-r 指定项目目录
在客户端上使用svn(linux)
首先安装svn:
yum install -y subversion
把远程的项目保存下来:
svn checkout svn://106.13.219.104/myproject --username=user1
接下来模拟一下变更,再保存回去:
#随便cp一份文件过来,表示做了更改
cd myproject
cp /etc/yum.conf ./
#给增加的文件做个标记
svn add ./yum.conf
#上传到服务器:
svn commit -m "add yum.conf"
SVN服务器端不是简单将上传的文件一个一个存放起来的;SVN服务器端默认采用的FSFS格式是将每次commit的内容增量方式存放的,每个增量包存成1个文件,这个增量包中包括了这次commit的全部数据。也就是说你不可能在服务器端存放该版本库的文件夹下找到你上传的某个文件,因为SVN在服务器端的存储方式和客户端是不一样的,所以在服务器端是看不到源文件的。服务器端有两种存储方式FSFS和BDB,目前默认都是FSFS。
假设另一台设备需要这个已经更改过的项目文件,则需要:
svn update #同步过来
删除服务器上的更改:
#先做个标记
svn delete yum.conf
#上传到远程
snv commit -m "delete yum.conf"
此时,你在别的机器上同步一下,会发现已经没有了yum.conf
查看svn的版本变更信息:
#任何一台同步过svn的机器,进入项目目录
svn log
在windows上使用svn
先下载官方svn:
https://tortoisesvn.net/downloads.zh.html
下载这两个文件:程序和中文语言
分别安装好之后,新建自己用来放项目的目录(自定义),然后点击你新建的目录鼠标右键,找到svn checkout,点击
会弹出:
表示已经同步下来了,此时你本地目录里面已经有代码文件了。
加入你在本地做了更改,同样需要更改和删除文件的话,也是需要add、commit,delete、commit:
右键选择TortoiseSVN,选择Add,ADD之后在选择commit,输入改动信息上传即可。
delete也是一样的。