如何处理 gitlab fork pull request 冲突
gitlab提供了git的一个ui界面,但是在处理冲突方面表现的不好,一些复杂场景还需要通过命令行来解决。本文所述即是一例,解决过程记录如下。 问题背景repo A :http://ip:8080/share/adminApi.git repo B: http://ip:8080/esb_dept/adminApi.git B是从A里fork出来的。在实际软件开发过程中,A是框架工程,B是由A派生而出的一个实际项目。 现在A发生了更新,需要将A的变动合并到B中。 正常情况下,通过gitlab,在repo A中新建合并请求到B即可,但由于repo B中有工程师修改了框架代码,导致产生冲突,合并失败。 解决步骤 在本地 B 项目根目录,查看可用的远程仓库。默认情况下,只会有repo B [web@localhost esbadminapi]$ git remote -vorigin http://ip:port/esb_dept/adminApi.git (fetch)origin http://ip:port/esb_dept/adminApi.git (push) 将 ...
解决 Centos7 IDEA IBUS 无法输入中文的问题
网上很多帖子都在说环境变量的事,说要在/etc/profile 或idea.sh中增加: export XIM="ibus"export XIM_PROGRAM="ibus"export XMODIFIERS="@im=ibus"export GTK_IM_MODULE="ibus"export QT_IM_MODULE="ibus" 但很多时候问题并不出在这里,而是由于你的ibus包安装不完整,至少应该安装以下包: ibus-setup-1.5.17-2.el7.noarchlibusbmuxd-1.0.10-5.el7.x86_64ibus-libs-1.5.17-2.el7.x86_64ibus-kkc-1.5.18-7.el7.x86_64ibus-gtk3-1.5.17-2.el7.x86_64libuser-python-0.60-9.el7.x86_64libusbx-1.0.21-1.el7.x86_64ibus-gtk2-1.5.17-2.el7.x86_64i...
VMware内CentOS7 /dev/mapper/cl-root 扩容
刚遇到/dev/mapper/cl-root空间不足的问题,就看到了CSDN上Wang_Xin_SH写的文章,非常好,所以转载收藏 (已在原文末留言转载,侵删)。 简介CentOS7虚拟机原硬盘空间只分配了10GB,需要扩容到20GB。环境:VMware 10 VMware分配空间选中虚拟机->虚拟机设置->硬盘->实用工具->扩展->设置最大磁盘大小->点击扩展 CentOS7内部分配可以参考:http://jingyan.baidu.com/article/54b6b9c0fc8b0b2d583b47c6.html 查看当前磁盘空间,/dev/mapper/cl-root硬盘空间只有8GB,打算扩容: # df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/cl-root 8.0G 3.8G 4.3G 47% /devtmpfs 482M 0 482M 0% /devt...
CentOS 7 直接安装 gcc 7
在一台没有安装过低版本gcc的系统里,如何安装gcc 7 ?以下是详细步骤。 使用开发工具集安装: sudo yum install centos-release-sclsudo yum install devtoolset-7-gcc*scl enable devtoolset-7 bashwhich gccgcc --version 这种方法同样适用于安装gcc6,只需要将上面命令中7改成6即可。详情请参考:devtoolset
覆盖 Spring Boot 配置项
Spring Boot中的配置项默认是在application.properties中。如: test.item=lefer 现在考虑两个场景: 场景1:不修改配置文件将test.item的值更改为另一个值 场景2:lefer 是一个密文,使用前需要做转换 下面说说这2个场景的实现方法。 通过命令行参数覆盖配置项场景1的实现非常简单,只要在启动时,指定对应参数就能覆盖配置项,比如: java -Dtest.item=orous -jar test.jar 这时 Spring Boot 会自动将该配置项的值替换成 orous 。更进一步,如果在命令参数里指定的参数在配置文件中不存在,那么等同于在配置文件中新增了一个配置项和对应值。之所以会出现这种现象,是Spring Boot的配置加载机制决定的,从官方文档可以看到,Spring Boot 加载配置项的顺序如下: home目录下的devtools全局设置属性(~/.spring-boot-devtools.properties,如果devtools激活)。 测试用例上的@TestPropertySource注...
使用google jib实现java应用快速容器化
前天(2018年7月9日),谷歌宣布将其内部使用的 jib 正式开源。jib 是一个在 java 体系内部生成 docker 镜像的插件,它的设计初衷是将代码->可运行程序->docker image整个过程打通,无需编写 docker file,直接通过编译器生成 docker 镜像。因为刚出来,中文资料比较少,我撸了一个样例,第一时间体验一下这个新玩意。以下是整个过程。 环境说明我选定的是一个maven构建的spring boot项目,编译后是一个内嵌 tomcat 的可执行jar。目标是通过引入jib,直接生成该项目的镜像发布到阿里云镜像仓库。 引入依赖jib最新版本是0.9.4。通过在pom.xml的plugins标签下增加jib标签,引入依赖。 <build> <plugins> <plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-mave...
使用nginx反向代理websocket
随着HTML5大大简化了websocket的开发,websocket的使用越来越广泛,毕竟它在实时交互场景下较http有很大的优势。websocket的协议为ws或wss,使用nginx能很方便的反向代理。 下面是一个典型的配置。原本这个站点只是支持将xxx.lefer.cn转发给http://127.0.0.1:7017处理。但在增加了11行,12行,13行后,就一并对websocket进行了转发。整个配置很简单,这得益于HTTP 中的 Upgrade 协议头将连接从HTTP升级到WebSocket,使得http和websocket的信息得以复用。 server { listen 80; server_name xxx.lefer.cn; ssl on; ... location / { proxy_pass http://127.0.0.1:7017; proxy_set_header Host $host; proxy_set_header X-Re...
理解朴素贝叶斯
贝叶斯定理是一个优美的定理,看到这样的定理让人很舒服。朴素贝叶斯在特定场景上有着很好的应用。本文是我对朴素贝叶斯的理解总结。 场景我们假定这样一个场景:我们想知道当一个患者拥有发作性咳嗽、胸闷 这两个症状时,他罹患哮喘的可能性有多大。 这个场景可以表达成求$P(哮喘|发作性咳嗽,胸闷)$ 回顾贝叶斯定理贝叶斯定理指明了先验概率和后验概率的关系:$P(B|A)=\frac{P(B)P(A|B)}{P(A)}$。即A发生后发生B的概率等于B的概率乘以B发生后A发生的概率除以A的概率。 使用朴素贝叶斯使用链式法则,并假定特征之间是独立的(这就是朴素),本例场景可以使用朴素贝叶斯求解: $P(哮喘|发作性咳嗽,胸闷)=\frac{P(哮喘)P(发作性咳嗽|哮喘)P(胸闷|哮喘)}{P(发作性咳嗽)P(胸闷)}$ 整个问题转换成了人群中罹患哮喘的概率,哮喘患者中有发作性咳嗽的概率,哮喘患者中发生胸闷的概率,人群中有发作性咳嗽的概率,人群中有胸闷的概率之间的计算,将未知转换成了已知。 朴素贝叶斯分类发作性咳嗽和胸闷还可能是支气管炎的症状。那么当患者拥有这2个症状的时候...
自定义docker实现nextcloud集成离线下载
NextCloud拥有很多好用的插件,比如使用ocDownloader插件能实现离线下载。但是在使用官方docker镜像安装ocDownloader插件后,使用中会出现问题。原因是ocDownloader依赖aria2c,在容器里安装aria2c要做到自启动有点麻烦,另外还有下载目录的权限问题。所以我基于官方apache 13.0.4 镜像进行了修改。源码在此,可以使用:docker pull registry.cn-hangzhou.aliyuncs.com/lefer/nextcloud 拉取镜像。以下是修改的几个关键点。 在dockerfile里新增安装aria2,wget,gosu 新增aria2c的相关目录和文件 mkdir -p /var/log/aria2c; mkdir -p /var/local/aria2c; echo '' > /var/log/aria2c/aria2c.log; echo '' > /var/local/aria2c/aria2c.sess; chown www-data.ww...
使用阿里云镜像服务构建并发布docker镜像
阿里云提供了一个免费的镜像仓库服务,可以使用它去读取Github里的dockerfile完成image构建,并发布到阿里云镜像仓库里去。这能解决构建镜像的时候依赖资源在海外本地构建慢的问题,也能解决发布分享问题(可设置镜像是私有还是公开)。本文是操作过程记录。 另外借助阿里云镜像仓库服务提供的webhook还能实现自动监视github仓库代码变动->触发构建->构建成功后推送消息->接受消息,触发拉取镜像创建容器,这样一整套持续集成流程。当然本文暂不涉及持续集成的内容。 准备工作登录阿里云容器服务,创建命名空间。一个主账号最多可以创建五个命名空间。 创建镜像 将dockerfile上传到Github。笔者的docker仓库是这个。 在阿里云容器服务的镜像列表菜单里点击创建镜像仓库。地域可以选择离你近的,这样以后pull会快一点。 绑定Github。选择对应的repo,在构建设置里填入dockerfile的path。这里需要注意的是repo的根是/。比如从GitHub上找到dockerfile文件copy path是docker/13.0/apache/Do...
