A veces utilizo la función 'Reconciliar trabajo sin conexión ...' que se encuentra en el IDE de P4V de Perforce para sincronizar los archivos en los que he estado trabajando mientras estaba desconectado del depósito de P4. Lanza otra ventana que realiza un 'Folder Diff'.
Tengo archivos que nunca quiero registrar en el control de fuente (como los que se encuentran en la carpeta bin, como DLL, salida generada por código, etc.) ¿Hay alguna manera de filtrar esos archivos / carpetas para que no aparezcan como "nuevos"? adicional. Tienden a desordenar la lista de archivos que realmente me interesan. ¿Tiene P4 el equivalente a la función 'ignorar archivo' de Subversion?
Respuestas:
A partir de la versión 2012.1, Perforce admite la
P4IGNORE
variable de entorno. Actualicé mi respuesta a esta pregunta sobre cómo ignorar directorios con una explicación de cómo funciona. Entonces noté esta respuesta, que ahora es superflua, supongo.Suponiendo que tiene un cliente llamado "CLIENTE", un directorio llamado "foo" (ubicado en la raíz de su proyecto), y desea ignorar todos los archivos .dll en ese árbol de directorios, puede agregar las siguientes líneas a la vista del espacio de trabajo para lograr esta:
La primera línea los elimina del directorio "foo" y la segunda línea los elimina de todos los subdirectorios. Ahora, cuando 'Conciliar trabajo sin conexión ...', todos los archivos .dll se moverán a las carpetas "Archivos excluidos" en la parte inferior de la pantalla de diferencias de carpetas. Estarán fuera de tu camino, pero aún puedes verlos y manipularlos si realmente lo necesitas.
También puede hacerlo de otra manera, lo que reducirá su carpeta "Archivos excluidos" a solo una, pero no podrá manipular ninguno de los archivos que contiene porque la ruta estará dañada (pero si solo los quiere fuera a tu manera, no importa).
fuente
Reconcile Offline Work
diálogo. Funciona si lo abres por dentro,Advanced Reconcile...
pero esto es inútil porque en el 99,9% de las veces no necesitas o no quieres usar el diálogo avanzado.Sí, pero.
Perforce versión 2012.1 agregó una función conocida como p4ignore , inspirada en Git. Sin embargo, los desarrolladores de Perforce hicieron un cambio en el comportamiento, sin justificación, que hace que la función sea mucho menos útil.
Mientras que Git toma las reglas de todos
.gitignore
archivos, Perforce no sabe dónde buscar hasta que especifique un nombre de archivo en una variable de entornoP4IGNORE
. Esta libertad es una maldición. No puede piratear dos repositorios que usan nombres diferentes para sus archivos ignorados.Además, la función de ignorar de Perforce no funciona bien. Puede configurarlo con bastante facilidad, pero otros no se benefician a menos que lo suscriban explícitamente. Un colaborador que no lo ha hecho puede enviar accidentalmente archivos no deseados (por ejemplo, una
bin
carpeta creada por un script de compilación).La función de ignorar de Git es excelente porque funciona de manera sencilla. Si los
.gitignore
archivos se agregan al repositorio ( todos hacen esto ), funcionarán bien para todos. Nadie publicará accidentalmente su clave privada.Curiosamente, los documentos de Perforce muestran '.p4ignore' como un ejemplo de regla de ignorar, que es al revés. Si las reglas son útiles, deben compartirse como parte del repositorio.
Perforce aún podría cumplir con la función. Elija una convención para los nombres de archivo, por ejemplo
p4ignore.txt
, para que la función funcione correctamente. Suelta laP4IGNORE
variable de entorno, es contraproducente. Edite los documentos para animar a los desarrolladores a compartir reglas útiles. Permita que los usuarios escriban reglas personales en un archivo en su carpeta de inicio, como lo hace Git .Si conoce a alguien en Perforce, envíele esta publicación por correo electrónico.
fuente
Esto funciona a partir de Perforce 2013.1, el nuevo mecanismo P4IGNORE se agregó por primera vez en la versión 2012.1, que se describe en el blog de Perforce aquí:
Como se describe actualmente, establece una variable de entorno "P4IGNORE" a un nombre de archivo que contiene una lista de los archivos para ignorar.
Así que puedes comprobarlo para ver cómo te gusta.
fuente
Si desea una solución que se aplique a todos los espacios de trabajo sin necesidad de copiarlo, usted (o su administrador de sistemas) puede rechazar el envío de esos tipos de archivos mediante el uso de líneas como las siguientes en la tabla de protección p4:
Recuerdo haber hecho esto antes, pero no tengo los permisos necesarios para probar esto aquí. Consulte la guía Sysadmin de Perforce y pruébela
fuente
Perforce Streams hace que ignorar archivos sea mucho más fácil, a partir de la versión 2011.1. Según la documentación, puede ignorar ciertas extensiones o ciertas rutas en su directorio.
De
p4 help stream
Esto esencialmente hace lo que especifica la respuesta de @ raven, pero se hace más fácil con las transmisiones, ya que se propaga automáticamente a cada espacio de trabajo que usa esa transmisión. También se aplica a las transmisiones heredadas de la transmisión en la que especifica los tipos ignorados.
Puede editar la transmisión a través de
p4 stream //stream_depot/stream_name
o hacer clic con el botón derecho en la transmisión en la vista de transmisión de p4v.Y como señaló @svec, la capacidad de especificar archivos ignorados por espacio de trabajo llegará pronto y, de hecho, se encuentra en P4 2012.1 beta.
fuente
La sugerencia de Will de usar
.p4ignore
solo parece funcionar con el complemento WebSphere Studio (P4WSAD). Lo intenté en mi caja de Windows local y los archivos y directorios que enumeré no fueron ignorados.La sugerencia de Raven de modificar las especificaciones de su cliente es la forma correcta en Perforce. La organización adecuada de su código / datos / ejecutables y los archivos de salida generados facilitará mucho el proceso de exclusión de archivos para que no se revisen.
Como enfoque más draconiano, siempre puede escribir un activador de envío que rechazará el envío de listas de cambios si contienen un determinado archivo o archivos con una determinada extensión, etc.
fuente
RESPUESTA HISTÓRICA - ya no es correcta. En el momento en que esto se escribió originalmente, era cierto;
No puede escribir y registrar un archivo que el servidor utilizará para hacer ignorar reglas; el patrón de archivo glob o regexp general se ignora forzosamente.
Otras respuestas tienen configuraciones de servidor globales que son globales (y no por carpeta). Las otras respuestas muestran cosas que podrían funcionar para usted, si desea una línea en su vista por carpeta multiplicada por el número de extensiones que desea ignorar en esa única carpeta, o que brindan esta capacidad solo en los complementos de WebSphere Studio, o brindan capacidad para el servidor administradores, pero no disponible para los usuarios.
En resumen, Perforce me parece realmente débil en esta área. Aunque aprecio que aquellos que usan el complemento Eclipse puedan usar
.p4ignore
, y creo que eso es genial, nos deja a los que no lo hacemos, en la oscuridad.ACTUALIZACIÓN: Vea la respuesta aceptada para la nueva capacidad P4IGNORE agregada a mediados de 2012.
fuente
He encontrado que es más fácil conciliar el trabajo fuera de línea usando un script BASH como este:
Adapté esto de este artículo de la base de conocimientos de Perforce .
fuente
También estoy buscando una solución similar a .p4ignore (y no una vinculada a un IDE en particular). Hasta ahora, lo más parecido que he encontrado es p4delta. Parece que hará exactamente lo que pedía el póster original, aunque a través de otra capa de indirecta.
http://p4delta.sourceforge.net
Desafortunadamente, aunque esto parece producir la lista adecuada de archivos, no puedo hacer que "p4delta --execute" funcione ("No se puede modificar una cadena congelada") y el proyecto no se ha actualizado en el año. Quizás otros tengan mejor suerte.
fuente
Si está utilizando el complemento Eclipse Perforce, la documentación del complemento enumera varias formas de ignorar los archivos.
fuente