Usando P4Package (Java) a partir de aplicativo Java para validar diretório Perforce

StackOverflow https://stackoverflow.com/questions/84983

  •  01-07-2019
  •  | 
  •  

Pergunta

Em um web-app que estou escrevendo, o usuário deve digitar o caminho no repositório Perforce para o nó que está entrando. A aplicação é suposto para validar que o diretório entrou existe no repo.

Eu tenho o lib (p4.jar) P4Package, e eu estou configurá-lo corretamente o suficiente para que ele funciona para quase tudo, só que desta validação diretório. Estou criando um DirEntry (do p4.jar) usando um Env configurado e um caminho, mas quando eu chamo DirEntry.sync (), ele emite um comando incorreto. Onde quer que ele execute o comando:

p4 [informações de configuração] dirs directory_argument <- usando o comando dirs para validar um dir

Em vez disso, ele emite:

p4 [informações de configuração] dirs directory_argument% 1 <- nota estranha% 1

O que sempre falha, uma vez que nenhum dos diretórios têm uma% 1 no final deles.

Qualquer ajuda? Existe uma maneira diferente para verificar se existe um diretório usando esse pacote?

Foi útil?

Solução 3

Assim, o código que eu estava usando tinha um bug que exige me para fazer uma mudança e verificar o código em meu repositório.

No entanto, desde então, Perforce surgiu com seu próprio invólucro Java para o cliente P4 que funciona muito melhor. Eu daria aquele um tiro.

Outras dicas

Parece que o comando sync tem um bug em relação a entradas Dir e o comando. Minha sugestão seria a de apenas rolar o comando mesmo, usando a linha de comando forçosamente como que tem de ser configurado de qualquer maneira, a fim de usar a biblioteca 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

Gostaria de tentar outra biblioteca, P4Java, em vez disso:

http://tek42.com/p4java

P4Java é muito mais recente e eu encontrei funciona muito melhor do que a P4Package. Ele é usado no projeto Hudson e eu já vi isso na fonte Fisheye, porém, eu não tenho certeza se eles estão usando ou não.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top