Perforce:运行 作为特定用户和工作区的脚本
Perforce: run script as particular user and workspace
我有一个 powershell 脚本可以执行各种操作,包括 运行ning p4 命令,例如同步、创建更改列表并将文件签入其中、创建标签等。当我 运行 它作为我的用户在我的开发环境中。
现在我想 运行 另一台机器上的脚本,针对特定的工作区和特定的 Perforce 用户。是否有一些命令集可以添加到我的脚本的开头,以便我可以设置 perforce 用户并为脚本的其余部分使用特定的工作区?如果是,我想知道两种方法,一种使用纯文本密码(用于测试和验证),另一种不使用密码(用于生产)。
相关:我认为我的部分问题是我没有完全理解会话用户是如何确定的。在另一台机器上,如果我尝试 运行 任何 p4 命令,我会收到消息:“Perforce 密码 (P4PASSWD) 无效或未设置。” 我什至收到了该消息如果我尝试:
p4 login abc
"abc" 可以是任何内容,我收到相同的消息。我认为 "login" 命令可用于以特定用户身份登录的想法一定是错误的。我原以为它会提示我输入 abc 的密码,而不是告诉我需要先设置密码才能以其他人身份登录。
但是如果我输入这个:
p4 login
系统提示我输入密码。但是对于什么用户呢?我的 Windows 帐户用户?如果我没有与我的 windows 帐户用户同名的 perforce 用户怎么办?
这是您需要的文档页面:
http://www.perforce.com/perforce/doc.current/manuals/cmdref/envars.html
一般来说,这应该可以解决问题(使用在所有平台上支持 "p4 set" 的命令行客户端的当前版本):
p4 set P4USER=username
p4 set P4CLIENT=clientname
p4 login
当您已经以超级用户身份登录以获取其他用户的登录票证(无密码提示)时,将使用 "p4 login USERNAME" 语法。与所有其他命令一样,"p4 login" 使用您的 P4USER 来确定您是谁 运行 命令的身份。
要通过powershell自动登录,login -a表示允许从任何ip登录...
$USER = "My.User"
$PASS = "P455w0rd"
Out-File -FilePath C:\p4pass.txt -InputObject $PASS -Encoding ASCII -Width 50
cmd /c "p4 -u $USER login -a < `"C:\p4pass.txt`" " 2>&1
要指定用户、工作区和 server:port 在 perforce 命令之前附加以下内容...例如:
p4 -u ${USER} -c ${WORKSPACE} -p ${perforce:1666} login -a
p4 -u ${USER} -c ${WORKSPACE} -p ${perforce:1666} sync -f -q //...#head
要指定票证,请从命令中获取票证:
p4 tickets
并用大写字母-P指定,例如:
p4 -u username -P 5E8ED75FB5086BE82D9BCD5561D32AEE sync...
我有一个 powershell 脚本可以执行各种操作,包括 运行ning p4 命令,例如同步、创建更改列表并将文件签入其中、创建标签等。当我 运行 它作为我的用户在我的开发环境中。
现在我想 运行 另一台机器上的脚本,针对特定的工作区和特定的 Perforce 用户。是否有一些命令集可以添加到我的脚本的开头,以便我可以设置 perforce 用户并为脚本的其余部分使用特定的工作区?如果是,我想知道两种方法,一种使用纯文本密码(用于测试和验证),另一种不使用密码(用于生产)。
相关:我认为我的部分问题是我没有完全理解会话用户是如何确定的。在另一台机器上,如果我尝试 运行 任何 p4 命令,我会收到消息:“Perforce 密码 (P4PASSWD) 无效或未设置。” 我什至收到了该消息如果我尝试:
p4 login abc
"abc" 可以是任何内容,我收到相同的消息。我认为 "login" 命令可用于以特定用户身份登录的想法一定是错误的。我原以为它会提示我输入 abc 的密码,而不是告诉我需要先设置密码才能以其他人身份登录。
但是如果我输入这个:
p4 login
系统提示我输入密码。但是对于什么用户呢?我的 Windows 帐户用户?如果我没有与我的 windows 帐户用户同名的 perforce 用户怎么办?
这是您需要的文档页面:
http://www.perforce.com/perforce/doc.current/manuals/cmdref/envars.html
一般来说,这应该可以解决问题(使用在所有平台上支持 "p4 set" 的命令行客户端的当前版本):
p4 set P4USER=username
p4 set P4CLIENT=clientname
p4 login
当您已经以超级用户身份登录以获取其他用户的登录票证(无密码提示)时,将使用 "p4 login USERNAME" 语法。与所有其他命令一样,"p4 login" 使用您的 P4USER 来确定您是谁 运行 命令的身份。
要通过powershell自动登录,login -a表示允许从任何ip登录...
$USER = "My.User"
$PASS = "P455w0rd"
Out-File -FilePath C:\p4pass.txt -InputObject $PASS -Encoding ASCII -Width 50
cmd /c "p4 -u $USER login -a < `"C:\p4pass.txt`" " 2>&1
要指定用户、工作区和 server:port 在 perforce 命令之前附加以下内容...例如:
p4 -u ${USER} -c ${WORKSPACE} -p ${perforce:1666} login -a
p4 -u ${USER} -c ${WORKSPACE} -p ${perforce:1666} sync -f -q //...#head
要指定票证,请从命令中获取票证:
p4 tickets
并用大写字母-P指定,例如:
p4 -u username -P 5E8ED75FB5086BE82D9BCD5561D32AEE sync...