Comparar archivos en Linux

En Linux existe un comando de consola llamado diff que nos permite ver los cambios realizados entre dos versiones de un archivo; también tenemos un comando llamado merge que sirve para combinar cambios. Existen varios programas con interfaz gráfica con el mismo propósito. Uno de estos programas es meld.

Meld nos muestra las diferencias entre dos archivos o entre todos los archivos de dos directorios utilizando distintos colores, y nos permite editar estos archivos desde el propio programa, actualizando dinámicamente las diferencias. El programa incluye filtros y distintas ayudas para hacer la edición más sencilla, como flechas al lado de los cambios para aplicar algún cambio en el otro fichero con un simple clic.

Comparar archivos en Linux

Además meld se puede utilizar como un sencillo cliente de control de versiones para CVS, Subversion, Bazaar y otros.

Para instalarlo en Ubuntu:

sudo aptitude install meld

Comentarios
  1. Foxandxss

    Muy bueno el programa, y perfecto si es python, así puedo aprender como hacer ciertas cosillas que hace meld 😛

    Responder

  2. En Windows hay un programa parecido llamado WinMerge. Una de las ventajas que tiene es que tiene coloreado de sintaxis para varios lenguajes, así que ayuda mucho cuando estás comparando códigos:

    http://winmerge.org/

    Responder

    • radamantis

      Windows? Que es eso? XD (va en broma)

      Responder

  3. Meld también tiene resaltado de sintaxis 🙂 Utiliza el gtksourceview

    Responder

  4. Johao

    Hace tiempo que buscaba algo así, ahora bien, ¿Cómo puedo utilizar gtksourceview?.

    Gracias por la ayuda.

    Responder

  5. D’oh!

    Responder

  6. @Johao gtksourceview es un widget de gtk. ¿Estás preguntando por cómo programar una aplicación que use ese widget o por cómo activar el resaltado de sintaxis en Meld?

    Si es lo primero aquí tienes la API

    Si es lo segundo, Configuración -> Preferencias -> Editor -> Usar resaltado de sintaxis

    Responder

  7. Johao

    @Zootropo gracias, era lo segundo, ni siquiera lo había visto; aunque no me funciona con archivos php, si lo hace en html, ¿hay que hacer algo más¿.

    Lo siento, ya se que esto no es un foro.

    Salu2.

    Responder

  8. Parece ser que con algunos lenguajes no funciona el resaltado de sintaxis para el código en Meld debido a que no le reportan correctamente el tipo del archivo al widget (descripción del bug).

    Pero en la misma página hay un parche que se puede aplicar a /usr/lib/meld/filediff.py y que en teoría debería solucionarlo.

    Responder

  9. Ok, para todos los que necesiten resaltado de sintaxis puedo confirmar que funciona.

    Editamos /usr/lib/meld/filediff.py

    sudo gedit /usr/lib/meld/filediff.py

    y sustituimos el código del if sourceview_available: por:

    if sourceview_available:
        import gnomevfs
        def set_highlighting_enabled(buf, fname, enabled):
            man = gsv.SourceLanguagesManager()
            cwd = gnomevfs.URI(os.getcwd())
            if str(cwd)[-1] != '/':
                cwd = cwd.append_string('/')
            file = cwd.resolve_relative(fname)
            file_info = gnomevfs.get_file_info(file, gnomevfs.FILE_INFO_GET_MIME_TYPE)
            gsl = man.get_language_from_mime_type( file_info.mime_type )        
            if gsl:
                buf.set_language(gsl)
            buf.set_highlight(enabled)

    Cuidado con los espacios. Los bloques en Python tienen que estar indentados.

    Responder

  10. Realmente Meld puede comparar hasta tres archivos o directorios.

    Responder

  11. Sin duda ya lo voy a probar. Podría utilizarse quizás para comprobar los checksums entre varios archivos, ¿no creéis?

    Un saludo,

    Antonio
    Tecnobot.com

    Responder

  12. […] Fonte:: -mundoGeek- […]

    Responder

  13. […] Vía Posted by rubensa Filed in Ubuntu […]

    Responder

  14. […] Visto en Mundo Geek […]

    Responder

  15. JEJEJE! navegando por la red vengo a parar a uno de mis blogs favoritos desde google! ta bn lo meld muy buena app!

    Responder

  16. ivan

    hago una consulta, se puede integrar al subversion?
    osea en vez de hacer un svn diff hacer svn meld, gracias

    Responder

  17. Gracias por el tip me ayudo muchisimo ya que necesitaba comparar directorios y funciono a la perfección
    Salu2

    Responder

  18. Ares

    En Windows también hay un comando, se llama fc.

    En cuando a meld por lo visto no sirve para comparar archivos si son binarios.

    Responder

  19. Ares

    Olvidaba decir, que aunque no he probado a meld del todo kDiff3 me parece más completo o al menos más parecido a WinMerge.

    Responder

  20. RETRE

    meld parece bastante útil por lo menos a mi me va bien para comparar ficheros de configuración.

    Responder

  21. wolvies

    Gracias.

    Responder

  22. CeS

    Hola, tengo un problema, Meld no me deja activar la casilla de “mostrar espacios en blanco”, de las preferencias, lo he probado casi todo y no hay manera, alguien ha tenido este problema o sabe cómo lo puedo solucionar?

    Gracias.

    Responder

  23. CeS

    Solucionado, en fedora 16 es necesario instalar los paquetes gtksourceview2 y pygtksourceview para poder usar esas opciones de las preferencias.

    Responder

  24. Peronadieo

    Algunos otros programas para comparar ficheros a revisar: http://www.sysadmit.com/2016/05/linux-diferencias-entre-dos-archivos.html

    Responder

Deja un comentario