the intellij intelijiidea idea full intellij-idea version-control mercurial changeset changelist

intellij-idea - intelijiidea - intellij vs eclipse



¿Qué es una lista de cambios en IntellJ IDEA? Una lista de cambios en comparación con qué? Se busca una explicación precisa. (1)

¿Qué es una lista de cambios en IntellJ IDEA? Una lista de cambios en comparación con qué? ¿Qué significa que puedo tener múltiples listas de cambios?

Especialmente, cuando vuelvo a una versión anterior (usando VCS), IntelliJ quiere crear una nueva lista de cambios para eso. ¿Por qué? En ese caso los cambios estarán relacionados con qué? Digamos que vuelvo a la versión 9 de la versión 23. ¿Entonces la lista de cambios contendrá los cambios entre la versión 23 y 9 o entre 8 y 9?

Intenté leer la documentación, pero no me proporcionó ninguna explicación.

¿La lista de cambios IntelliJ es la misma que, por ejemplo, el concepto de conjunto de cambios en Mercurial, en cuyo caso la lista de cambios es solo otro nombre para un nodo en el gráfico del historial de revisiones, conceptualmente?


Una lista de cambios es un conjunto de archivos que ha cambiado en comparación con el historial de control de versiones. Se diferencia de un conjunto de cambios de control de versión en que se crea un conjunto de cambios de control de versión cuando confirma el código. Una lista de cambios de IDEA está presente mientras edita el código, y luego se borra cuando confirma el código.

Las listas de cambios de IDEA le permiten hacer un seguimiento de los cambios que está realizando. Puede ver rápidamente todos los archivos que tienen cambios (en comparación con la última actualización / extracción del control de versión). Son muy útiles porque tiene varios conjuntos de cambios creados a la vez (pero solo uno activo), y se pueden vincular a tareas (es decir, tickets o rastreadores de errores).

Así que digamos que estoy trabajando en "nueva función de búsqueda". Creo una lista de cambios para eso y la hago activa. A medida que codifico, todos mis cambios pasan a esa lista. Mientras trabajo, recibo una solución de error de emergencia para un DB Hang. Creo una lista de cambios "DB Hang" y la hago activa. Ahora, cualquier cambio / edición que haga en la lista de cambios "Bloqueos de DB". Cuando termine, solo puedo enviar archivos a la lista de cambios "DB Hangs". Esto evita cualquiera de los archivos que cambié mientras trabajaba en la tarea "nueva función de búsqueda" (aún incompleta). Una vez que se confirma la corrección del código "DB Hangs", activo la lista de cambios de "nueva función de búsqueda" y (lo más probable) borro la lista de cambios de "DB Hangs" y continúo con la codificación de la nueva función de búsqueda. Personalmente también tengo una lista de cambios "No comprometer" donde coloco los archivos modificados que no quiero comprometer con el control de versiones (por ejemplo, cambios en un archivo de configuración para pruebas aisladas / locales). Nota: puede mover fácilmente los archivos modificados de una lista de cambios a otra.

Cuando tiene varias listas de cambios, como el ejemplo de error anterior, si intenta modificar un archivo en la lista de cambios activa que también está en una lista de cambios inactiva, IDEA le advierte y el nombre del archivo se vuelve rojo. Por ejemplo, digamos que como parte de mi trabajo inicial para la "nueva función de búsqueda" hice un cambio a "User.java" que depende de una cantidad de archivos nuevos que creé para el trabajo de la "nueva función de búsqueda". Luego, obtengo el error de emergencia y hago y cambio a la lista de cambios "DB Hangs". Cuando estoy corrigiendo ese error, me doy cuenta de que necesito hacer un cambio en User.java. Cuando comienzo a editar el archivo, IDEA me advierte que es parte de otro conjunto de cambios. Esto me impide más adelante cometer User.java sin el nuevo código del que depende y, por lo tanto, romper la compilación. Cuando reciba esa advertencia, tengo que tomar una decisión sobre cómo manejarlo. Podría guardar la lista de cambios de la "nueva función de búsqueda" antes de editar User.java para la corrección de "DB cuelga" y luego quitarla. (Esto suele ser lo mejor que se puede hacer cuando se necesitan muchos archivos en ambas correcciones). Alternativamente, podría mover el archivo a la lista de cambios "Db Hangs". Luego, si determino que los cambios son correctos para ir con la corrección de errores (es decir, no tiene otras dependencias), puedo comprometerme juntos. O puedo revertir los cambios en ese archivo. (Y luego usa la historia local más tarde para recuperarlos). O podría comentar los cambios. Etc.

ACTUALIZAR

Lo siento, olvidé responder a esta pregunta:

Especialmente, cuando vuelvo a una versión anterior (usando VCS), IntelliJ quiere crear una nueva lista de cambios para eso. ¿Por qué? En ese caso los cambios estarán relacionados con qué? Digamos que vuelvo a la versión 9 desde la versión 23. Luego, la lista de cambios contendrá los cambios entre la versión 23 y 9 o entre 8 y 9

Al cambiar a una versión VCS diferente, IDEA solo querrá crear una nueva lista de cambios si ha realizado cambios en el código de la versión que estaba anteriormente activa. La razón de ello es que los cambios de código que realizó son "cambios a la versión 23 de este archivo". Cuando vuelve a la versión 9, esos cambios ya no son válidos per se. Se supone que desea realizar un seguimiento de los cambios que realice en la versión 9 por separado. Nunca me he encontrado en esta situación (según mi flujo de trabajo personal para trabajar con versiones anteriores o sucursales). Pero si quería usar los cambios que realizó mientras veía la versión 23 con la versión 9, debería poder pasar a la nueva lista de cambios o activar la lista de cambios original.