2

在我正在编写的网络应用程序中,用户应该在 Perforce 存储库中输入他们正在输入的节点的路径。该应用程序应该验证输入的目录是否存在于存储库中。

我有 P4Package (p4.jar) 库,并且我配置它足够正确,它几乎适用于所有东西,除了这个目录验证。我正在使用配置的 Env 和路径创建一个 DirEntry(来自 p4.jar),但是当我调用 DirEntry.sync() 时,它发出了一个不正确的命令。我希望它在哪里发出命令:

p4 [config info] dirs directory_argument <-- 使用 dirs 命令验证目录

相反,它发出:

p4 [config info] dirs directory_argument%1 <-- 注意无关的 %1

这总是失败,因为没有一个目录在它们的末尾有 %1 。

有什么帮助吗?是否有其他方法可以使用此包检查目录是否存在?

4

3 回答 3

1

听起来同步命令有一个与目录条目和命令有关的错误。我的建议是自己滚动命令,使用 perforce 命令行,因为无论如何都必须设置它才能使用 java 库。

Process p = Runtime.getRuntime().exec("p4 dirs " + directory_argument);
BufferedReader stdOut = new BufferedReader(new InputReader(p.InputStream()));
//Read the output of the command and process appropriately after this
于 2008-09-17T19:42:30.420 回答
1

因此,我使用的代码确实有一个错误,需要我进行更改并将代码检查到我的存储库中。

然而,从那时起,Perforce 为 P4 客户端提供了他们自己的 Java 包装器,效果更好。我会试一试。

于 2008-09-20T02:17:19.897 回答
1

我会尝试另一个库 P4Java,而不是:

http://tek42.com/p4java

P4Java is much newer and I've found works much better than the P4Package. It is used in the Hudson project and I've seen it in the Fisheye source, though, I'm not sure if they are using it or not.

于 2009-02-03T20:15:51.890 回答