Software manual de comparación de carpetas gráficas en Linux

Hay docenas de herramientas de comparación/sincronización/combinación de archivos/carpetas, pero estoy buscando una interfaz gráfica específica y una funcionalidad que sea bastante simple pero, lamentablemente, bastante difícil de encontrar:

  1. Elija manualmente dos carpetas para comparar; ninguno se especifica como origen o destino
  2. Escanee las dos carpetas y muestre las diferencias:
    • la pantalla está en una interfaz dividida horizontalmente de dos paneles
    • en cada panel, se muestra una vista de árbol separada para la carpeta correspondiente
    • las carpetas se expanden en cada árbol solo si contienen archivos nuevos o modificados
    • 'modificado' puede ser por contenido (por precisión) o por marca de tiempo (por velocidad)
    • solo los archivos nuevos o modificados se muestran debajo de cada carpeta expandida
  3. Seleccione archivos de varias formas:
    • comience seleccionando todos los archivos nuevos en el árbol izquierdo o derecho; o todos los archivos modificados en ambos árboles (las carpetas afectadas se expanden automáticamente si se contrajeron previamente)
    • opcionalmente, anule la selección de archivos en una carpeta específica, simplemente contrayéndolos
    • opcionalmente, ajuste la selección de archivos individuales, mediante acciones comunes del mouse como un solo clic, shift-clic, control-clic, shift-drag, control-drag, etc.
    • alternativamente, haga una selección manualmente solo con las acciones del mouse, sin comenzar con todos los archivos nuevos/modificados
  4. Copie los archivos seleccionados, ya sea de izquierda a derecha o de derecha a izquierda; o elimine los archivos seleccionados de la izquierda, la derecha o ambos árboles
  5. Repita los pasos 3 y 4 de forma interactiva, actualizando ocasionalmente la vista volviendo al paso 2, hasta que las dos carpetas sean idénticas.

Estoy haciendo esa comparación como todos los días para sincronizar manualmente carpetas entre máquinas que usan un disco portátil. Mi carpeta típica contiene alrededor de 30 000 archivos en 5 000 subcarpetas y tiene un total de alrededor de 30 Gbytes. Debido al tamaño, en realidad no comparo el contenido del archivo, sino solo las marcas de tiempo. Una sesión típica toma alrededor de 2-3 minutos para los cambios de un día. Después de, por ejemplo, un mes de cambios, puede tomar alrededor de 15 minutos porque hay más para revisar.

Poder hacer la comparación manualmente es importante porque, por ejemplo, puedo haber movido, copiado o eliminado un archivo por accidente durante el día sin darme cuenta, y puedo descubrirlo y corregirlo durante la comparación. Es imposible hacer esto automáticamente; necesita un proceso manual y una interfaz gráfica conveniente.

He estado usando araxis merge por más de 10 años. Su modelo de uso es exactamente como se describe y quedé muy contento con él, al menos en Windows. Desafortunadamente, no solo es comercial, sino que tampoco está disponible para Linux. Usarlo sobre el vino es una experiencia muy pobre. Peor aún, al actualizar a Kubuntu 14.04 con Wine 1.4-1.7, el programa se congela cuando lo muevo a otra pantalla. Así que estoy buscando alternativas una vez más.

Beyond compare ofrece la misma funcionalidad y está disponible para Linux, pero nuevamente, es comercial. Además, no puede expandir carpetas automáticamente como la combinación de Araxis (solo si contienen archivos nuevos o modificados). Tienes que expandir todas las carpetas para ver las diferencias.

También probé meld , que es gratuito y está disponible para Linux. Parece que ofrece la misma funcionalidad, y es bastante bonito. Desafortunadamente, es extremadamente lento y su interfaz deja de responder, por lo que es prácticamente inútil en carpetas grandes como la mía.

Entonces, ¿hay alguna otra alternativa en Linux, preferiblemente gratuita, que ofrezca esta funcionalidad como la descrita anteriormente?

¿Puedo sugerir cambiar a un VCS distribuido como Mercurial? Es gratis, con la interfaz de tortuga puede revertir los cambios accidentales y la fusión con el disco portátil tomará unos segundos. También se beneficiará de un historial de cambios.

Respuestas (3)

