22.1 代码管理平台


代码管理平台,也可以称为代码管理工具,顾名思义,就是管理代码的平台,代码可以是公司开发的网站,或者是开发的项目,我们需要把这些代码放到一个平台上面进行管理。

说到这可能有人会想,不就是代码吗?我把它放在服务器上的某个目录不就行了吗?开发完新的项目再把代码传上去替换掉旧的代码不就可以了吗?

当然,对于网站来说,这样做是没什么问题的。但是,如果代码每天有很多的地方在更新,当有一天,你想看到最近一段时间代码变化的地方,你怎么看?很不方便,而且你和同事都在开发的时候想看到对方开发的内容。而代码管理平台就能很容易实现目的。

代码管理工具的作用:

1. 能追踪一个项目从诞生一直到定案的过程2. 记录一个项目的所有内容变化,无限制返回3. 查看特定版本的修订情况

常用的代码管理工具:

CVS    开启版本控制之门    1990年诞生,“远古时代”的主流源代码管理工具SVN    全称是Subversion,C/S架构,集中式版本控制之王者    是CVS的接班人,速度比CVS快,功能比CVS多且强大    在国内软件企业中使用最为普遍(70%-90%)GIT    一款伟大的分布式源代码管理工具    目前被越来越多的开源项目使用    SVN正在被GIT慢慢取代

GIT与SVN的不同在于GIT是分布式的,GIT不需要依赖服务端就可以工作,而SVN是集中式的,所以不行。

分布式与集中式比较

另外,github是基于git的在线web页面代码托管平台,可以选择付费服务。而gitlab可以认为是一个开源的github,两者没有直接关系。


22.2 SVN


SVN使用(Linux)

因为是C/S架构,所以需要安装服务端和客户端。

准备两台机器,一台作为服务端,IP:192.168.100.150,一台作为客户端,IP:192.168.100.160。


服务端操作

  • 安装svn:
# yum install -y subversion

  • 创建版本库:
# mkdir -p /data/svnroot/myproject# svnadmin create /data/svnroot/myproject#初始化文件# ls /data/svnroot/myproject/conf  db  format  hooks  locks  README.txt# ls  /data/svnroot/myproject/conf/authz  passwd  svnserve.conf          # vim /data/svnroot/myproject/conf/authz#authz是权限控制文件,添加下面内容lzxs = lzx,user1#定义lzxs组,组下面有两个用户lzx、user1[/]#这里的 / 指的是/data/svnroot/myproject/目录@lzxs = rw#@指定组,rw可读可写* = r#*指所有也可以下面这样写,在项目很多的时候可以使用下面方式[myproject:/]user1 = rw

# vim /data/svnroot/myproject/conf/passwd#passwd是账号密码文件;在[users]添加以下内容lzx = lzx_!(123user1 = user1_^^^#左边是用户,右边是密码# vim /data/svnroot/myproject/conf/svnserve.conf#svnserve是服务配置文件;在[general]下面添加以下内容anon-access = none#指匿名用户,无任何权限auth-access = write#指被授权用户,可写权限password-db = passwd#指定用户密码存放的目录是passwd(相对路径)authz-db = authz#指定权限控制目录存放的目录是authz(相对路径)realm = /data/svnroot/myproject#指定项目,对之生效(这里是绝对路径)

  • 启动服务:
# svnserve -d -r /data/svnroot/#-d表示以daemon形式,后台启动;-r 指定svn所在路径# ps aux |grep svnserveroot       1330  0.0  0.0 162240   652 ?        Ss   09:26   0:00 svnserve -d -r /data/svnroot/# netstat -lntp |grep svnservetcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      1330/svnserve             //监听3690端口

  • 检出代码:
# cd /home/# svn checkout svn://192.168.100.150/myproject --username=user1#svn checkout 检出代码,后面指定服务器地址和项目坐在目录,指定用户名Authentication realm: <svn://192.168.100.150:3690> /data/svnroot/myprojectPassword for 'user1':#输入之前定义的user1的密码-----------------------------------------------------------------------ATTENTION!  Your password for authentication realm:   <svn://192.168.100.150:3690> /data/svnroot/myprojectcan only be stored to disk unencrypted!  You are advised to configureyour system so that Subversion can store passwords encrypted, ifpossible.  See the documentation for details.You can avoid future appearances of this warning by setting the valueof the 'store-plaintext-passwords' option to either 'yes' or 'no' in'/root/.subversion/servers'.-----------------------------------------------------------------------Store password unencrypted (yes/no)? yes#提示是否保存未加密的密码,输入yesChecked out revision 0.#取出版本为0# lsadmin  myproject#出现myproject的新目录# ls -la myproject/total 0drwxr-xr-x  3 root root 18 Aug 30 09:53 .drwxr-xr-x. 4 root root 36 Aug 30 09:53 ..drwxr-xr-x  4 root root 75 Aug 30 09:53 .svn


客户端操作

  • 安装svn:
# yum install -y subversion

  • 检出代码:
# cd /home/# svn checkout svn://192.168.100.150/myproject --username=user1#svn checkout 检出代码,后面指定服务器地址和项目坐在目录,指定用户名Authentication realm: <svn://192.168.100.150:3690> /data/svnroot/myprojectPassword for 'user1':#输入之前服务端定义的user1的密码-----------------------------------------------------------------------ATTENTION!  Your password for authentication realm:   <svn://192.168.100.150:3690> /data/svnroot/myprojectcan only be stored to disk unencrypted!  You are advised to configureyour system so that Subversion can store passwords encrypted, ifpossible.  See the documentation for details.You can avoid future appearances of this warning by setting the valueof the 'store-plaintext-passwords' option to either 'yes' or 'no' in'/root/.subversion/servers'.-----------------------------------------------------------------------Store password unencrypted (yes/no)? yes#提示是否保存未加密的密码,输入yesChecked out revision 0.#取出版本为0# lsadmin  myproject#出现myproject/目录# ls -la myproject/total 0drwxr-xr-x 3 root root 18 Aug 29 08:43 .drwxr-xr-x 3 root root 23 Aug 29 08:43 ..drwxr-xr-x 4 root root 75 Aug 29 08:43 .svn

  • 传输文件到服务端:
# cd myproject/# cp /etc/fstab .# lsfstab# svn add ./fstab#先增加add,打上标记,存到版本库里A         fstab# svn commit -m "add fstab"#再传到服务端上Adding         fstabTransmitting file data .Committed revision 1.


服务端操作

  • 再到服务端查看:
# cd myproject/# svn up#svn update 升级版本库(同步),这里不需要输入密码是因为之前checkout的时候就已经保存密码到/root/.subversion/serversUpdating '.':A    fstab           Updated to revision 1.# lsfstab#出现fstab这个文件

上面整个过程,可以理解为,一台客户端代码做了修改,传到服务端,这是另外一台客户端及时升级版本库,就能够将做修改的代码同步到自己客户端上。

  • 删除文件:
# svn delete fstab#本地删除D         fstab# svn commit -m "delete fstab"#服务端删除Deleting       fstabCommitted revision 2.


客户端操作

  • 客户端查看:
# svn up#升级版本库Updating '.':D    fstabUpdated to revision 2.# ls#已经没有fstab了

  • 查看变更日志:
# svn log#从下到上,上面为最新变化------------------------------------------------------------------------r2 | user1 | 2018-08-30 10:09:04 -0400 (Thu, 30 Aug 2018) | 1 linedelete fstab------------------------------------------------------------------------r1 | user1 | 2018-08-30 09:58:05 -0400 (Thu, 30 Aug 2018) | 1 lineadd fstab------------------------------------------------------------------------


SVN使用(Windows)

在Windows下,也可以使用SVN。

Windows下有一个很好的svn软件:TortoiseSVN,官网 , 最新版本是1.10.1。


下载安装

在官网下载下来安装,根据自己系统位数选择。

如果你喜欢用命令行操作,请务必记得勾选command line client toolwill be install on local hard driver,不用命令行的可以跳过这一步。

然后一路Next即可安装。安装完毕后,在任意地方右键查看快捷菜单。发现TortoiseSVN即表示安装成功。

如果勾选了安装命令行工具,那么输入命令SVN,有如下提示也表示安装成功。

但是此时菜单全是英文的,如果你不习惯英文,可以去下载语言包,注意系统位数。

安装完语言包之后,可以右键进入setting设置。

选择你喜欢的语言(比如中文),然后确定,不出意外,现在的语言已经切换到中文了。

安装步骤到此结束。


使用SVN

在电脑上随便创建一个目录,然后右键点击 SVN 检出

然后输入linux上的IP地址和目录

点击确定,输入之前服务器上定义的用户名和密码

然后点击确定即可。打开myproject目录,发现有变化

新建一个123.txt文件,并随便写点内容

现在把123.txt传到服务端上,先add(加入到版本库)

然后点击SVN 提交,说明是必须要写的

点击确定即可

再回到linux机器上,可以认为是另外一台客户端,升级版本库:

# svn upUpdating '.':A    123.txt.txtUpdated to revision 2.# ls123.txt.txt  fstab#可以看到,刚刚在Windows上创建的123.txt在这可以看到# cat 123.txt.txt 111222333333

再在linux机器上创建一个文件:

# vim 111.sh#随便写点内容niwqfdhweiuofhweiu        # svn add 111.shA         111.sh# svn commit -m "add 111.sh"Adding         111.shTransmitting file data .Committed revision 3.

回到Windows上,点击SVN 更新


点击确定即可,再查看myproject文件夹

可以看到多出了111.sh文件

这就是SVN在Windows上的简单使用,和linux上没有很大差别,SVN本身用起来也比较简单。


更多资料参考:

TortoiseSVN新人使用指南

©著作权归作者所有:来自51CTO博客作者80民工的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. SpringBoot中的自动代码生成 - 基于Mybatis-Plus
  2. grid 12列栅格布局的组件并仿写页面
  3. 快递100集成多家快递公司同城配送账号授权接口案例代码
  4. 电商快递物流信息短信通知API案例代码-快递100
  5. 快递100集成多家快递公司同城配送下单API接口代码
  6. 物流快递云打印API接口代码和应用场景
  7. 快递物流发货单API接口代码及功能说明
  8. 快递物流官方商家寄件下单API接口案例代码-非第三方集成
  9. 商家寄件运力接口-查询全国快递公司运力覆盖情况的案例代码

随机推荐

  1. Android应用程序组件Content Provider简
  2. Android(安卓)JNI/Hardware 加载(一)
  3. Android(安卓)手机无法连接mac解决办法
  4. Android中如何在命令行中查看某个文件的
  5. Android(Xamarin)之旅(三)
  6. Android(安卓)- R资源未找到至java文件报
  7. android 机顶盒开发-----GridView
  8. Android(安卓)EventBus 封装(支持多个粘性
  9. Android应用程序绑定服务(bindService)的过
  10. android外存储的状态