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

25 comentarios en «Comparar archivos en Linux»

  1. @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

  2. @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.

  3. 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.

  4. 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.

  5. Pingback: Comparando comparando… « Que che vou contar…

  6. Pingback: meld, el diff y merge gráfico « El Blog de rubensa

  7. Pingback: El blog de neonigma » Archivo del Blog » Comparar archivos y carpetas de archivos en Linux

  8. 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.

  9. 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.

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

Responder a RETRE Cancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.