当我的p4perl脚本和文件属于同一个p4客户端时,我知道如何使用p4perl添加/删除/签入/签出文件。但是,当p4perl脚本和文件属于不同的p4客户端时,我不知道该如何去做。

我想我需要以某种方式调用$ p4-> FetchClient()。但我不知道如何去做。

下面是我可以在同一个p4客户端下签出一个文件的一段实验代码。

use strict;

use P4; # a p4perl module

**#my $p4root = "A P4 root dir" e.g. '//projects/...'

# File '$f1' is under a different p4 client root, e.g. $p4root

#my $f1 = $ENV{HOME}.'/work/aFile_ToBe_Checkedout_From_P4.pl';**

# File '$f2' is under the same p4 client root as this tool $0 is in

my $f2 = './runANI.pl';

&showFileMode($f2);

my $p4 = new P4;

$p4->Connect() or die( "Failed to connect to Perforce Server" );

**#$p4->RunEdit($f1); # To check out file '$f1'. It does not work

#&reportP4err($p4);**

$p4->RunEdit($f2); # To check out file '$f2'. It works!!

&reportP4err($p4);

&showFileMode($f2);

exit;

sub showFileMode {

my ($file) = @_;

my @properties = stat($file);

my $mode = $properties[2];

my $modeInDecimal = $mode & 07777;

my $modeInOctal = sprintf("%04o", $modeInDecimal);

if($modeInOctal eq '0555') {

print "File '$file' is checked in with a mode: $modeInOctal\n";

}

elsif($modeInOctal eq '0755') {

print "File '$file' is checked out with a mode: $modeInOctal\n";

}

}

sub reportP4err {

my ($p4) = @_;

if ($p4->ErrorCount()) {

print "In report_p4_errors()\n";

foreach my $e ($p4->Errors()) {

print "P4 Error MSG: $e\n";

}

die "P4 error, exiting";

}

}样品运行:

% ./testP4perl.pl

File './runANI.pl' is checked in with a mode: 0555

File './runANI.pl' is checked out with a mode: 0755

add p4 多个文件_在P4存储库中查找add/delete/checkout/checkin文件中的p4perl示例代码相关推荐

  1. .git文件夹_将Git存储库中的文件夹转换为全新的存储库

    前提 如果您创建存储库的新克隆,则在将文件夹拆分到单独的存储库时,不会丢失任何Git历史记录或更改. 步骤 打开终端. 将当前工作目录更改为要创建新存储库的位置. 克隆包含子文件夹的存储库. $ gi ...

  2. 从目录中查找最大和最小的文件(不包括子目录)

    从目录中查找最大和最小的文件(不包括子目录),学会使用File类的一些基本方法的调用.代码如下: package file;import java.io.File;public class FindM ...

  3. maven 打包时缺少文件_解决Intellij Idea下使用Maven项目打包时部分文件缺失问题

    问题 Idea被越来越多的java开发者青睐,特别是丰富的插件极大方便了开发者.Idea虽然没有Eclipse的繁琐配置,但也会出现一些问题.问题如下: 一.在进行Maven项目打包的时候,会发现有的 ...

  4. 如何删除写保护的文件_如何找回已删除或永久删除的Office Excel文件

    恢复删除Excel文件概述 Microsoft Office Excel是微软(Microsoft)为Windows及macOS所设计的试算表软件.它的计算.绘图工具.枢纽分析表和一个称作VBA(Vi ...

  5. mfc cstring 写入文件_兄弟Brother单色激光传真一体机MFC系列不能写入此文件夹提示解决方案...

    受影响机型,所有使用ControlCenter3软件的机型,WIN10系统,基本上都受影响.包括但不限于MFC-230.MFC-7340,MFC-7450等. 错误提示: 不能写入此文件夹 <M ...

  6. java防止上传恶意文件_从补丁分析到在野利用:揭秘CVE20201464 Windows文件签名验证绕过漏洞疑云...

    背景 2020年8月12日,微软发布了8月份的漏洞风险通告.通告中一个显示已被公开披露和在野利用的漏洞进入了我们的视野.该漏洞编号为CVE-2020-1464,其被描述为Windows验证文件数字签名 ...

  7. mysql 读取data文件_利用mysql的LOAD DATA INFILE的功能读取客户端文件

    前言:今天在浏览某知论坛时,看到某大佬在渗透过程中使用伪造的MySQL服务端读取客户端文件,此大佬在利用过程中描述得不是很详细,作为小白的我看不懂啊,由此产生了此篇文章. 某大佬文章:https:// ...

  8. 怎么用stata打开dta文件_第三十二章、用c语言打开文件

    这一章我们先来了解一下文件是什么? 一个文件通常就是磁盘上的一段命名的存储区.如我们在C语言编程中经常引入的stdio.h就是一个包含一些有用信息的文件的名称.当然对于操作系统来说,文件就会更复杂一些 ...

  9. python 打包 小文件_[Python][小知识][NO.5] 使用 Pyinstaller 打包成.exe文件

    1.安装 pyinstaller 插件 cmd命令:pip install PyInstaller PS . o.o 不知道 easy_install 的百度吧. 2.pyinstaller 简介 他 ...

最新文章

  1. pandas使用dropna函数删除dataframe中全是缺失值的数据列(drop columns with all missing values in dataframe)
  2. 水晶报表左侧树不显示属性设置
  3. git如何查看缓存区文件内容_详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别...
  4. ubuntu下安装latex
  5. 星空唯美浮雕效果背景源码
  6. Netty工作笔记0038---Netty模型--通俗版
  7. bootstrap 栅格系统实现类似table跨行
  8. clickhouse时间日期函数
  9. 用核废料制成“钻石电池”,不充电能让汽车跑100年?
  10. 读书笔记:《世说新语》
  11. 面试经历(纯属个人经历,仅供观看参考)
  12. HTTP请求415错误 – 不支持的媒体类型(Unsupported media type)
  13. 手机云便签怎么设置休息日免打扰?
  14. android 表情键盘切换,如何在键盘之间切换(从表情符号到qwerty,反之亦然)
  15. 中科院微生物所真菌学国家重点实验室高佳鑫组招聘启事
  16. html5手机号输入框,input输入框限制(座机,手机号码)
  17. 关于word页眉页码不连续,页脚页码连续的办法
  18. [每日100问][2011-9-30]iphone开发笔记,今天你肿了么
  19. 看《神探夏洛克》经典台词
  20. 详解 AJAX-SpringBoot 前后端数据交互

热门文章

  1. 互联网金融和计算机哪个专业比较好,互联网金融专业就业方向及前景分析(解读)...
  2. Mathcad tips_3D绘图
  3. 设计模式-责任链模式变体之管道模式
  4. MTK-如何解锁OEM
  5. C++的反思(知乎精华)
  6. 记一次ajax sync为false 同步神坑bug
  7. 关于wifi打印服务器方案和USB共享打印机模块工作原理
  8. 单独运行thingsboard ui
  9. softlayer iso_配置SoftLayer组件以与帐户定义的网络一起使用
  10. php程序解压的目录在哪,PHP可以解压taz文件吗? (.tar.Z的)