Hay un candidato interesante que no mencionaste: no traté de adaptarlo a tus requisitos, pero ciertamente vale la pena intentarlo.

Creo que KDE komparees una de las mejores herramientas en esta área, directorioy diff GUI .

Como no necesita una herramienta de combinación, puede ser una ventaja que tenga una interfaz de usuario menos compleja, en comparación con, meldpor ejemplo.
Pero, por otro lado, es posible que esté utilizando algunas funciones de la interfaz de usuario relacionadas con mergetool que pueden faltar aquí.

Lo que ve en la captura de pantalla es un grupo de ventanas acoplables, por lo que puede organizar u ocultar libremente partes de él.
Hay listas de archivos, una lista de pares de archivos coincidentes, una lista de "fragmentos" de diferencia y la vista de diferencias de texto.
Lo que no se muestra es un panel que muestra la diferencia de texto.

Independientemente de la funcionalidad en sí, la configurabilidad detallada y consistente de las GUI de KDE también debería ser útil si se usa con frecuencia.


captura de pantalla de <code>kompare</code>

"Kompare" del cargador original fue Robamler en en.wikipedia - Transferido de en.wikipedia; se indicó que la transferencia fue realizada por el usuario: Nog2.. Con licencia de Creative Commons Attribution-Share Alike 3.0 a través de Wikimedia Commons

man kompare

Darle una oportunidad,sudo apt-get install kompare

Gracias. Probé kompare, pero después de jugar un poco, parece que no se acerca a la funcionalidad y la interfaz que he descrito.

EDITAR: Mi mal, ignore la respuesta, no vi que las comparaciones automáticas son algo que no desea usar. El uso de la salida --verbose de rsync podría ayudar de todos modos a ver las diferencias, incluso si solo usa la --dry runopción.

Según el uso que está describiendo, rsyncpodría ser una alternativa muy rápida. Digamos que tiene una carpeta llamada Important_stuffque desea mantener sincronizada entre una computadora y un disco duro externo. Podrías usar el comando:

rsync --recursive --update --times --verbose --exclude=Music* 'path/to/Important_stuff/ /path/to/externalhd/Important_stuff_backup

La --recursiveopción irá a la profundidad de la carpeta para subcarpetas y archivos, la --updateopción solo reemplazará los archivos más antiguos con archivos más nuevos con el mismo nombre y agregará a la carpeta de destino archivos nuevos mientras deja todo lo demás en su lugar. La --timesopción le dice a rsync que use solo la marca de tiempo para hacer las comparaciones, --verbosees tener una salida del comando, especialmente si aparecen problemas y --excludeayuda a excluir archivos y carpetas que no desea duplicar. Hay que tener cuidado con la ruta: la carpeta de origen necesita un '/' al final, mientras que el destino no lo necesita.

El comando se puede escribir en un archivo de texto, de modo que la próxima vez que desee sincronizar cosas simplemente haga: sh Impstuff_to_disk.sh.

He estado usando este método durante años y funciona bien para copias de seguridad manuales periódicas. El método no involucra ninguna GUI, pero puede usar un administrador de archivos como Double Commander para comparaciones simples. La captura de pantalla muestra la selección de archivos que existen en una carpeta y no en la otra (Marcar>Comparar directorios):

Captura de pantalla Comandante doble

¿Puedo sugerirle que pruebe kdiff3 ? Si bien la interfaz gráfica no es exactamente como usted especifica, ya que enumera una representación fusionada con los diferentes archivos y directorios codificados por colores, puede realizar casi todas las operaciones que necesita más fusiones de 3 vías.

  • Gratis/Gratis
  • Múltiples plataformas, KDE, Windows, Mac, otros
  • Oculte opcionalmente los archivos coincidentes
  • Opcionalmente, especifique una carpeta de destino
  • Puede elegir entre A->B, B<-A, Eliminar ambos y, para los archivos de texto, Combinar línea por línea, Líneas de A y luego B, Líneas de B y luego A, etc.
  • fusiones de 3 vías
  • Muchas opciones, menos exhaustivas y seguras, para acelerar las cosas
  • Ignorar patrones para nombres de archivos y directorios
  • Muchas otras configuraciones, como ignorar las diferencias de espacios en blanco.

ingrese la descripción de la imagen aquí