2017-09-12 24 views

回答

2

如果你有連接到Perforce服務器,這是非常簡單的;運行類似p4 where //...p4 client -o的命令以查看與當前客戶端工作空間關聯的軟件倉庫。

如果您已連接到Perforce服務器,但這些連接設置不包含可能與當前目錄關聯的工作區名稱,則需要使用p4 clients命令並將Host值與客戶端主機名,然後查找與目錄匹配的值Root。請注意,可能有多個匹配項 - 人們有時會執行諸如創建一個沒有Host值(允許從任何主機使用它)和/或值(允許它映射任何目錄)的客戶端。

如果您甚至不知道Perforce服務器的地址,並且它沒有在環境中設置,那麼您可能會不幸運; Perforce命令將自動從系統環境,註冊表,P4CONFIG文件等中提取P4PORT設置,但不能保證任何給定的Perforce客戶機將通過這些機制之一建立連接(最反常情況下,有人可能通過-p全局標誌在每個命令中指定P4PORT)。


當腳本Perforce的命令其通常爲合理的假設正確配置的環境,包括有效P4PORT/P4USER/P4CLIENT設置,錯誤輸出,如果用戶沒有提供的那些。從用戶使用P4 CLI的shell內運行的腳本已經具有正確配置的環境,腳本將作爲「自定義工具」從P4V運行。

+0

該問題與我的[上一個問題]有關(https://stackoverflow.com/questions/46156741/how-to-detect-if-a-perforce-session-is-opened?noredirect=1#comment79302379_46156741) 。我知道執行的腳本比主文件夾低兩個文件夾。所以我知道工作空間的根路徑,但現在我們要從根路徑收集所有文件的版本。這就是爲什麼我想找到工作區的倉庫,然後在倉庫上運行'p4 files \\ depot \ ...'來收集信息。 –

+1

爲什麼不運行'p4文件// CLIENTNAME/...'或'p4文件D:\ workspace \ ...'?同樣,這假定您已經擁有有效的連接設置(您並不是指出這是您正在運行的腳本還是需要能夠處理任意配置不良的客戶端環境)。正如我在上一個問題中所建議的那樣,如果您是從P4V運行它,您可能希望將其作爲自定義工具運行,因爲它會爲您設置環境。 –

+0

我早些時候嘗試過,但必須創建客戶端'station_name'才能訪問本地文件' –

相關問題