簡體   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