perforceapi:获取子目录的最新版本

2024-09-27 02:19:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经下载并安装了perforceapi for Python。在

我可以在这个页面上运行示例: http://www.perforce.com/perforce/doc.current/manuals/p4script/03_python.html#1127434

但不幸的是,文件似乎不完整。例如,P4类有一个名为run_sync的方法,但是它没有被任何地方记录(事实上,如果您在Python交互解释器中运行dir(p4),那么它甚至不会出现,尽管您可以在交互式解释器中很好地使用该方法)

因此,除了上面链接的页面上的一些小例子之外,我正在努力弄清楚如何使用API。在

我想写一个脚本,只需将子目录的最新版本下载到运行它的计算机的文件系统中,而不做其他任何事情。我不希望服务器以任何方式改变。我不希望有任何迹象表明这些文件来自Perforce(相反,如果您通过Perforce应用程序获取文件,它会将文件系统中的文件标记为只读,直到您将它们签出或诸如此类。这太傻了-我只需要把运行脚本时子目录的快照拉下来。)


Tags: 文件方法脚本comhttp示例fordoc
1条回答
网友
1楼 · 发布于 2024-09-27 02:19:55

Python API遵循与命令行客户机相同的基本结构(两者都是同一底层API上非常薄的包装器),因此您需要查看命令行客户机文档;例如,查看“p4 sync”以了解P4Python中的“run_sync”是如何工作的:

http://www.perforce.com/perforce/r14.2/manuals/cmdref/p4_sync.html

对于您所描述的任务,我将执行以下操作(我将用Perforce命令来描述它,因为我的Python有点生疏;一旦您知道要运行什么命令,就应该很容易将其转换为Python,因为P4Python文档中有创建和修改客户机规范的示例,这是最困难的零件):

1)创建一个客户机,将所需的仓库目录映射到所需的本地文件系统位置,例如,如果您希望将目录“//depot/foo/…”下载到“/usr/team/foo”,您将创建一个如下所示的客户机:

Client: mytempclient123847
Root: /usr/team/foo
View:
    //depot/foo/... //mytempclient123847/...

您应该在客户端上设置“allwrite”选项,因为您说过不希望同步的文件为只读:

^{pr2}$

2)同步,使用“-p”选项最小化对服务器的影响(服务器不会记录您“拥有”这些文件)。在

3)删除客户端。在

(我省略了一些细节,比如确保您的身份验证是正确的,这是另一个潜在的挑战,这取决于服务器的安全性以及它是否使用外部身份验证,但听起来这并不是您遇到问题的部分。)

相关问题 更多 >

    热门问题