0

I have some Java classes in perforce in different folders for a project. (There are more than one project)

It is possible to search for a file in perforce and get full path of it by just specifying file name and project folder? I mean something like this

Example of folders:

//depot/projects/<concrete_proj>/src/java/main/server/services/SomeClass.java
//depot/projects/<concrete_proj>/src/java/main/entities/OtherClass.java
//depot/projects/<concrete_proj>/src/java/main/common/controllers/Controller.java

where I believe there is a class that I need:

1.//depot/projects/<concrete_project>/...@SomeClass.java

and also situations like this (adding a folder pattern)

2.//depot/projects/<concrete_project>/...@server@SomeClass.java

First and second steps above are my assumptions. I tried to find something in documentation, but found nothing about this.

Denees
  • 9,100
  • 13
  • 47
  • 76
  • Are you using visual P4 client ? if yes then did you refer [Searching and Filtering](https://www.perforce.com/perforce/doc.current/manuals/p4v/p4v_filters.html) – Mahendra Feb 29 '16 at 16:25
  • Are you looking for `p4 files //depot/projects/.../SomeClass.java`? – Bryan Pendleton Feb 29 '16 at 18:17
  • @Mahendra, no I am using command line and P4Java client. @BryanPendleton, I get as a response `protected namespace` with your command – Denees Mar 01 '16 at 07:58
  • @BryanPendleton, thanks for this, I misspelled the path (that's why there was an error), now it's working. – Denees Mar 01 '16 at 08:15

1 Answers1

1

The following code snippet shows how to use files command with P4Java:

IServer server = ServerFactory.getServer("p4java://repo:1666");
server.setUserName("user");
server.connect();

Map<String, Object>[] result = server.execMapCmd(CmdSpec.FILES.name(), new String[] { "//depot/projects/concrete_project/.../SomeClass.java" }, null);

for (Map<String, Object> entry : result) {
    System.out.println(map.get("depotFile"));
}

Valid examples of search strings that cover your use-cases:

"//depot/projects/concrete_project/.../Some*.java"
"//depot/projects/concrete_project/.../S*Class.java"
"//depot/projects/concrete_project/.../server/.../SomeClass.java"
"//depot/projects/concrete_project/.../serv*/.../Some*.java"
Art Licis
  • 3,619
  • 1
  • 29
  • 49
  • Thanks mate, maybe for someone it would be helpful, unfortunately I faced this 2 years ago. – Denees May 23 '18 at 10:27