繁体   English   中英

p4 CLI:如何查找尚未“添加”以执行控制的新文件

[英]p4 CLI: How to find new files not yet “added” to perforce control

我已经看过使用diff完成此操作的不同方法。 我尝试的第一个选项是:

p4 diff -sa

已打开的文件与软件仓库中的修订版本不同或丢失。

最初,我发现这是一个在仓库中不存在设置了写许可权位的文件。 但是,从那以后,我就了解到p4并不像我最初想到的那样使用模式位来跟踪打开/未打开的状态。

接下来,我认为此选项可以工作:

p4 diff -sl

每个未打开的文件,以及与软件仓库中版本相比的“相同”,“差异”或“缺失”状态。

可以,除非“未打开”不包括“未跟踪”文件。 虽然,当我运行它时,它产生了与文档相矛盾的完全不同的东西。 它输出几乎所有被跟踪的内容,但也输出所有未被跟踪的内容,但将它们标记为“相同”。 也许这意味着它尚未添加,并且在仓库中不存在,因此客户端与仓库相同...? 以我对SVN的偏见,这是一个毫无意义的选择。

然后是“打开”选项。 但这确实做到了。 它列出了软件仓库中已在客户端上打开的所有文件; 因此尚未在客户端上修改的文件尚未添加。

那么,我在某处缺少一个选项,它将提供一些有价值的答案,例如SVN和CVS能够使用一个简单的命令来完成吗?

$ svn status
A added
M modified
R deleted
? untracked
L locked
C conflict

要么:

$ cvs -q up -Pd

好吧,存在“ p4状态”,其目的和行为都与“ svn状态”非常相似。

有关更多想法,请参阅: http : //answers.perforce.com/articles/KB_Article/Working-Disconnected-From-The-Perforce-Server

好的,环顾四周并使用“ add”命令,如果当前未控制文件,则只读add似乎会输出成功消息:

$ p4 add -n -f somefile
//source/somefile#1 - opened for add

我将此应用到以下命令,几乎可以得到我所需要的:

$ find . -type f | while read f ; do p4 add -f -n "$f" | grep -e '- opened for add' >/dev/null && echo "A $f"; done
A ./somefile

或者,如果您不担心本地路径:

$ find . -type f | xargs -l1 p4 add -f -n | grep -e '- opened for add'
//source/somefile#1 - opened for add

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM