分类 笔记 下的文章

git统计各成员代码提交行数、次数

使用git bash命令行进行操作。

1. 查询所有用户的提交总次数

git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r

根据时间查询次数

git log --after="2023-01-01 00:00:00" --before="2023-12-31 23:59:59" --pretty='%aN' | sort | uniq -c | sort -k1 -n -r

2. 各用户提交行数

git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

根据时间查询行数

git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --after="2023-01-01 00:00:00" --before="2023-12-31 23:59:59" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

3. 查看对应日期个人代码提交量

git log --author="$(git config --get user.name)" --since=2023-01-01 --until=2023-12-31 --pretty=tformat: --numstat | awk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }'

nls_length_semantics参数

在不同的字符串编码方式下,一个中文字符对应的字符byte长度是不同的。比如,一个字段长度设置为10,如果是英文字符就可以容纳10位长度,如果是中文字符就只能容纳最多5位长度。如果采用如UTF-8类宽泛字符集类型,也就3-4个中文字符。

我们定义varchar2(10)其实是有两层理解,一则是10个byte位长度,另一则是10个输入字符长度。两种理解前者是技术派,后者理解是从业务应用角度看问题。

初始化参数NLS_LENGTH_SEMANTICS用于指定CHAR列或VARCHAR2列的长度定义方式,默认值为BYTE。当设置该参数为BYTE时,定义CHAR列或VARCHAR2列采用字节长度方式;当设置该参数为CHAR时,定义CHAR列或VARCHAR2列采用字符个数方式。需要注意,设置该参数对于已存在参数没有作用。

show nls_length_semantics;

alter system set nls_length_semantics=char;

select pg_reload_conf();

ThinkPHP框架MySQL转PostgreSQL

thinkphp项目需进行国产化,将原有mysql数据库转为基于postgresql的国产数据库。

以下内容需进一步测试完善

步骤(待完善,仅参考)

  1. 导出线上数据库到本地(含数据+结构、结构两种sql)

    • 修改char类型为varchar

      同时需导出一份数据表结构sql,修改char为varchar后导入ss_pg1;
    • 清理不必要的日志文件等数据
    • 修改部分日期字段(lawyer/_apply中的birthday等left(birthday, 1) <>1 and left(birthday, 1)<>2)
    • 修改lawyer_apply表birthday默认为Null
    • 使用navicat将“数据+结构”数据导入到ss_pg2库;

- 阅读剩余部分 -

curl命令详解

curl简介

curl命令 是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。

- 阅读剩余部分 -

Docker基础教程

Docker与微服务

基础篇

Docker简介

Docker是基于Go语言实现的云开源项目。Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案:系统平滑移植,容器虚拟化技术

1687912791440

Docker的主要目标是“Build, Ship and Run Any App, Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。

- 阅读剩余部分 -

ChatGPT身份指令关键词

ChatGPT身份指令关键词

充当 Linux 终端
我想让你充当 Linux 终端。我将输入命令,您将回复终端应显示的内容。我希望您只在一个唯一的代码块内回复终端输出,而不是其他任何内容。不要写解释。除非我指示您这样做,否则不要键入命令。当我需要用英语告诉你一些事情时,我会把文字放在中括号内[就像这样]。我的第一个命令是 pwd

充当英语翻译和改进者
替代:语法,谷歌翻译
我想让你充当英语翻译员、拼写纠正员和改进员。我会用任何语言与你交谈,你会检测语言,翻译它并用我的文本的更正和改进版本用英语回答。我希望你用更优美优雅的高级英语单词和句子替换我简化的 A0 级单词和句子。保持相同的意思,但使它们更文艺。我要你只回复更正、改进,不要写任何解释。我的第一句话是“istanbulu cok seviyom burada olmak cok guzel”

- 阅读剩余部分 -