【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




目录
相关文章
|
2月前
|
监控 Python
查找指定目录下最近修改的文件
本文介绍了一个使用Python编写的脚本,用于查找指定目录及其子目录中在过去指定秒数内被修改的文件。通过`os`和`time`模块,脚本遍历目录,检查文件的最后修改时间,并列出符合条件的文件。文章还提供了代码优化建议,包括增加日志记录、异常处理和性能优化,使脚本更加健壮和高效。
33 4
|
4月前
|
Python
Python实用记录(十二):文件夹下所有文件重命名以及根据图片路径保存到新路径下保存
这篇文章介绍了如何使用Python脚本对TTK100_VOC数据集中的JPEGImages文件夹下的图片文件进行批量重命名,并将它们保存到指定的新路径。
50 0
|
9月前
|
定位技术 Python
Python依据某一文件夹中大量文件的名称复制另一文件夹中的同名文件
Python依据某一文件夹中大量文件的名称复制另一文件夹中的同名文件
|
存储 JSON 安全
electron如何自定义目录,修改文件名保存下载的网络文件
很多同学觉得用localstorage可以代替vuex, 对于不变的数据确实可以,但是当两个组件共用一个数据源(对象或数组)时,如果其中一个组件改变了该数据源,希望另一个组件响应该变化时,localstorage无法做到,原因就是区别1。
|
SQL 数据库连接 容器
Foxpro数据库连接错误解决方法--【VFP DBF文件不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器】
直接访问vfp dbf文件时报错: 错误描述: 'd:\vfpData\test.dbf'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。 解决办法:Data Source=目录!!!!!!(d:\vfpData) (1)--------------------...
1719 0
更改文件名
更改文件名
129 0
VBS实现批量重命名文件并且操作前备份原有文件
'=========================================================================='' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.
941 0
|
XML 数据格式 Windows
IIS7保存配置文件及导入、导出、备份、还原
IIS6下想要保存配置,只需在图形界面下点右键保存即可,但windows 2008下的IIS7却没有这样的选项,IIS7的配置文件有好几个,在c:\windows\system32\inetsrv\config文件夹下,如果需要手动去备份,只要复制一份config这个目录既可以。
1627 0
|
Shell
安装VS2008无法更改安装路径解决方法
    一直用VS2012 以及 VS2012开发,但是他们都不支持Wince程序的开发,所有要安装VS2008.但是发现VS2008只能安装在C盘,要知道C空间很宝贵的。       经过查找资料发现系统中已经安装了VS2008相关的组件,正是因为这些组件导致一些目录不能修改,解决方法如...
794 0