2024-11-19 Git Workflow学习(二) Git Workflow学习(二) 功能分支工作流背后的核心思想是,所有功能开发都应该在一个专用的分支中进行,而不是在main分支中进行。这种封装使多个开发人员可以轻松地在不干扰主代码库的情况下处理特定功能。这也意味着main分支永远不会包含损坏的代码,这对于持续集成环境来说是一个巨大的优势。封装功能开发还可以利用拉取请求(pull requests),这是围绕某个分支发起讨论的一种方式。它们让其他开发人员有机会在将功能集成到正式项目之前确认该功能。或者,如果你开发某个功能遇到困难,你可以打开一个拉取请求,向你的同事征求建议。关键是,拉取请求使您的团队可以非常轻松地对彼此的工作发表评论。Git 功能分支工作流是一个可组合的工作流,可由其他高级 Git 工作流利用。Git Feature Branch Workflow 以分支模型为中心,这意味着它是管理和创建分支的指导框架。其他工作流更侧重于存储库。Git 功能分支工作流可以合并到其他工作流中。Gitflow工作流和Git forking工作流传统上在其分支模型方面使用 Git 功能分支工作流。工作方式Feature Branch Workflow 假定一个中央存储... 2024年11月19日 79 阅读 0 评论
2024-11-19 Git Workflow学习(一) Git Workflow学习(一) 本文内容主要翻译自Atlassian公司的GIT Tutorial系列文章。A Git workflow is a recipe or recommendation for how to use Git to accomplish work in a consistent and productive manner.Git工作流是关于如何使用 Git 以一致且高效的方式完成工作的秘诀或建议。目前市面上有很多Git工作流,需要根据开发特点选择定制适合团队的Git工作流,从而保证研发协助的高效。什么是成功的Git工作流在评估团队的工作流程时,最重要的是考虑团队的文化。我们希望工作流程能够提高团队的效率,而不是成为限制生产力的负担。评估Git工作流时要考虑的一些事项包括:此工作流程是否随团队规模可扩展?使用此工作流程撤消失误和错误是否容易?此工作流程是否强加给团队任何不必要的认知开销?关于第一个问题,一般团队规模稳定的话,这个不是太大问题。关于第三个问题,我认为这是很重要的问题,可能会导致工作流无法在团队内部被采用。集中式工作流程集中式工作流是一个适合团队从集中式版本管理软件(比如SV... 2024年11月19日 83 阅读 0 评论
2024-11-19 打造永不离线的Tmux开发环境 打造永不离线的Tmux开发环境 最近服务器经常重启,导致个人定制的Tmux开发环境总是失效,因此研究如何保存tmux环境的方法使其在机器重启后依然能够使用。经过研究发现通过tmux插件tmux-resurrect和tmux-continuum插件组合能够满足我的需求,能够(定时)自动保存tmux会话到磁盘、自动加载会话功能。其中插件resurrect负责手动保存会话(到文件)、恢复tmux会话环境,而continuum在rescurrect基础上能够进一步自动保存恢复会话。项目地址tmux-rescurrect: https://github.com/tmux-plugins/tmux-resurrecttmux-continuum: https://github.com/tmux-plugins/tmux-continuum插件安装本人使用Tmux插件管理器TPM自动安装以上两个插件,也可以根据插件说明手动安装。在~/.tmux.conf配置文件中加入以下配置信息(前提是TPM已经安装):# ~/.tmux.conf set -g @plugin 'tmux-plugins/tpm' set -g @plu... 2024年11月19日 102 阅读 0 评论
2024-11-19 Tmux终端远程协助 Tmux终端远程协助 最近发现tmux一个非常有用的功能:共享会话。这个功能利用tmux的共享socket文件,可以用于终端版的远程协助。当你帮别人调试程序或者协同开发时可以使用tmux这个功能,好处是:可以使用自己电脑/键鼠/账号避免操作中需要对方输入密码tmux 共享会话tmux 3.4版本支持该功能,如果版本低不支持该功能,可以查阅另一篇文章安装最新版本的tmux。使用场景:当A需要B帮助程序调试。A在自己的账号终端下设置:$ tmux -S /tmp/shared-session # 进入tmux会话中设置以下命令 $ chmod 777 /tmp/shared-session # 777权限最宽松不安全,可根据实际设置 $ tmux server-access -a <username> # username是B用户名B在自己的账号终端下设置:$ tmux -S /tmp/shared-session attach #B连接A会话B进入共享会话后会看到与A相同的界面,无论是A还是B操作,另一个终端会话会看到相同的操作。调试完成后,A可以删掉/tmp/shared-ses... 2024年11月19日 89 阅读 0 评论
2024-11-19 Centos安装最新版本tmux Centos安装最新版本tmux Tmux新版本提供了很多有用的功能,但Centos 8.4官方仓库提供的版本有点旧(2.7),只能自行安装最新版本。下面介绍Centos简单安装tmux最新版本方法,不需要从源代码编译开始,只要利用网友提供的RPM仓库。yum在线安装设置yum仓库信息$ sudo yum install http://galaxy4.net/repo/galaxy4-release-_<release>_-current.noarch.rpm其中<release>查询操作系统主版本号,比如本人使用的是Centos 8.4.2105,则<release>为8。$ cat /etc/redhat-release CentOS Linux release 8.4.2105下面就可以使用yum安装tmux$sudo yum install tmux离线安装对于离线服务器,可以下载RPM包进行安装,在http://galaxy4.net/repo/RHEL/8/x86_64/里面查找最新版本。$ wget http://galaxy4.net/repo/RHEL/8/... 2024年11月19日 130 阅读 0 评论
2024-11-19 Intel ifort进入废弃状态 Intel ifort进入废弃状态 Only constant in life is change.原先预计Intel IFORT编译器被废弃至少得两三年时间,没想到在去年年底Intel发布了Intel Fortran Compiler Classic(ifort)的废弃通知。不过你不必担心ifort立刻不能使用了。按照Intel产品发布策略,“Deprecation”只是意味着功能不再更新,也不鼓励用户继续使用,并且在未来可能会被淘汰,但产品仍然可以使用一段时间。但Intel通知ifort会在2024年末被移除,即在Intel oneAPI 2025版本中会移除ifort编译器(2024版本ifort与ifx共存)。即如果需要使用Intel oneAPI新版本,还是建议尽快迁移到ifx。官方列举了从ifort升级到ifx编译器的好处包括:更快的编译时间对最新的及未来的Intel处理器的优化能在Intel GPUs加速代码因为基于LLVM编译框架,LLVM社区工具,比如Santizers能够帮助查找修正内存/线程问题Fortran 2023和OpenMP 5.2、6.0标准正在加入持续的支持建议笔者遇到过咨询GEO... 2024年11月19日 103 阅读 0 评论
2024-11-19 Fortran Array Constructor Fortran Array Constructor Fortran数组构造器(array constructor)语法可以用来创建和赋值一维(rank-one)数组和数组常量。使用(/ /)或者[ ]包括数组构造表达式。两种用法是等价的,但[ ]方式有点像Python列表语法(我更喜欢后者用法)。数组构建器语法形式包括以下四种:(/标量表达式/)标量表达式值对应新数组每个元素。integer :: a1(5) a1 = (/1,2,3,4,5/)(/数组表达式/)数组表达式每个元素值对应新数组的元素。integer :: a2(5) a2 = (/a1(1:5)-10/)(/隐式DO循环/)类似DO循环结构,生成数组元素列表。(联想Python的列表推导式 list comprehension)integer :: a3(5) a3 = (/(j, integer :: j=6, 10)/) ! 迭代变量j可以局地声明注意gfortran 13.2测试还未支持该语法。混合形式以上三种形式可以组合使用。integer :: a4(15) a4 = [-1,-2,a1,(i+7,i=1,5),0,1,2]下面看一个不断“增长”大小的... 2024年11月19日 72 阅读 0 评论
2024-11-19 LInux locale设置对Ksh浮点算术影响 LInux locale设置对Ksh浮点算术影响 今天收集到一个关于shell的有意思问题,分享给大家。问题有一个ksh脚本,功能是浮点数之间比较,脚本如下所示:#!/bin/ksh a=4.5 b=4.0 if [ $a -gt $b ]; then echo "a > b" else echo "a <= b" fi语法没有问题,很多平台下运行都没有问题,但在某一个账户下运行会报语法错误。执行脚本报错如下:$ ./test.sh ./new.sh[6]: [: 4.5: arithmetic syntax error a <= b最后发现是系统区域(locale)相关环境变量设置导致的。$ locale LANG=zh_CN.UTF-8 LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC="zh_CN.UTF-8" LC_TIME="zh_CN.UTF-8" LC_COLLATE="zh_CN.UTF-8" LC_MONETARY="zh_CN.UT... 2024年11月19日 124 阅读 0 评论