去年给公司搭建的 gitlab 版本是 1.7.2 的,众所周知 gitlab 也是一个版本帝,不到一年时间都更新到 8.4.5 了,强迫症不能忍我还是升级了一下,我的 gitlab 是基于源码安装的,升级也很简单,过程算是顺利吧。 1.备份一下 cd /home/git/gitlab sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production 2.停止 gitlab 服务 sudo service gitlab stop 3.执行更新脚本 cd /home/git/gitlab sudo -u git -H ruby -Ilib -e 'require "gitlab/upgrader"' -e 'class Gitlab::Upgrader' -e 'def latest_version_raw' -e '"v8.4.5"' -e 'end' -e 'end' -e 'Gitlab::Upgrader.new.execute' 4.重启服务 sudo service gitlab start sudo service nginx restart 5.检查 gitlab 状态

阅读全文

在 Laravel 的文档中有Package Development,对于入门开发人员来说还是比较抽象,因为开发一个包需要了解 Service Providers, Facade 已经够抽象的了对刚接触 Laravel 的开发人员来说,所以我来写一个简单的 Laravel 包开发的实例教程吧。 toastr.js是一个很方便的通知效果,最近刚发布了 laravel 5.2,所以就来开发一个 toastr for laravel 5 的包吧,主要用 toastr 结合 laravel 的flash session来实现页面的一次性消息提醒,其实这个在我们日常开发中页面操作提醒还是很常用到的业务。 一般的 laravel 包开发过程是这样的,开发好以后打包 push 到 gitlab,然后在packagist上提交,下面我们就来一步一步实现这个过程。 1.在新建的 laravel 项目中建立如下目录 packages/yuansir/toastr/src ,packages 目录和 app 目录同级。我们开发包的代码都放在这个 src 目录中,yuansir 和 toastr 完全自定义。 2.修改项目的 composer.json,设定 PSR-4 命名空间: "autoload": { "classmap": [ "database" ], "psr-4": { "App\\": "app/", "Yuansir\\Toastr\\": "packages/yuansir/toastr/src/" } }, 别忘了执行 autoload $ composer dump-autoload 3.为我们的包初始化一个 composer.

阅读全文

SVN 项目迁移到 Gitlab

加入新的团队,他们之前一直用 svn 而且每个人都用 vim 在开发机的自己的用户目录下面开发,这种原始社会的开发方式实在不能忍,于是将团队的开发方式转到 git-flow+vagrant,将 svn 项目转到 gitlab 中。 1.导出 SVN 项目的所有提交者 svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > users.txt 修改一下对应的 gitlab 账号,类似于: xm = 小明 <xm@xxx.com> xl = 小刘 <xl@xxx.com> 2.Gitlab 上新建项目,比如叫 test 3.git svn clone 需要迁移的 svn 项目(确保已安装 git-svn) git svn clone svn://svnurl.com/mongoose/trunk/xxxxxx --authors-file=users.txt --no-metadata test 4.

阅读全文

因为我一直用的 Ubuntu,其他的版本我就不知道了,感觉 Git 蛮人性化,可以支持命令行的 Tab 自动补全。初始安装 Git 以后发现不能命令行的自动补全,然后做了如下操作就可以了: sudo vim /etc/bash.bashrc 将下面几行代码注释去掉,然后重启终端就可以了。 if [ -f /etc/bash_completion ] &&! shopt -oq posix; then . /etc/bash_completion fi 转载请注明: 转载自Ryan 是菜鸟 | LNMP 技术栈笔记 如果觉得本篇文章对您十分有益,何不 打赏一下 本文链接地址: Ubuntu Git 命令行自动补全功能 本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

阅读全文

git config 命令参数区别

Git 的三个配置文件为:版本库配置文件,全局配置文件(用户主目录),系统级配置文件,这三个配置文件有优先级关系,版本库级别的配置文件级别最高,系统级配置文件优先级最低。Git 的配置文件的格式采用的是 INI 的文件格式,和 php.ini 的格式一样,例如: filemode = true bare = false 修改版本库级别的配置文件: $cd /path/to/your/workspace $git config -e 以上命令就是修改了/path/to/your/workspace/.git/config 的配置文件 修改全局配置文件: $git config -e –global 以上命令就是修改了/home/yuasnir/.gitconfig 的配置文件 修改系统级配置文件: $git config -e –system 以上命令就是修改了/etc/.gitconfig 的配置文件 git config 命令可以读取和更改配置文件的内容,要获取具体某个配置项的键值只需要带上参数就可以,例如: $git config core.filemode true 如果要设置一个某个配置项的键值同样如此,例如: $git config a.b yuansir 这样在 .git/config 文件就会看到你设置的键值对: [a] b = yuansir 这里顺便复习一下 php 中解析一个配置文件的函数,parse_ini_file() 函数解析一个配置文件,并以数组的形式返回其中的设置。当然还有ini_get()和ini_get_all()也是实现类似的功能!

阅读全文

作者的图片

Ryan是菜鸟 | LNMP技术栈笔记

一步一个脚印,一直在路上!记录LNMP技术栈,Web架构,区块链等笔记

菜鸟码农

南京