当前位置:网站首页>【P4】 查看库文件两个历史版本的区别
【P4】 查看库文件两个历史版本的区别
2022-07-28 03:25:00 【MangoPapa】
声明:
- 🥭 作者主页:【MangoPapa的CSDN主页】。
- ️ 本文首发于CSDN,转载或引用请注明出处 https://mangopapa.blog.csdn.net/article/details/125939746。
- ️ 本文为非盈利性质,目的为 个人学习记录 及 知识分享。因个人能力受限,存在协议解读不正确的可能。若您参考本文进行产品设计或进行其他事项并造成了不良后果,本人不承担相关法律责任。
- ️ 若本文所采用图片或相关引用侵犯了您的合法权益,请联系我进行删除。
- 欢迎大家指出文章错误,欢迎同行与我交流 ~
- 邮箱:[email protected]
引言
本专栏记录一些个人常用的 命令组合 或 脚本。脚本包括但不限于 shell、python、perl。
本篇为《【P4】解决本地文件修改与库文件间的冲突问题》。
更多实用脚本 点击查看总目录。
需求提出
想要比较本地文件跟库中文件的不同,可以用 p4 diff file。那么该如何比较库中两个历史版本呢?比如要比较文件 A 的两个版本 m 和 n,大致有以下几种方法:
- 采用
p4 diff2 A#m A#n来进行比较,但这样仅在屏幕上显示不同之处,不是很直观。 - 将两个版本的文件 check out 到本地并分别命名,然后用 tkdiff、meld、bcompare 等工具来比较两个文件。该方法能够左右两栏显示两个版本的区别,比方法 1 在展示效果上更直观,但是操作起来较为繁琐。若当前文件已经被 edit 了,过程就更繁琐了,还得先 revert,等比较完毕再重新 edit。
以上两种方法各有利弊,有没有展示效果好又操作比较简单的方法呢?自己写呗。
脚本特性
今天要讲的方法原理跟方法 2 类似,但不用考虑文件被 edit 的问题——借用 p4 print 来中转。思路如下:采用 p4 print 分别打印待比对文件的两个版本到本地临时文件,然后 bcompare 比对,最后删除临时文件。
脚本
脚本名为 p4_diff2.sh,为方便使用请在~/.bashrc里 alias 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
边栏推荐
- Robot development -- lead screw and guide rail
- Acid characteristics of MySQL transactions and example analysis of concurrency problems
- 自定义注解的使用
- 2022 summary of the latest Android handler related interview questions
- SQL Server备份数据库的方法
- 贪心——55. 跳跃游戏
- Outlook tutorial, how to use color categories and reminders in outlook?
- C WinForm development: how to add pictures to project resources
- Unity simply implements the dialog function
- Win11黑色桌面背景如何解决?
猜你喜欢

整合SSM实现增删改查搜索

Billions of asset addresses are blacklisted? How to use the tether address freezing function?

过亿资产地址被拉入黑名单?Tether地址冻结功能该怎么用?

Redis基本操作

Practice of online problem feedback module (16): realize the function of checking details

Malloc, free, calloc, realloc dynamic memory development functions in dynamic memory management

鼠标操作和响应

max_ pool2d(): argument ‘input‘ (position 1) must be Tensor, not NoneType

What are the fragments of MySQL

xctf攻防世界 Web高手进阶区 PHP2
随机推荐
VMware虚拟机网络设置
Asemi rectifier bridge gbpc5010, gbpc5010 parameters, gbpc5010 size
ES6 从入门到精通 # 07:解构赋值
Leetcode 29th day
Redis memory recycling
Win11输入法的选字框不见了怎么办?
Volvo: what on earth does the deep-rooted "sense of security" rely on?
Container related concepts
20220726 at command test of Bluetooth module hc-05 of Huicheng Technology
动态规划——416. 分割等和子集
贪心——53. 最大子数组和
Analysis of redis network model
「运维有小邓」网络设备监控
VMware virtual machine network settings
玩一玩WolframAlpha计算知识引擎
动态规划——474. 一和零
MySQL事务的ACID特性及并发问题实例分析
如何让外网访问内网IP(esp8266网页使用)
Shell: one click deployment PXE
D2dengine edible tutorial (4) -- draw text