【问题标题】:Perforce: run script as particular user and workspacePerforce:以特定用户和工作区身份运行脚本
【发布时间】:2015-05-13 15:28:28
【问题描述】:

我有一个 powershell 脚本,它可以执行各种操作,包括运行 p4 命令,例如同步、创建更改列表并将文件签入其中、创建标签等。当我以用户身份在开发环境中运行它时,我的脚本运行良好.

现在我想在另一台机器上针对特定的工作区和特定的 Perforce 用户运行脚本。是否有一些命令可以添加到脚本的开头,以便我可以设置 perforce 用户并为脚本的其余部分使用特定的工作区?如果是,我想知道 2 种方法,一种使用纯文本密码(用于测试和验证),另一种没有密码(用于生产)。

相关:我认为我的部分问题是我不完全了解会话用户是如何确定的。在另一台机器上,如果我尝试运行任何 p4 命令,我会收到消息:“Perforce 密码 (P4PASSWD) 无效或未设置。”即使我尝试了,我也会收到该消息:

p4 login abc

“abc”可以是任何东西,我得到同样的信息。我认为可以使用“登录”命令以特定用户身份登录一定是错误的。我希望它会提示我输入 abc 的密码,而不是告诉我需要设置密码才能以其他人身份登录。

但是如果我输入这个:

p4 login

系统提示我输入密码。但那会是什么用户呢?我的 Windows 帐户用户?如果我没有与我的 windows 帐户用户同名的 perforce 用户怎么办?

【问题讨论】:

    标签: perforce


    【解决方案1】:

    这是您需要的文档页面:

    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 来确定您以谁的身份运行该命令。

    【讨论】:

    • 完美。这正是我想要的。
    【解决方案2】:

    要通过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 
    

    要指定用户、工作区和服务器:端口,请在 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...
    

    【讨论】:

      猜你喜欢
      • 2014-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 2015-06-30
      相关资源
      最近更新 更多