代码管理
常用的代码管理工具
| 版权于价格 | 架构于模型 | 支持的系统 | 优势/特点 | 限制/缺点 | 主要的用户群及产品 | |
|---|---|---|---|---|---|---|
| Subversion | 免费 | 集中式 | Linux、 Windows、 Mac | 简单、易用 | 本地代码的每个目录下面都会多出一个目录与一些用户版本控制的文件 | 各大开源社区、各种传统的开源产品、中小软件公司 |
| Perforce | 免费/收费 | 集中式 | Linux、 Windows、 Mac | 简单、易用,本地代码库中没有多余、无关的文件与目录 | 昂贵 | 各大主流商业公司,比如微软、Google等 |
| Git | 免费 | 分布式 | Linux、 Windows、 Mac | 支持分布式 支持快速本地分支 支持本地离线管理代码,比如提交、看日志 能删除分支 | 学习曲线较高,初学者容易出错 | 各大开源社区、各种开源软件 |
| Mercurial | 免费 | 分布式 | Linux、 Windows、 Mac | 隐藏分支,简单易用 | 社区规模不大 用户规模较小 对非英文文字支持有点问题 不能删除分支 核心功能较少,需要通过扩展才能获得更多的功能 | 某些开源社区和中小软件公司 |
| GVFS | 免费 | 分布式 | Windows | 支持单一、超大型代码库 | 微软开发并发布的,需要特定的Git服务器支持,现在仍在开发过程中 | 微软公司和一些开源社区的项目 |
常用的代码管理系统
| 版权与价格 | 支持系统 | 优势/特点 | 主要用户群/产品 | 主要开发语音 | |
|---|---|---|---|---|---|
| VirtualSVN Server | 免费/收费 | Windows | 简单、易用 很好地支持Windows 商业支持 | 各商业软件开发公司和团队、商业软件系统 | C |
| GitLab Server | 免费/收费 | Linux、 Windows、 Mac | 权限管理简单 类似于GitHub 支持Merge Request 集成缺陷跟踪 | 各开源社区、各种传统的开源产品、中小软件公司 | Ruby |
| Gerrit Server | 免费/收费 | Linux、 Windows、 Mac | 权限管理灵活 支持基于代码提交的Push Code Review | 各大开源社区与大型软件系统、大型商业软件公司 | Java |
从Subversion迁移到Git的常用工具与方法
| 版权与价格 | 架构与模型 | 支持系统 | 优势/特点 | 限制/缺点 | 主要的用户群 | |
|---|---|---|---|---|---|---|
| SubGit | 收费 | 基于代理服务器动态转换 | 多种系统 | 商业支持 支持代码镜像 支持大规模代码库导入 | 商业收费,对于中心端配置管理者有一定的学习曲线 | 商业用户 |
| git-svn | 免费 | 基于本地代码库动态转换 | 多种系统 | Git工具库默认支持 简单、免费 | 对于每个开发人员有一定的学习曲线 | 大部分普通用户 |
| 手动 | 免费 | 手动转换 | 所有系统 | 可以随意定制 | 流程复杂,容易出错 | 中小规模用户 |
常用云端代码管理系统
| 版权与价格 | 优势/特点 | 限制/缺点 | 主要的用户群 | |
|---|---|---|---|---|
| Sourceforge | 免费 | 历史悠久 传统的经典开源项目很多 | 只支持Subversion | 一些在使用Subversion开源社区和开源项目的用户 |
| GitHub | 免费/收费 | 当前最大的免费云代码管理平台,使用人数多,支持良好 | 服务器在国外,只支持Git | 世界上大部分开源社区、开源项目以及很多商业用户 |
| GitLab | 免费/收费 | 开源、免费,集成了各种开发流程管理的统一平台,并且可以私网部署 | 其云服务器在国外,只支持Git | 大部分中小企业,其需求是成本低和可以私网部署 |
| Bitbucket | 免费/收费 | 同时支持Git和Mercurial,支持免费的私有代码库 | 服务器在国外 | 一些商业用户 |
| Coding | 免费/收费 | 服务器在国内,支持项目管理和WebIDE | 服务器在国内 | 国内的免费和商业用户 |
| 码云 | 免费/收费 | 服务器在国内,免费创建私有代码库,支持项目管理 | 服务器在国内 | 国内的免费和商业用户 |
| 阿里云Code | 免费/收费 | 服务器在国内,现在支持免费创建私有代码库,以后可能需要收费,支持项目管理 | 正在公测 | 国内的免费和商业用户 |
选择GitLab
Perforce最好用,Git用多了就习惯了...
不用多说私有代码仓库的首选就是GitLab。
优点:有很好工程页面管理,,集成了各种开发流程管理的统一平台,支持私网部署。
缺点:太吃内存,启动GitLab时候就需要2G内存,我的群晖只有2G内存,害得我又扩展了4G内存。
NAS简介
NAS主要的用途就是文件集中存储与共享,然而一些高端NAS(通常指CPU性能好、运行内存大的硬件)可以通过安装一些第3方插件的形式来扩展系统功能。
群晖NAS自带的套件中心可以扩展许多有趣的功能如在线网盘(Synology Drive)、在线协作Office、公有云同步等。其中有两个特别有用的套件:
Virtual Machine Manager(虚拟机管理)
Docker
你的群晖NAS需要支持安装Docker,支持Docker的表现就是,贵...
环境
群晖 DS218+ NAS
内网穿透工具 cpolar
安装配置
GitLab安装方法
在群晖上跑Gitlab基本上就是靠Docker了。其安装途径有两个。
使用套件中心安装Gitlab套件。

