【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
目录
相关文章
|
关系型数据库 MySQL 数据库
MySql 数据库 - 安装时提示缺失VCRUNTIME140_1.dll文件导致的无法启动此程序解决方法,vc++2015-2019运行库集合包获取
MySql 数据库 - 安装时提示缺失VCRUNTIME140_1.dll文件导致的无法启动此程序解决方法,vc++2015-2019运行库集合包获取
344 0
MySql 数据库 - 安装时提示缺失VCRUNTIME140_1.dll文件导致的无法启动此程序解决方法,vc++2015-2019运行库集合包获取
|
2月前
|
Python
如何查询Python包的所有历史版本
如何查询Python包的所有历史版本
95 5
|
2月前
|
Ubuntu Linux 编译器
当自身需要使用的 gcc版本 和Linux 默认版本 存在大版本差异时怎样处理
当自身需要使用的 gcc版本 和Linux 默认版本 存在大版本差异时怎样处理
58 2
|
3月前
|
缓存 Linux 程序员
Linux探秘:多角度解析如何查看库的版本号
Linux探秘:多角度解析如何查看库的版本号
105 5
|
Linux Shell 开发工具
Linux中多种方法实时记录历史命令
系统中的历史命令对于后期排除故障非常有用。一般都需要把历史命令给保存起来。
6940 0
|
监控 Java Maven
[译] 当发布安卓开源库时我希望知道的东西
本文讲的是[译] 当发布安卓开源库时我希望知道的东西,一切要从安卓开发者开发自己的“超酷炫应用”开始说起,他们中的大多数会在这个过程中遇到一系列问题,而他们中的一些人,会提出可能的解决方案。。 事情是这样的,如果你和我一样认为这个问题足够重要
1254 0
|
C# C++ 数据安全/隐私保护
C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新)
原文:C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持。
1617 0