www with whats what update tutorials learn features advantages version-control merge integration perforce

version-control - with - what''s git



¿Alguien puede explicar las opciones de integración? (3)

Específicamente:

  • ¿Por qué necesito habilitar explícitamente "Habilitar combinaciones sin fundamento" todo el tiempo? Me estoy integrando desde mi rama hasta el maletero.

  • ¿Qué significa "Habilitar integración sobre objetivos eliminados"? ¿No debería hacer esto por defecto? Si el archivo no existe y se integra a esa rama con el archivo, debe crear el archivo, ¿verdad?

  • ¿Qué tiene que ver la integración de "No obtener la última revisión de los archivos seleccionados"? Debería elegir una revisión de origen y un destino (para crear una nueva revisión de destino).

  • ¿Qué significa "ignorar el historial de integración indirecta"? Nunca lo he usado, ya que suena aterrador.

Agradecería saberlo, ya que no estoy seguro de qué opciones habilitar cuando intento realizar varias tareas de integración desde nuestro troncal a varias sucursales o viceversa. (No soy el maestro de la construcción, pero bueno, quiero saber lo que él sabe).


¿Por qué necesito habilitar explícitamente "Habilitar combinaciones sin fundamento" todo el tiempo? Me estoy integrando desde mi rama hasta el maletero.

No puedo ayudarte aquí. Algo no está bien.

¿Qué significa "Habilitar integración sobre objetivos eliminados"?

Si el archivo de destino se ha eliminado y el archivo de origen ha cambiado, volverá a ramificar el archivo de origen sobre el archivo de destino. Sin esta opción, un archivo en la rama, que ha sido modificado en la rama y eliminado en el troncal, no se permitiría volver a integrarse en el tronco.

¿No debería hacer esto por defecto?

No si está integrando un archivo de nuevo en el troncal, el cual bifurcó desde el troncal y luego lo eliminó. Normalmente, ''p4 integra'' evita mezclar ediciones sobresalientes con un archivo eliminado. Tienes que usar las opciones avanzadas para decirle cómo tratar un archivo eliminado.

Si el archivo no existe y se integra a esa rama con el archivo, debería crear el archivo, ¿verdad?

Al integrar un archivo, que nunca existió anteriormente (es decir, se agregó a la rama), de una ubicación a otra, sí, Perforce simplemente lo creará en la ubicación en la que se está integrando. Sin embargo, si el archivo originalmente vino del tronco, se eliminó en el tronco, y ahora está intentando integrarlo nuevamente en el tronco desde la rama, debe decirle qué hacer a través de estas opciones de integración. Aquí están los conmutadores de línea de comando a los que corresponden estas opciones:

  • Habilitar integraciones alrededor de revisiones eliminadas = -d
  • Integrar sobre objetivos eliminados = -Dt
  • Eliminar archivo de destino cuando se elimina la fuente = -Ds
  • Intente integrar los cambios cuando se elimine la fuente y se vuelva a agregar = -Di

Puede obtener más información sobre ellos en la ayuda de comandos de integración (escriba "p4 ayuda a integrar" en la línea de comandos).

¿Qué tiene que ver la integración de "No obtener la última revisión de los archivos seleccionados"?

Esto le indica a Perforce que use la revisión del área de trabajo del archivo de destino. De forma predeterminada, la revisión principal del archivo de destino se recupera automáticamente en el área de trabajo antes de integrarse. Supongamos que ha realizado una revisión de un archivo de bifurcación y lo ha integrado de nuevo en el tronco. El tronco y la rama ahora tienen dos revisiones de este archivo. Envía un cambio al archivo de sucursal por lo que ahora tiene 3 revisiones. Sincroniza el archivo de la rama de nuevo a la revisión 2. Si tuviera que realizar una integración normal en este momento, Perforce supondría que desea integrar todo hasta la revisión principal e integraría la revisión 3 del archivo de la rama en el tronco. Si seleccionara esta opción, diría "todas las revisiones ya integradas" porque tiene la revisión 2 en su área de trabajo. Sería lo mismo que intentar integrar con la opción "Limitar el rango de la integración:" establecida en "Integrar todas las revisiones hasta:" Revisión 2.

¿Qué significa "ignorar el historial de integración indirecta"? Nunca lo he usado, ya que suena aterrador.

No puedo entender, ni encontrar ninguna información acerca de lo que esto hace.


  1. En general, para combinar dos archivos, forzosamente busca una "base", la revisión más cercana a los dos archivos, y usa eso para proporcionar una mejor diferencia de diferencias que simplemente ejecutando directamente los dos archivos. Vea el artículo de la base de conocimiento . Sin saber su configuración de rendimiento, no podría decir qué estaba mal, sin embargo, p4win tiene algunas herramientas gráficas agradables para visualizar las ramas, es posible que pueda determinar por qué el rendimiento no puede encontrar una base para usted. Esto es también lo que hace "Ignorar el historial de integración indirecta": evita que busque la base.

  2. Para "no sincronizar con la cabeza": cuando se integra, su "destino" son los archivos en su cliente local, para los cuales no está especificando una revisión; en su lugar, perforce sincronizará tu cabeza de revisión (si no usas "-h"), o usará la que tienes actualmente. No puede especificar una revisión arbitraria porque su cliente local solo tiene una en particular.


"Habilitar integración sobre objetivos eliminados" puede llevar a problemas si se hace a ciegas. Este es un ejemplo: imagine que refactoriza su código en su próxima rama de lanzamiento y elimina un archivo de origen como resultado: la funcionalidad se fusionó con otros archivos de origen. A continuación, corrige un error en ese archivo fuente original en una rama de mantenimiento para la versión anterior. Si se integra más de la eliminación de forma predeterminada, el archivo de origen muerto vuelve, pero no se creará y el error no se habrá solucionado. Es mejor que se le advierta que esto ocurrió para poder fusionar manualmente la corrección en los otros archivos de origen.