Mientras trabaja en un proyecto en el Entorno de trabajo, puede que otros miembros del equipo comprometan cambios en la copia del proyecto que se encuentra en el repositorio. Para obtener estos cambios, puede "actualizar" el Entorno de trabajo para que coincida con el estado de la rama. Los cambios que verá serán específicos de la rama cuyo compartimiento se ha configurado en el proyecto del Entorno de trabajo. El usuario controla cuándo desea actualizarse.
El mandato de actualización puede emitirse desde dos lugares: el menú Equipo > Actualizar o la vista Sincronizar. Para comprender las diferencias que existen entre estos dos mandatos, es importante conocer los tres tipos distintos de cambios entrantes.
Al seleccionar Equipo > Actualizar, el contenido de los recursos locales se actualizará con los cambios entrantes de los tres tipos anteriores. Para los conflictos no conflictivos y autofusionables, no es necesaria ninguna acción adicional (para los conflictos autofusionables, el recurso local modificado se traslada a un archivo con prefijo ".#", en caso que la autofusión no fuera lo que el usuario deseaba). No obstante, para los conflictos no autofusionables, los conflictos se fusionan en el recurso local utilizando texto de marca específico de CVS (para archivos ASCII) o el recurso local modificado se traslada a un archivo con prefijo ".#" (para archivos binarios). Esto coincide con el comportamiento de la línea de mandatos de CVS, pero puede ser problemático cuando se combina con el mecanismo de autoconstrucción de Eclipse. Además, suele ser deseable conocer cuántos cambios entrantes hay antes de actualizar los recursos locales. Estos temas se solucionan en la vista Sincronizar.
Para abrir la vista Sincronizar en modalidad entrante:
En modalidad entrante, verá los cambios que se hayan comprometido en la rama desde la última actualización. La vista indicará el tipo de cada cambio entrante. Existen dos mandatos de actualización (disponibles en el menú contextual de cualquier recurso de la vista) para enfrentarse a los distintos tipos de conflictos: Actualizar y Alterar temporalmente y actualizar. Al seleccionar el mandato Actualizar en la vista Sincronizar, todos los cambios conflictivos entrantes y autofusionables se procesan, mientras que los conflictos no autofusionables no se actualizarán (los archivos que se hayan procesado satisfactoriamente se eliminan de la vista). El mandato Alterar temporalmente y actualizar opera sobre los conflictos y sustituye los recursos locales por el contenido remoto. Este comportamiento de "sustitución" raramente será el deseado. A continuación se describirá una alternativa.
Para actualizar archivos no conflictivos y autofusionables:
Si el Entorno de trabajo local contiene cambios salientes que no sean autofusionables con cambios entrantes de la rama, entonces, en vez de realizar la operación Alterar temporalmente y actualizar, puede fusionar las diferencias en el Entorno de trabajo manualmente, de la siguiente manera:
Nota: el contenido del repositorio no se cambia cuando se realiza una actualización. Cuando acepta cambios entrantes, estos cambios se aplican en el Entorno de trabajo. El repositorio sólo se cambia al comprometer los cambios salientes.
Sugerencia: En la vista Sincronizar, al seleccionar un ancestro de un conjunto de cambios entrantes se realizará la operación en todos los hijos correspondientes. Por ejemplo, al seleccionar la carpeta superior y elegir Actualizar, se procesarán todos los cambios conflictivos entrantes y autofusionables y se dejarán todos los demás cambios entrantes sin procesar.
Aviso: el comportamiento del mandato Alterar temporalmente y actualizar que se ha descrito anteriormente sólo es aplicable en la modalidad entrante de la vista Sincronizar. En la modalidad Entrante/Saliente de la vista, el comportamiento en los cambios entrantes y en los conflictos es el mismo, pero el mandato revertirá los cambios salientes al contenido existente en el repositorio. Debe actuar con gran precaución al utilizar este mandato en modalidad Entrante/Saliente.
Programación en equipo con CVS
Sincronizar con un repositorio CVS
Comprometer
Resolver conflictos
Comparar recursos
Ciclo de vida del control de versiones: añadir y excluir
recursos