Pregunta

Soy nuevo en Perforce (pero estoy bastante experimentado con otros sistemas, sobre todo SVN).
Ahora estoy tratando de hacer un script de construcción ventanas simples murciélago que tiene que comprobar en algunos resultados controvertidos de construcción (para algunos, lo sé, pero por favor, tratan de ignorar, ya que es una discusión diferente). Estoy usando p4 para esto. El problema es que parece que sea:

  • Usar el mismo "cliente", como en otras máquinas (la opción -c). Esto tendrá una "raíz", que parece que especifica la ruta absoluta en la copia de trabajo pasa a nivel local. Parece más bien "wtf?" me ...
  • interactiva crear un "cliente" para cada máquina (que coincide con el diseño de sistema de archivos local). La interactividad es, obviamente, un acuerdo para romper por un script automatizado.

¿Hay algún modo sólo tiene que utilizar el directorio actual, como puedo con SVN?
¿Hay una mejor opción?

¿Fue útil?

Solución

Crear un espacio de trabajo con una raíz de nula y el mapa de la estación a ese cliente. He aquí un ejemplo de especificaciones del cliente:

Client: client_name

Update: 2010/10/20 14:18:23

Access: 2010/10/20 14:20:53

Owner:  raven

Host:   ravens-pc

Description:
    Created by raven.

Root:   null

Options:    noallwrite noclobber nocompress unlocked modtime rmdir

SubmitOptions:  leaveunchanged

LineEnd:    local

View:
    //depot/... //client_name/...

Lo primero que su script debe hacer es cambiar a este cliente estableciendo la variable de entorno $ $ P4CLIENT:

p4 set p4client=client_name

guión trabajará ahora en el contexto de ese cliente. En virtud del hecho de que se haya especificado una raíz de null, cualquier sincronización que lo haga será relativa al directorio actual . Por lo tanto, si usted sincronización // depot / foo / ... mientras que en C: \ bar, los archivos aparecerán en C:. \ Bar \ foo

La última cosa que su script debe hacer es borrar la variable P4CLIENT para restaurar el sistema a la especificación del cliente predeterminado:

p4 set p4client=

Otros consejos

Me gustaría sugerir la creación de un nuevo cliente cada vez con una plantilla de cliente. En primer lugar, crear manualmente un cliente con la vista como desee en los clientes construir real. No especifique los campos Propietario, cliente, o la raíz. Entonces, cada vez que desee un nuevo cliente tiene que hacer lo siguiente:

p4 client -t my-client-template-name -o my-unique-client-name >clientspec.txt
p4 client -i <clientspec.txt

Cuando my-client-template-name es el cliente que ha creado en el primer paso. Por supuesto, cuando haya terminado asegúrese de hacer lo siguiente:

p4 client -d my-unique-client-name

Se puede crear de forma interactiva un cliente sin un editor utilizando p4 client -i:

La bandera -i provoca una especificación del cliente para ser leído desde el entrada estándar. El editor del usuario no se invoca

Así que en su builtscript que tendría una plantilla para la vista del cliente, que permite modificar sobre la marcha de la máquina de construcción actual y lo pasa a p4 client -i.

Al parecer, se puede pre-crear un espacio de trabajo cliente con un directorio raíz de "nulo", lo que provocará forzosamente a usar directorio de trabajo actual como root.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top