【P4】解决本地文件修改与库文件间的冲突问题

简介: 【P4】解决本地文件修改与库文件间的冲突问题

需求提出


公司采用 perforce 进行 code 版本管理,同一团队在同一 branch 下工作。多人把 code check out 到本地,edit 后再 submit 上传库中。若 A 和 B 对同一文件 F 进行了 edit,A 先于 B 将 文件 F 上传,待 B 上传时,就会出现本地修改与库文件版本冲突的问题。


 常用的方法是 p4 resolve 把个人改动与他人改动 merge 到一起。p4 resolve 的 merge 参数如表 1 所示。


▼ 表 1:p4 resolve 的 megre 相关参数  


image.png 大部分情况下,两人的改动是会冲突的,需要手动把我方改动与库里的他人改动 merge 到一起。此时需要一系列操作来完成手动 merge。考虑到每次手动 merge 都是那么几个命令,干脆封装下得了。



脚本特性


  • 生成原文件的本地备份,原文件名添加时间戳作为备份文件名。


  • 原文件 revert 并 sync 到最新版本,与库版本对齐。


  • resolve 完毕后,CL 仍与 resolve 前的 CL 相同。


  • 需要 p4 diff 手动 merge。




脚本


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

#! /usr/bin/sh
# File Name: m_resolve.sh
# Usage      : sh m_resolve.sh conflicted_file
timestamp=$(data +%Y%m%d%H%M%S)
ori_file=$1
bak_file=.$ori_file.$timestamp
# get CL
CL=`p4 opened $ori_file`
CL=`echo ${CL#*\edit change}`  # keep right
CL=`echo ${CL%% *}`                # keep left
#
cp $ori_file $bak_file
p4 revert $ori_file
p4 sync $ori_file
p4 edit $ori_file
cp $bak_file $ori_file
p4 reopen -c $CL $ori_file
p4 diff $ori_file




目录
相关文章
文件复制到ftp服务器时发生错误,请检查是否有权限将文件放到该服务器上
文件复制到ftp服务器时发生错误,请检查是否有权限将文件放到该服务器上
5205 0
|
3月前
如何从多个文件夹内转移全部文件(忽略文件夹的结构)(进行复制)(再打包)
该文介绍了一个工具的使用方法,用于忽略文件夹结构并合并所有图片。首先,提供了两个下载链接:百度网盘(提取码:qwu2)和蓝奏云(提取码:2r1z)。接着,展示了文件夹内的嵌套结构,包含多层文件夹和兔兔图片。通过打开工具,选择文件批量复制功能,勾选“忽略文件夹结构”和“不存在自动创建”,然后将目标文件夹“1”添加到来源路径。点击开始复制,并在需要时选择打包和删除原文件,最终会得到一个包含所有图片的压缩包。
|
3月前
|
定位技术 Python
Python依据某一文件夹中大量文件的名称复制另一文件夹中的同名文件
Python依据某一文件夹中大量文件的名称复制另一文件夹中的同名文件
|
10月前
文件复制操作
文件复制操作
35 0
|
C语言 C++
对文件的各种操作详解 1
对文件的各种操作详解
C#编程学习13:文件及文件夹检索与拷贝
C#编程学习13:文件及文件夹检索与拷贝
文件和文件夹的操作——文件夹的操作
文件和文件夹的操作——文件夹的操作
113 0
文件和文件夹的操作——文件夹的操作
|
缓存 Windows
文件夹显示文件或目录损坏且没法读取
 用户反馈说Win7打开Local Settings文件夹提示“位置不可用,拒绝访问"怎么办?Local Settings是Windows系统中的一个隐藏文件,一般存放着和上网有关的历史记录和缓存之类的文件,如果打开Local Settings文件时提示"位置不可用,拒绝访问"下面跟随小编脚步一起看看具体解决方法。
614 0