【P4】 查看库文件两个历史版本的区别

简介: 【P4】 查看库文件两个历史版本的区别

需求提出


想要比较本地文件跟库中文件的不同,可以用 p4 diff file。那么该如何比较库中两个历史版本呢?比如要比较文件 A 的两个版本 m 和 n,大致有以下几种方法:


  1. 采用 p4 diff2 A#m A#n 来进行比较,但这样仅在屏幕上显示不同之处,不是很直观。


  1. 将两个版本的文件 check out 到本地并分别命名,然后用 tkdiff、meld、bcompare 等工具来比较两个文件。该方法能够左右两栏显示两个版本的区别,比方法 1 在展示效果上更直观,但是操作起来较为繁琐。若当前文件已经被 edit 了,过程就更繁琐了,还得先 revert,等比较完毕再重新 edit。


以上两种方法各有利弊,有没有展示效果好又操作比较简单的方法呢?自己写呗。



脚本特性


  今天要讲的方法原理跟方法 2 类似,但不用考虑文件被 edit 的问题——借用 p4 print 来中转。思路如下:采用 p4 print 分别打印待比对文件的两个版本到本地临时文件,然后 bcompare 比对,最后删除临时文件。




脚本


  脚本名为 p4_diff2.sh,为方便使用请在~/.bashrcalias p4_diff2 'sh ~/script/p4_diff2.sh'


#! /usr/bin/sh
# File Name : p4_diff2.sh
# Usage       : sh p4_diff2.sh file v1 v2
file=$1
v1=$2
v2=$3
p4 print $file#$v1 > .$file.$v1
p4 print $file#$v2 > .$file.$v2
bcompare .$file.$v1 .$file.$v2
rm .$file.$v1 .$file.$v2
目录
相关文章
|
图形学 开发者
Unity Text字体颜色渐变
此代码实现文本颜色的垂直渐变效果。通过定义起始和结束颜色,获取像素位置信息(UV坐标),根据渐变方向计算颜色插值,并应用到每个像素上。具体步骤包括:1) 定义颜色范围;2) 获取UV坐标;3) 计算线性插值;4) 应用颜色。脚本挂载在Text组件上,可调节顶部和底部颜色实现渐变效果。
shell中if else使用示例
该文档提供了多个bash脚本示例,通过`if`语句进行条件判断。示例包括判断字符串是否为空、整数的奇偶性和正负性、字符串间的大小比较、学生成绩合法性与及格判断、年份是否为闰年、文件类型(普通文件或目录)的识别以及文件权限(读、写、执行)的检查。每个示例均包含简单的用户输入和相应的输出反馈。
|
存储 算法 网络安全
Intel QAT 加速的数据压缩和 TLS 加解密技术 | 龙蜥大讲堂 102 期
Intel QAT(QuickAssist Technology)加速的数据压缩和TLS加解密技术,由Intel网络与边缘事业部唐志军分享。课程涵盖QAT简介、数据压缩、安全应用及价值主张,重点介绍QAT在CPU密集型任务中的加速作用,如对称/非对称加密、数据压缩等。通过QAT,可大幅提升性能,节省CPU资源,优化存储和网络传输效率,适用于网络安全、虚拟机迁移、大数据处理等场景。
1185 0
【AXI】解读AXI协议中的burst突发传输机制
【AXI】解读AXI协议中的burst突发传输机制
【AXI】解读AXI协议中的burst突发传输机制
|
安全 jenkins 持续交付
jenkins学习笔记之八:jenkins认证集成gitlab
jenkins学习笔记之八:jenkins认证集成gitlab
|
安全 jenkins Devops
Jenkins 安全性和权限管理
【8月更文第31天】随着 DevOps 实践的普及,Jenkins 已经成为许多组织中不可或缺的一部分,用于自动化软件开发生命周期中的构建、测试和部署流程。然而,随着 Jenkins 的广泛应用,其安全性也变得越来越重要。Jenkins 提供了一系列的安全特性,包括访问控制列表(ACL)、认证和授权机制,以确保只有经过适当授权的用户才能访问和操作 Jenkins 系统。本文将详细介绍如何配置 Jenkins 的 ACL 以及其他安全措施,以保护 Jenkins 服务器免受未授权访问和攻击。
1279 0
|
存储 IDE C#
C#入门:在JetBrains Rider中创建.Net Framework控制台应用程序,输出“Hello, World!”
C#入门:在JetBrains Rider中创建.Net Framework控制台应用程序,输出“Hello, World!”
2121 0
|
敏捷开发 传感器 机器学习/深度学习
阿里妈妈智造字,全新可变字体再发布
万变的时代,研发可变的字体。阿里妈妈智造字继发布数黑体、数智体、东方大楷后再次发布3款字:书法体——阿里妈妈刀隶体,可变体——阿里妈妈方圆体、阿里妈妈灵动体(alimama agile)。01从多到一,以AI孵化可变字体-可变字体作为屏显时代科技与设计艺术结合的产物,阿里妈妈妈智造字研究并拓展其设计形态的表达与应用,挖掘屏显时代字体设计的巨大潜力,满足受众不断变化的阅读需求。可变技术带来的字体设计
24324 1
阿里妈妈智造字,全新可变字体再发布
|
存储 Unix Shell
Linux【脚本 04】Shell脚本传递参数的4种方式(位置参数、特殊变量、环境变量和命名参数)实例说明
Linux【脚本 04】Shell脚本传递参数的4种方式(位置参数、特殊变量、环境变量和命名参数)实例说明
1848 0