直接在Docker套件中安装。在注册表中

众多教程都是使用Docker套件中安装Gitlab映像来搭建的。主要原因是自带的Gitlab相关设置问题以及配置文件位置不好找,我还是推荐使用套件中心安装Gitlab套件的方法。
套件中心安装GitLab套件
套件中心找到GitLab套件,点击安装套件即可。安装完成后,可以在Docker套件中看见。

配置synology_gitlab_postgresql
Docker套件 --> 容器 --> synology_gitlab_postgresql --> 编辑 --> 卷

配置synology_gitlab
Docker套件 --> 容器 --> synology_gitlab --> 编辑 --> 卷

Docker套件 --> 容器 --> synology_gitlab --> 编辑 --> 端口

Docker套件 --> 容器 --> synology_gitlab --> 编辑 --> 环境

制作生成自签名证书
SSL
访问gitlab应用程序可以使用SSL进行保护,以防止未经授权访问存储库中的数据。尽管CA认证的SSL证书允许通过CA验证信任,但只要每个客户采取一些额外步骤来验证您的网站的身份,自签名证书也可以提供相同级别的信任验证。我将在本节末尾提供有关实现这一点的指示。
要通过SSL保护您的应用程序,您基本上需要两件事:私钥(.key) & SSL证书(.crt)
使用CA认证证书时,CA将向您提供这些文件。使用自签名证书时,您需要自己生成这些文件。如果您拥有CA认证的SSL证书,请跳至加强服务器安全部分。
生成自签名证书
步骤1:创建服务器私钥
openssl genrsa -out gitlab.key 2048步骤2:创建证书签名请求(CSR)
openssl req -new -key gitlab.key -out gitlab.csr步骤3:使用私钥和CSR对证书进行签名
openssl x509 -req -days 3650 -in gitlab.csr -signkey gitlab.key -outgitlab.crt恭喜!您现在生成了一个有效期为10年的SSL证书。
加强服务器安全
加强服务器安全,为了实现这一点,我们需要生成更强大的DHE参数。
openssl dhparam -out dhparam.pem 2048
这个文件需要生成一定的时间,一定要等它生成完成...
生成完成的四个文件: dhparam.pem、gitlab.csr、gitlab.crt、gitlab.key
GitLab安装SSL证书
上述的配置synology_gitlab,已经基本配置好SSL证书的所需配置。
将dhparam.pem、gitlab.csr、gitlab.crt、gitlab.key这四个文件,拷贝到群晖NAS /volume1/docker/gitlab/certs 路径下即可。

GitLab汉化
GitLab中文社区版:https://gitlab.com/xhang/gitlab GitLab中文社区版提供了各个版本的汉化,非常棒!!
套件中心中启动GitLab GitLab是真吃内存...

开始我们的汉化
Docker套件 --> 容器 --> 双击synology_gitlab --> 终端机 --> 新增

# 查看版本 我的是 11.11.x
cat VERSION
# 拉取汉化资源
git clone https://gitlab.com/xhang/gitlab.git gitlab_lan
# 然后进入gitlab_lan目录得到生成对应版本的汉化补丁,并保存为 zh_cn.diff 文件
sudo git diff origin/11-11-stable origin/11-11-stable-zh > ../gitlab/zh_cn.diff
# DMS上面没有patch命令得先安装
sudo apt-get update
sudo apt-get install patch
# 安装完成后直接打补丁
sudo patch -d /home/git/gitlab -p1 < zh_cn.diff
# 顺利的话就安装成功了,为了安全起见我们再确定下有没有错误
find . -name .rej
GitLab的配置文件路径
这里提供一下GitLab的相关路径,如果有需要自行修改~
GitLab安装路径 :
synology_gitlab:/home/git/gitlab
GitLab运行时GitLab配置文件路径:
synology_gitlab:/etc/docker-gitlab/runtime/config/gitlabhq
GitLab运行时Nginx配置文件路径:
synology_gitlab:/etc/docker-gitlab/runtime/config/nginx
GitLab提交的工程路径:
/volume1/docker/gitlab/repositories
GitLab使用
内网穿透 cpolar
外网设置
GITLABHOST:你外网的URL地址
GITLABPORT、GITLABSSHPORT:端口地址要去掉
GITLAB_EMAIL:你的邮箱地址
GitLab设置
以管理员身份登陆。初始默认管理员账号为root,密码为12345678。

关闭注册功能

SourceTree使用
工欲善其事必先利其器,有了GitLab,管理我们工程代码,下载、提交代码需要个工具。这里我为大家推荐SourceTree,比小乌龟好用多了!这里直接上图~







