Comparación y fusión de archivos

Opciones de la línea de órdenes

Comparar 2 archivos:

kdiff3 archivo1 archivo2

Fusionar 2 archivos:

kdiff3 archivo1 archivo2 -m
   kdiff3 archivo1 archivo2 -o archivosalida

Comparar 3 archivos:

kdiff3 archivo1 archivo2 archivo3

Fusionar 3 archivos:

kdiff3 archivo1 archivo2 archivo3 -m
   kdiff3 archivo1 archivo2 archivo3 -o archivosalida

Tenga en cuenta que archivo1 será tratado como base de archivo2 y archivo3.

Caso especial: Archivos con el mismo nombre
Si todos los archivos tienen el mismo nombre pero están en directorios diferentes, puede reducir el tipo de trabajo especificando el nombre del archivo sólo para el primer archivo. P.ej.:

kdiff3 directorio1/nombrearchivo directorio2 directorio3

Línea de órdenes para iniciar la comparación o fusión de un directorio:
Es muy similar, pero ahora sobre directorios.

kdiff3 directorio1 directorio2
   kdiff3 directorio1 directorio2 -o directoriodestino
   kdiff3 directorio1 directorio2 directorio3
   kdiff3 directorio1 directorio2 directorio3 -o directoriodestino

Para la comparación y fusión de directorios puede continuar leyendo aquí.

Opciones de la línea de órdenes
Para obtener más información sobre las opciones de la línea de órdenes utilice:

kdiff3 --help

Ejemplo de salida:

Opciones:
  -m, --merge               Fusiona la entrada.
  -b, --base archivo        Archivo base explícito. Por compatibilidad con ciertas herramientas.
  -o, --output archivo      Archivo de salida. Supone -m. Ejem.: -o nuevoarchivo.txt
  --out archivo             Archivo de salida, de nuevo. (Por compatibilidad con ciertas herramientas.)
  --auto                    Sin interfaz si todos los conflictos se resuelven de forma automática. (Necesita -o archivo)
  --qall                    No resuelve los conflictos automáticamete. (Por compatibilidad...)
  --L1 alias1               Reemplazo de nombre visible para la entrada del archivo 1 (base).
  --L2 alias2               Reemplazo de nombre visible para la entrada del archivo 2.
  --L3 alias3               Reemplazo de nombre visible para la entrada del archivo 3.
  -L, --fname alias         Reemplazo de nombre visible alternativo. Proporcione éste una vez para cada entrada.
  --cs string               Sobreescribe la configuración. Utilícelo una vez para cada opción. P.ej.: --cs "AutoAdvance=1"
  --confighelp              Muestra la lista de las opciones de configuración y sus valores actuales.
  --config file             Utiliza un archivo de configuración diferente.

La opción --cs le permite ajustar un valor de configuración que de otra forma solo sería ajustable a través del diálogo de configuración. Pero asegúrese de que cuando KDiff3 finalice se guarden los valores con las configuraciones nuevas. Con --confighelp puede encontrar los nombres de los elementos disponibles y los valores actuales.
A través de --config puede especificar un archivo de configuración diferente. Cuando utilice con frecuencia diferentes configuraciones para KDiff3 ésto le permitirá cambiar entre ellas.

Opciones de la línea de órdenes que se ignoran
Mucha gente quiere utilizar KDiff3 con algún sistema de control de versiones. Pero cuando el sistema de control de versiones llama a KDiff3 utilizando los parámetros de la línea de órdenes KDiff3 no los reconoce, y termina con un error. Las preferencias de integración le permiten especificar los parámetros de línea de órdenes que KDiff3 debería ignorar. Aparecerán en la ayuda de uso, de forma similar a este ejemplo:

--foo                     Ignored. (Definida por el usuario.)

Opciones de la línea de órdenes a ignorar:	Una lista de opciones separadas por punto y coma «;». Cuando aparezca una de estas opciones en una línea de órdenes, KDiff3 la ignorará y se ejecutará sin informar de ningún error (el valor predeterminado es «u;query;html;abort»).
Si ésto no es suficiente, se recomienda escribir un script para el intérprete de órdenes que traduzcan esta opción.

Diálogo abrir
Como se pueden seleccionar varios archivos de entrada, el programa tiene un diálogo de apertura especial:
El diálogo abrir le permite editar los nombres de los archivos manualmente, seleccionando un archivo a través del navegador de archivos («Archivo...») o permitir la elección de los archivos recientes a través de las listas desplegables. Si abre el diálogo nuevamente, el nombre actual continúa ahí. El tercer archivo de entrada no es necesario. si la entrada para «C» permanece vacía, solo se efectuará el análisis de diferencia de dos archivos.
Puede seleccionar un directorio a través de «Dir...». Si se especifica un directorio para A entonces comienza la comparación/fusión de directorios. Si en A especifica un archivo pero en B,C o en la salida se especifica un directorio, KDiff3 utiliza el nombre del archivo de A en los directorios especificados.
Si está seleccionado «Fusionar», la línea de «Salida» será editable. Pero no se necesita especificar el nombre de archivo de salida de forma inmediata. Puede postponerlo hasta que lo guarde.
El botón «Configurar...» abre el diálogo de opciones, de forma que pueda seleccionar las opciones antes de realizar el análisis.

Pegar y soltar la entrada
Algunas veces deseará comparar partes de un texto que no sea propiamente un archivo. KDiff3 también le permite pegar texto desde el portapapeles a la ventana de entrada de diff que tenga el foco. El análisis de las diferencias se producirá inmediatamente. En el diálogo abrir no necesitará especificar archivos entonces, ciérrelo con el botón «Cancelar».
También podrá utilizar arrastrar y soltar: Arrastre un archivo desde un administrador de archivos o seleccione texto en un editor y arrástrelo a la ventana de entrada.
¿Cuál es la idea? Algunas veces un archivo contiene dos funciones similares, pero comprobar las similitudes es un esfuerzo enorme si primero debe crear los archivos y luego cargarlos. Ahora bastará con copiar, pegar y comparar las secciones relevantes.
Nota: En estos momentos no podrá arrastrar nada desde KDiff3. Solo está soportado en la ventana de entrada diff.
Aviso: Algunos editores todavía interpretan arrastrar y soltar en otro programa como cortar (en lugar de copiar) y pegar. En este caso sus datos originales se perderían.

Interpretar la información en las ventanas de entrada

Línea de información
En la parte superior de cada ventana de texto se encuentra la «línea de información». Las líneas de información de las ventanas de entrada contienen una letra «A», «B» y «C», el nombre del archivo, un botón para el navegador, y el número de línea de la primera línea visible en la ventana (recuerde que la ventana «C» es opcional). Cada línea de información aparecerá con un color diferente.
Cuando selecciona otro archivo a través del navegador o termina de editar el nombre del archivo pulsando entrar, el nuevo archivo se cargará y se comparará con el(los) archivo(s) que ya estaba(n) cargado(s).

Coloreado
Las tres ventanas de entrada tienen asignadas las letras «A», «B» y «C». «A» tiene color azul, «B» verde y «C» magenta (estos son los valores predeterminados, pero puede cambiarlos en el menú Preferencias).
Cuando se detecta una diferencia el color mostrado en el archivo de entrada cambia. Cuando los dos archivos presentan diferencias el color utilizado para expresar esto es rojo de manera predeterminada («Color de conflicto» en las preferencias). Este esquema de color es especialmente práctico en el caso de que tenga tres archivos de entrada, tal y como se verá en la próxima sección (Fusionar).

Columna resumen
A la izquierda de cada texto se encuentra la «columna resumen». Si las diferencias se producen en una línea la columna resumen muestra el color correspondiente. Si la diferencia es sólo de espacios en blanco se marca el resumen. Para los lenguajes de programación en los que los espacios no son importantes es práctico para apreciar de un vistazo si se modificó algo importante. (En C/C++ los espacios en blanco sólo son interesantes en el interior de las cadenas, comentarios, para el preprocesador y en otra serie de extrañas situaciones).
La línea vertical que separa la columna resumen y el texto se interrumpe si el archivo de entrada no tiene líneas. Cuando se activa el ajuste de línea, esta línea vertical aparecerá punteada en las líneas ajustadas.

Columna de visión general
En el lado derecho podemos encontrar la columna «visión general», a la izquierda de la barra de desplazamiento. Muestra la columna de resumen comprimida de la entrada «A». todas las diferencias y conflictos se pueden apreciar de un vistazo. Cuando solo se utilizan dos ventanas de entrada, todas las diferencias aparecerán en rojo, ya que cada diferencia supondrá un conflicto. Un rectángulo negro marca la parte visible de las entradas. Para los archivos con entradas muy largas, cuando el número de líneas es más grande que la altura de la columna visión general en pixels, varias líneas de entrada compartirán una línea de visión general. Un conflicto tendrá más prioridad que las simples diferencias, que a su vez tendrán prioridad sobre lo no cambiado, de forma que no se pierdan las diferencias o los conflictos aquí. Pulsando sobre la columna de visión general se mostrará el correspondiente texto.

Líneas alineadas manualmente
Algunas veces el algoritmo sitúa líneas incorrectas unas al lado de otras. O desea comparar un trozo de texto con otro texto que está en una posición completamente diferente en el otro archivo. Para estas situaciones puede indicar a KDiff3 manualmente que alinee algunas líneas. Marque el texto que quiera alinear con el ratón, como si estuviera copiando y pegando, en la primera vista de diferencia y seleccione «Añadir alineación manual de diferencias» en el menú «Diffview» (acceso rápido de teclado «Ctrl-Y»). Aparecerá una barra naranja en la columna resumen al lado del texto seleccionado. Repita esto para la segunda y (si está disponible) para la tercera vista. KDiff3 recalculará inmediatamente las diferencias cada vez que haga esto, y alineará las líneas elegidas. Por supuesto, alguna de las líneas que antes coincidían puede que ya no coincidan.
En estos momentos el fusionado no soporta el uso de ayuda de diff manual.

Secciones de división y unión manual
En algunos casos KDiff3 verá muy pocas o demasiadas secciones diff para fusionar. Si éste es el caso puede unir o dividir las secciones existentes.
Añada secciones nuevas seleccionando primero el texto de las líneas situadas junto a las ventanas de entrada (para copiarlo al portapapeles). A continuación elija «Dividir Diff en la selección» en el menú «Fusionar». Las divisiones se añadirán encima de la primera línea bajo el texto seleccionado. Si solo desea añadir una sección, seleccione el texto por el que comienza la sección que desea dividir.
Para unir secciones en las ventanas de entrada seleccione varias líneas en las secciones que desea unir (puede unir varias secciones en un solo paso). A continuación elija «Unir las diferencias seleccionadas» en el menú «Fusionar».

Fusionar y la ventana del editor de la salida fusionada
La ventana del editor de la salida fusionada (bajo las ventanas de la entrada de diferencias) también tiene una línea de información sobre ella que mostrará «Salida», el nombre del archivo y «[Modificado]» si edita algo. Normalmente contendrá texto que podrá fusionarse automáticamente con facilidad, pero algunas veces también contendrá conflictos.
El guardado está desactivado hasta que se hayan resuelto todos los conflictos (utilice los botones «Ir al conflicto anterior/siguiente sin resolver» para encontrar los conflictos que falten).
Con sólo dos archivos de entrada, cada diferencia es también un conflicto que debe resolverse manualmente.
Con tres archivos de entrada el primer archivo se utiliza como base, mientras que el segundo y tercer archivos de entrada contienen las modificaciones. Si en cualquier línea solo tienen cambios la entrada B o la C pero no ambas se seleccionará automáticamente la fuente cambiada. Solo cuando B y C tengan cambios en las mismas líneas, la herramienta detectará un conflicto que debe resolverse manualmente. Cuando B y C sean iguales, pero diferentes a A, se seleccionará C.

La columna resumen
El editor de la salida de fusionado también tiene una columna resumen a su izquierda. Mostrará la letra de la entrada de la que se seleccionó la línea, o nada si las tres fuentes son iguales en esa línea. Para los conflictos mostrará un signo de interrogación «?» y la línea mostrará «<Conflicto de fusionado>», en rojo. Puesto que resolver los conflictos línea a línea es muy arduo, las líneas se agruparán en grupos que tengan las mismas diferencias y conflictos característicos. Pero los conflictos causados solo por espacios en blanco se separarán de los conflictos no causados por espacios en blanco para facilitar el fusionado de los archivos cuando el sangrado cambia en muchas líneas.

Configurar el grupo actual, sincronizado de fusión y posición de vista de diferencias
Cuando se pulsa en la columna resumen con el botón izquierdo del ratón en la ventana a la que pertenezca este grupo, se seleccionarán todas las ventanas y se mostrará el comienzo de este grupo (ésto implica un salto automático en la posición de la ventana si el principio del grupo no se encuentra visible). El grupo se convierte en el «grupo actual». Se resalta con la «gama (diff) de color del fondo actual» y aparecerá una barra negra en la parte izquierda del texto.

Seleccionar las entradas A, B o C para el conflicto actual y la edición
La barra de botones bajo el menú incluye tres botones para seleccionar las entradas que contienen las letras «A», «B» y «C». Pulse el botón selector de entrada para insertar (o eliminar si ya se ha insertado) las líneas de la fuente respectiva. Para seleccionar las líneas de varias entradas pulse los botones correspondientes en el orden que necesite. Por ejemplo, si desea que las líneas de «B» aparezcan antes de las líneas de «A» en la salida, pulse primero «B» y luego «A».
Si estaba utilizando la opción avance automático («Automáticamente ir al conflicto siguiente sin resolver después de una selección de origen»), debería desactivarla antes de elegir líneas desde varias entradas o editar líneas después de su elección. Sino lo hace KDiff3 saltará al siguiente conflicto después de elegir la primera entrada.
Suele ser práctico para editar directamente la salida resultante de la fusión. La columna resumen mostrará «m» para cada línea que se haya modificado manualmente. Cuando, por ejemplo, las diferencias estén alineadas de forma que la simple elección no sea satisfactoria, puede marcar el texto necesario y utilizar copiar y pegar de forma normal para situarlo en la salida de fusionado.
Algunas veces, cuando una línea se elimina bien por el fusionado o por la edición manual y no hay más líneas en este grupo, aparecerá el texto <Sin línea fuente>. Se coloca en lugar del grupo de forma que pueda cambiar de idea y seleccionar de nuevo la fuente. Este texto no aparecerá en el archivo guardado o en cualquier selección que copie y pegue.
El texto «<Conflicto de fusionado>» aparecerá en el portapapeles si copia y pega texto que la contenga. Pero tenga cuidado al hacerlo.

Seleccionar las entradas A, B o C para todos los conflictos
El fusionado normal se inicia resolviendo los conflictos sencillos automáticamente. Pero el menú «Fusionar» proporciona algunas acciones para otras necesidades habituales. Si ha seleccionado la misma fuente para más conflictos, podrá seleccionar «A», «B» o «C» en cualquier sitio, o solo para los conflictos pendientes de resolver, o para los conflictos sin resolver que sean debidos a espacios. Si desea decidir cada delta por sí mismo, puede «Establecer deltas a conflictos». O si desea volver a las elecciones automáticas de KDiff3 seleccione «Resolver automáticamente conflictos simples». KDiff3 reiniciará el fusionado. Para las acciones que cambien sus modificaciones anteriores KDiff3 le pedirá confirmación antes de realizarlo.
Nota: Cuando seleccione fuente para los conflictos de espacios en blanco sin resolver y las opciones «Ignorar números» o «Ignorar comentarios C/C++», los cambios en los números o en los comentarios se tratarán también como espacios en blanco.

Fusión automática de las claves de control de versión y del historial (registro)
Muchos sistemas de control de versión soportan claves especiales en el archivo (p. ej.: «$Date$$», «$Header$», «$Author$», «$Log$», etc.) Durante la descarga el sistema de control de versiones (VCS) cambia estas líneas. Por ejemplo, «$Date$» se cambiará por «$Date: 2005/03/22 18:45:01 $». Como esta línea será diferente en cada versión del archivo, podría requerir interacción manual durante la fusión.
KDiff3 ofrece fusionado automático para estos elementos. Para las líneas que coincidan con la opción «Fusionar automáticamente expresión regular» en todos los archivos de entrada de KDiff3 se elegirá la línea desde B o -si está disponible- desde C (adicionalmente es necesario que las líneas en cuestión si las comparamos con las líneas anteriores no han de tener conflictos). Esta fusión automática también se puede ejecutar de forma inmediata después de iniciar la fusión (active la opción «Ejecutar expresión regular de fusión automática al iniciar la fusión») o posteriormente a través del menú de fusión «Ejecutar expresión regular de fusión automática»).
También está soportada la fusión automática para el historial de control de versión (también llamado «registro»). El historial de fusión automática se puede ejecutar automáticamente cuando se inicie la fusión activando la opción «Resolver automáticamente los conflictos del historial».
Normalmente el historial de control de versión comienza con una línea que contiene la palabra clave «$Log$». Ésta deberá coincidir con la opción «El historial comienza con la expresión regular». KDiff3 detecta que las siguientes líneas se encuentran en el historial analizando los caracteres importantes que se encuentran delante de la palabra clave «$Log$». Si el mismo «comentario importante» también aparece en las siguientes líneas, también éstas se incluirán en el historial.
Durante cada descarga el VCS escribe una única línea especificando la versión, fecha, e información horaria seguida de líneas con comentarios del usuario. Estas líneas forman una entrada de historial. Esta sección del historial crece cada vez que descarga de forma que las entrada más recientes aparecerán en la parte superior (después de la línea de inicio del historial).
Cuando dos o más desarrolladores que están realizando un desarrollo paralelo descargan una rama de un archivo la fusión del historial contendrá varias entradas que aparecerán como conflictos durante la fusión de las ramas. Como esta fusión puede ser muy aburrido, KDiff3 ofrece soporte con dos posibles estrategias: Insertar la información del historial de ambos colaboradores en la parte superior u ordenar la información del historial por una clave definida por el usuario.
El método que simplemente inserta las entradas es fácil de configurar. KDiff3 solo necesita un método para detectar qué líneas pertenecen a una entrada del historial. La mayor parte de los VCS insertan una línea vacía después de cada entrada del historial. Sino hay otras líneas vacías, éste criterio es suficiente para KDiff3. Seleccione «Entrada del historial que inicia una expresión regular». Si el criterio de la línea vacía no es suficiente, puede especificar una expresión regular para detectar el inicio de la entrada del historial.
Tenga en cuenta que KDiff3 eliminará las entradas duplicadas del historial. Si una entrada aparece varias veces en el historial de un archivo de entrada, solo permanecerá una en la salida.
Si desea ordenar el historial, debe especificar cómo se debe construir la clave de ordenación. Utilice paréntesis en «Entrada del historial que inicia una expresión regular» para agrupar partes del a expresión regular que se deberían utilizar posteriormente para la tecla de ordenación. A continuación especifique «Orden de la clave de ordenación que inicia la entrada del historial» especificando una lista de números separados por una coma «,» para referirse a la posición del grupo en la expresión regular.
Debido a que no es sencillo de hacer al primer intento, podrá comprobar y mejorar la expresión regular y la generación de clave en un diálogo dedicado pulsando el botón «Comprobar sus expresiones regulares».
Ejemplo: Supongamos que tenemos un historial similar a este:

/**************************************************************************
** HISTORIAL:    $Log: \vista_principal_de_tom\MiAplicación\src\algoritmocomplejo.cpp $
**
**     \main\rama_integración_12   2 Abr 2001 10:45:41   tom
**  rama fusionada simon_rama_15.
**
**     \main\henry_correccionerrores_rama_7\1   30 Mar 2001 19:22:05   henry
**  mejora la velocidad de la subrutina convertToMesh().
**  Eliminación de fallo.
**************************************************************************/

La línea de comienzo del historial es la que coincida con la expresión regular ".*\$Log.*\$.*". Las siguientes son las entradas del historial.
La línea con «$Log$» -la palabra clave comienza con dos «*» seguidos de un espacio. KDiff3 utiliza la cadena con el primer espacio no vacío como «comentario importante» y asume que el historial finaliza en la primera línea sin este comentario importante. En este ejemplo la última línea finaliza con una cadena que también comienza con dos «*», pero en lugar de un caracter de espacio le siguen más «*». Por tanto, esta línea finalizará el historial.
Sino es necesaria la ordenación del historial entonces la entrada del historial comenzará con una línea de expresión regular como ésta (esta línea se divide en dos porque sino no se puede ajustar)

\s*\\main\\\S+\s+[0-9]+ (Ene|Feb|Mar|Abr|May|Jun|Jul|Ago|Sep|Oct|Nov|Dic)
 [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*

Para obtener detalles sobre las expresiones regulares por favor, consulte la documentación de las expresiones regulares de Trolltech. Tenga en cuenta que «\s» (con la «s» minúscula) coincidirá con cualquier espacio y «\S» (con «S» mayúscula) coincidirá con lo que no sean espacios en blanco. En nuestro ejemplo la entrada del historial deberá contener primero la versión de información de la expresión regular "\\main\\\S+", la fecha formada por el día «[0-9]+», més «(Ene|Feb|Mar|Abr|May|Jun|Jul|Ago|Sep|Oct|Nov|Dic)» y año «[0-9][0-9][0-9][0-9]», la hora «[0-9][0-9]:[0-9][0-9]:[0-9][0-9]» y finalmente el nombre de registro del desarrollador «.*».
Observe que el «comentario importante» (en el ejemplo «**») lo eliminará KDiff3 antes de buscar la coincidencia, de ahí que la expresión regular comience con con una expresión regular para ninguno o más espacios en blanco «.*». Puesto que los caracteres de comentario puede ser diferentes en cada archivo (por ejemplo, C/C++ utilizan caracteres de comentarios diferentes a los que utiliza Perl script) KDiff3 tiene en cuenta los caracteres de los comentarios y no debería especificarlos en la expresión regular.
Si necesita un historial ordenado, se calculará la clave de ordenación. Para esta las partes relevantes en la expresión regular se deben agrupar entre paréntesis (los paréntesis adicionales puede mantenerse aunque desactive la ordenación del historial).

(Ene|Feb|Mar|Abr|May|Jun|Jul|Ago|Sep|Oct|Nov|Dic)
 ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)

Los paréntesis ahora contendrán: 1. versión de información, 2. día, 3. mes, 4. año, 5. hora, 6. nombre. Pero si deseamos ordenarlos por fecha y hora, necesitará construir una clave con los elementos en un orden de aparición diferente: Primero el año, seguido del mes, día, hora, información de versión y nombre. De ahí que el orden de la clave de ordenación que se deba especificar sea «4,3,2,5,1,6».
Ya que los nombres de los meses no son buenos para la ordenación («Abr» iría primero) KDiff3 detectará que son nombres de meses y utilizará números en su lugar («Abr»->«04»). Si se encuentra un número puro se transformará en un valor de 4 dígitos con ceros significativos para la ordenación. Finalmente la clave de ordenación resultante que iniciará la primera entrada del historial será:

2001 04 0002 10:45:41 rama_integración_12   tom

Para obtener más detalles consulte también Preferencias de fusionado.

Navegación y edición
La mayor parte de la navegación puede realizarse con las barras de desplazamiento y el ratón, pero también puede navegar con las teclas. Si pulsa en cualquier ventana puede utilizar los cursores izquierdo, derecho, arriba, abajo, página arriba, página abajo, inicio, fin, Ctrl-Inicio, Ctrl-Fin tal y como lo haría en otros programas. La columna vista general situada al lado de la barra vertical de desplazamiento en los archivos de entrada también puede utilizarse para navegar pulsando sobre ella.
También puede utilizar la rueda del ratón para desplazarse arriba y abajo.
En el editor de la salida de fusionado también puede utilizar las otras teclas para la edición. Puede cambiar entre los modos insertar y sobreescribir con la tecla Insertar (el modo predeterminado es insertar).
Una pulsación del botón izquierdo del ratón en la columna resumen sincronizará todas las ventanas para mostrar el inicio del mismo grupo de líneas (tal y como se explicaba en la sección «Configurar el grupo actual, sincronizado de fusión y posición de vista de diferencias»).
La barra de botones también contiene siete botones de navegación con los que podrá saltar a la diferencia actual/primera/última, a la siguiente/anterior diferencia (Ctrl-Flecha abajo/Ctrl-Flecha arriba), al siguiente/anterior conflicto (Ctrl-Página abajo/Ctrl-Página arriba), o al siguiente/anterior conflicto sin resolver. Tenga en cuenta que para KDiff3 un «conflicto» que no se pudo resolver automáticamente al comienzo del fusionado continúa siendo un «conflicto» aunque se haya resuelto. De aquí la necesidad de distinguir los «conflictos sin resolver»

Avance automático
También existe el botón «Automáticamente ir al conflicto siguiente sin resolver después de una selección origen» (avance automático). Si activa esto, cuando se seleccione una fuente KDiff3 saltará automáticamente al siguiente conflicto sin resolver. Esto puede ayudarle cuando desee seleccionar una sola fuente. Cuando necesite ambas fuerte, o desee editar después de la selección, probablemente querrá desactivar esto. Antes de continuar con el siguiente conflicto sin resolver KDiff3 muestra el resultado de su elección durante un momento. Este retardo es ajustable en las preferencias Diff y fusión: Puede especificar en «Retardo auto avanzado» en milisegundos un valor entre 0 y 2.000. Pista: ¿Cansado de tanta pulsación? Utilice un retardo de avance automático pequeño y los accesos rápidos Ctrl-1/2/3 para seleccionar A/B/C para muchos de los conflictos.

Seleccionar, copiar y pegar
Las ventanas de entrada no muestran un cursor, por ello las selecciones se hacen pulsando el botón izquierdo del ratón al inicio, manteniendo pulsado el botón del ratón y moviéndose al final, momento en el que soltará el botón del ratón. También puede seleccionar una palabra con una doble pulsación. En la salida del editor de fusionado puede realizar la selección a través del teclado manteniendo pulsado el botón «mayúsculas» y navegando con las teclas de cursor.
Si la selección excede el rango visible puede desplazar el ratón sobre los bordes de la ventana que harán que KDiff3 se desplace en esta dirección.
Para las selecciones muy largas puede utilizar las teclas de navegación mientras mantiene pulsado el ratón. P.ej. utilice RePág y AvPág para ir rápidamente a una posición determinada. Al final de la posición suelte el botón del ratón.
Para seleccionarlo todo en la ventana actual utilice el menú «Editar»->«Seleccionar todo» (Ctrl-A).
Para copiar al portapapeles debe pulsar el botón «Copiar» (Ctrl-C o Ctrl-Insertar). Pero también existe la opción «Auto copiar selección». Si está activado, todo lo que seleccione se copiará inmediatamente y no necesitará realizar la copia explícitamente. Ponga atención cuando lo utilice ya que el contenido del portapapeles puede destruirse accidentalmente.
«Cortar» (Ctrl-X o Mayúsculas-Borrar) copia el texto seleccionado al portapapeles y lo borra.
«Pegar» (Ctrl-V o Mayúsculas-Insertar) inserta el texto del portapapeles en la posición del cursor o sobre la selección actual. Si pega algo en cualquier ventana de entrada de diferencia se mostrará el contenido del portapapeles en esta ventana y la comparación se reiniciará inmediatamente. Es práctico si desea guardar rápidamente un trozo de texto de alguna parte y compararlo con algo sin crear los archivos en primer lugar.

Guardar
Guardar solo estará permitido cuando se hayan resuelto todos los conflictos. Si el archivo ya existe y la opción «Archivos de copia de seguridad» está activada el archivo existente se renombrará con una extensión «.orig», pero si ya existe un archivo se borrará. Cuando salga o inicie otro análisis de diferencias y los datos no se hayan guardado, KDiff3 le preguntará si desea guardar, cancelar o continuar sin guardar (KDiff3 no captura ninguna señal. Por eso si ejecuta «kill» sobre KDiff3 sus datos se perderán).
Los finales de línea se guardan de acuerdo con el método utilizado por el sistema operativo. Para Unix cada línea termina con un caracter de nueva línea «\n», mientras que para los sistemas basados en Win-32 cada línea termina con un retorno de carro + un nueva línea «\r\n». KDiff3 no conserva los finales de línea de los archivos de entrada, lo que significa que no debería utilizar KDiff3 con archivos binarios.

Buscar cadenas
Puede buscar una cadena en cualquier ventana de texto de KDiff3. La orden «Buscar...» («Ctrl-F) en el menú Editar abre un diálogo que le permite especificar la cadena a buscar. La búsqueda siempre comenzará en la parte superior. Utilice la orden «Buscar siguiente» («F3») para buscar la siguiente aparición. si selecciona la búsqueda en varias ventanas se comenzará a buscar en la primera ventana de arriba hacia abajo antes de iniciar la búsqueda en la parte superior de la siguiente ventana, etc.

Impresión
KDiff3 soporta impresión de las diferencias en los archivos de texto. La orden «Imprimir» (Ctrl-P) en el menú archivo abre un diálogo que permite seleccionar la impresora y ajustar otras opciones.
Existen varias posibilidades de ajustar el rango. Debido a las diferencias existentes en los diálogos de impresión de los diversos sistemas operativos, el método para realizar determinadas selecciones variará.
Todo:	Imprime todo.
Actual:	Imprime un página comenzando en la primera línea visible de la ventana (en sistemas sin esta opción se puede suplir este inconveniente especificando la página número 10000 para imprimir).
Selección:	Antes de realizar esta elección de impresión seleccione el texto con el ratón (como para copiar y pegar) en una de las ventanas de entrada de diferencias para definir las líneas inicial y final. Si no hay texto seleccionado en una de las ventanas de diferencia, no estará disponible esta opción (en sistemas sin esta opción se puede conseguir el mismo resultado especificando la página 9999).
Rango:	Especifique la primera y última página.
Otras opciones importantes para la impresión son las habituales:
Letra, tamaño de letra
Mostrar números de línea
Ajuste de texto
Colores
etc.
También se recomienda la impresión en formato apaisado.

Opciones
Las opciones y la lista de archivos recientes se guardarán cuando salga del programa, y se recargarán cuando lo inicie (Menú Preferencias->Configurar KDiff3 ...).

Fuente
Seleccione un tipo de letra de ancho fijo (en algunos sistemas este diálogo puede mostrar tipos de letra de ancho variable, pero no debería utilizarlas).
Fuente cursiva para deltas:	Si selecciona esto, las diferencias de texto se dibujarán con la versión cursiva del tipo de letra. Si el tipo de letra no soporta cursiva, no hará nada.

Colores
Color del primer plano:	Habitualmente negro.
Color de fondo:	Habitualmente blanco.
Color del fondo de diff:	Habitualmente gris claro.
Color A:	Habitualmente azul oscuro.
Color B:	Habitualmente verde oscuro.
Color C:	Habitualmente magenta oscuro.
Color de conflicto:	Habitualmente rojo.
Rango actual de color de fondo:	Habitualmente amarillo claro.
Rango actual de color de fondo de diff:	Habitualmente amarillo oscuro.
Colores para los rangos de diferencias seleccionados manualmente:	Habitualmente naranja.
Color del archivo más nuevo en la comparación de directorios:	Habitualmente verde.
Color del archivo más antiguo en la comparación de directorios:	Habitualmente rojo.
Color de los archivos de antigüedad media en la comparación de directorios:	Habitualmente amarillo oscuro.
Color para los archivos que faltan en la comparación de directorios:	Habitualmente negro.
Los cambios de color para la comparación de directorios no tendrán efecto hasta la siguiente vez que inicie la comparación de directorios.
En sistemas que solo tengan 16 ó 256 colores algunos de ellos no estarán disponibles en su forma exacta. En aquellos sistema el botón «Predeterminados» seleccionará un color puro.

Preferencias del editor
El tabulador inserta espacios:	Si está desactivado y pulsa la tecla tabulador, se insertará un caracter de tabulación, sino se insertará la cantidad adecuada de caracteres.
Tamaño del tabulador:	Se puede ajustar para sus necesidades. El valor predeterminado es 8.
Auto indentación:	Cuando pulsa Entrar; o Return el sangrado de la línea anterior se utiliza para la nueva línea.
Auto-copiar selección:	Cada selección se copia inmediatamente al portapapeles de forma que no necesitará copiarlo explícitamente.
Estilo línea final:	Al guardar puede seleccionar qué estilo de línea prefiere. El valor predeterminado es la elección habitual para el sistema operativo utilizado.

Preferencias de fusionado
Cuando se comparan archivos, KDiff3 primero intenta hacer coincidir las líneas que sean iguales en todos los archivos de entrada. Solo durante este paso se ignorarán los espacios en blanco. El segundo paso compara cada línea. En este paso los espacios en blanco no se ignorarán. Los espacios en blanco tampoco se ignorarán durante la fusión.
Conservar el retorno de carro	Algunos editores (en algunos sistemas) guardan los caracteres de retorno de carro «\r» y de línea siguiente «\n» al final de la línea, mientras que otros solo guardan el de línea siguiente «\n». Normalmente KDiff3 ignora el retorno de carro, pero a pesar de que debido a ello no tengan el mismo tamaño parecerán iguales si se comparan juntos. Cuando se activa esta opción, los caracteres de retorno de carro se harán visibles, pero se tratarán como espacios en blanco. Esta opción debería estar desactivada durante el mezclado. El valor predeterminado es apagado.
Ignorar números:	De forma predeterminada estará desactivado. Los caracteres numéricos («0-9», «.», «-») se ignorarán en la primera parte del análisis en la que se efectuará la coincidencia de líneas. Sin embargo en el resultado las diferencias sí se mostrarán, pero serán tratadas como espacios en blanco.
Ignorar comentarios de C/C++:	De forma predeterminada estará desactivado. Los cambios en los comentarios se tratarán como cambios de espacios en blanco.
Ignorar mayúsculas:	De forma predeterminada estará desactivado. Las diferencias de mayúsculas y minúsculas de los caracteres (como «A» y «a») se tratarán como cambios de espacios en blanco.
Comando del preprocesador:	Vea la siguiente sección.
Comando de preprocesador de combinación de línea:	Vea la siguiente sección.
Intentar más a fondo:	Intenta encontrar más a fondo una delta más pequeña (de forma predeterminada estará activada). Debería ser efectivo para archivos grandes y complicados. Y lento para archivos muy grandes.

Preferencias de fusionado
Retardo auto avanzado (ms):	Cuando está activado el modo de «auto avanzado» aquí se especifica durante cuanto tiempo se mostrará el resultado de la selección antes de saltar al siguiente conflicto sin resolver.
Fusionar de forma predeterminada espacios en blanco de dos/tres archivos:	Resuelve automáticamente todos los conflictos de los espacios en blanco seleccionando el archivo especificado (el modo predeterminado es el manual). Práctico si los espacios no son realmente importantes en los archivos. Si solo necesita ésto ocasionalmente mejor utilice «Seleccionar A/B/C para todos conflictos de los espacios en blanco sin resolver» en el menú Fusionar. Tenga en cuenta que si ha activado «Ignorar números» o «Ignorar comentarios de C/C++» esta autoelección también se aplica a los conflictos en los números y en los comentarios.
Expresión regular de fusión automática:	Expresión regular para las líneas en las que KDiff3 debería elegir automáticamente una fuente. Consulte también Fusión automática.
Ejecutar expresión regular de fusión automática al iniciar la fusión:	Si está activado KDiff3 ejecutará la fusión automática utilizando la «expresión regular de fusión automática» cuando se inicie una fusión.
Expresión regular de inicio de historial:	Expresión regular para el inicio de la entrada del historial de fusionado. Normalmente esta línea contiene la palabra clave «$Log$». El valor predeterminado es «.*\$Log.*\$.*».
Expresión regular de inicio de entrada del historial:	Una entrada del historial de fusión está formada por varias líneas. Especifique la expresión regular para detectar la primera línea (sin el comentario importante). Utilice paréntesis para agrupar las claves que desee utilizar para la ordenación. Si está vacío, KDiff3 asume que las líneas vacías separan entradas del historial. Consulte también Fusión automática.
Ordenación del historial de fusión:	Activar ordenación del historial del control de versiones
orden de la clave de ordenación del inicio de la entrada del historial:	Cada paréntesis utilizado en la expresión regular para la entrada del inicio del historial agrupa una clave que puede utilizarse para la ordenación. Especifique la lista de claves (están numeradas en orden de aparición comenzando con 1) y utilizando «,» como separador (p. ej. «4,5,6,1,2,3,7»). Si permanece vacío, no se realizará ordenación. Consulte también fusión automática.
Historial del control de versión de fusión al iniciar la fusión	Si está activado KDiff3 ejecuta automáticamente el fusionado del historial utilizando las opciones antes mencionadas cuando se inicia una fusión.
Número máximo de entradas en el historial:	KDiff3 corta la lista del historial después del número especificado de entradas. Utilice -1 para evitar el corte (el valor predeterminado es -1).
Compruebe sus expresiones regulares	Este botón muestra un diálogo que le permite mejorar y comprobar la expresión regular. Copie los datos de sus archivos en las líneas de ejemplo. Los «Resultados coincidentes» si la coincidencia se produjo o no. El «Resultado de la clave de ordenación» mostrará la clave utilizada para la ordenación del historial de fusión.
Orden de fusión irrelevante:	Especifique una orden que debería ser llamada cuando KDiff3 detecte que para el archivo B no contiene datos relevantes ya que están incluídos en C. La orden se llama con los tres nombres de archivo como parámetros. Las datos deberán coincidir con la «expresión regular de fusionado automático» o con el historial sino se considera relevante.

Fusión de directorios
Estas opciones están relacionadas con la exploración del directorio y el manejo del fusionado: Vea la Comparación/fusión de directorios de documentos para obtener los detalles.
También existe una opción relevante para guardar archivos sencillos:
Archivos de copia de seguridad:	Cuando se guarde un archivo y ya exista una versión antigua, la versión original se renombrará con una extensión «.orig». Si ya existía un archivo de copia de seguridad antigua con la extensión «.orig» se borrará.

Configuraciones regionales
Idioma:	Ajusta el idioma de la interfaz de usuario. Cambiar esta opción no afectará a la ejecución del programa. Tendrá que salir y reiniciar KDiff3 para que el cambio tenga efecto (esta opción no está disponible en la versión de KDE; de KDiff3 porque el idioma se ajusta de forma global en las preferencias de KDE).
Usar la misma codificación para todo:	Las siguientes opciones de codificación se pueden ajustar de forma separada para cada elemento, o si esta opción está activada, todos los valores tomarán el primer valor.
Codificación local:	Sobre los selectores de código aparece una nota que le indica cuál es la codificación local (no es ajustable, ya que se utiliza para informarle de su codificación en caso de que no la conozca, y necesite seleccionarla).
Codificación de archivo para A/B/C:	Ajusta la codificación para los archivos de entrada. Esto tiene efecto en la interpretación de los caracteres especiales. Como puede ajustar cada codificación por separado puede comparar y fusionar archivos guardados con diferentes codificaciones.
Codificación de archivo para la salida de la fusión y guardar:	Cuando haya editado un archivo, podrá ajustar qué codificación se utilizará al guardarse en el disco.
Codificación de archivo para los archivos del preprocesador:	Cuando defina el preprocesador puede que no sea capaz de operar con su codificación (ejem: Sus archivos son de unicode de 16 bit y su preprocesador solo puede utilizar ascii de 8 bit). Con esta opción puede definir la codificación de la salida del preprocesador.
Idioma de derecha a izquierda:	Algunos idiomas se escriben de derecha a izquierda. Cuando esta opción está activada, KDiff3 dibuja el texto de derecha a izquierda en las ventanas de entrada de diff y en la ventana de la salida del fusionado. Tenga en cuenta que si inicia KDiff3 con la opción de línea de órdenes «--reverse» toda la distribución se hará de derecha a izquierda también (ésta es una característica proporcionada por Qt). Este manual se escribió asumiendo que «Idioma de derecha a izquierda» o invertir distribución están desactivados. Por ello, algunas referencias a «izquierda» o «derecha» se reemplazarán por sus respectivas homólogas si utiliza estas opciones.

Varios
Estas opciones y acciones están disponibles en los menús o en la barra de botones.
Mostrar números de líneas:	Puede seleccionar si los números deberían mostrarse en los archivos de entrada.
Mostrar caracteres espacio y tabulador por diferencias:	Algunas veces los espacios visibles y los tabuladores molestan. Puede desactivarlos.
Mostrar espacio en blanco:	Desactívelo para suprimir cualquier resaltado o cambio de «solo espacio en blanco» en el texto o en las columnas de vista general (tenga en cuenta que ésto también se aplicará a los cambios en los números y comentarios si están activadas las opciones «Ignorar números» o «Ignorar comentarios C/C++»).
Opciones de la vista general:	Estas elecciones están disponibles cuando compara tres archivos. En el modo normal todas las diferencias se muestra en un color codificado en la columna de vista general. Pero algunas veces puede estar interesado en las diferencias entre solo dos de los tres archivos. Seleccionando vista «A vs. B», «A vs. C» o «B vs. C» se mostrará una segunda columna de vista general con la información requerida situado al lado de la visión general normal.
Ajuste de palabras en las ventanas diff:	Ajusta las líneas cuando su longitud excede del ancho de una ventana.
Mostrar ventana A/B/C:	Algunas veces deseará utilizar mejor el espacio de la pantalla para las líneas largas. Oculte las ventanas que no sean importantes (en el menú Ventanas).
Cambiar orientación de división:	Cambia entre las ventanas diff mostrándolas una cerca de la otra (A a la izquierda de B, y a la izquierda de C) o una sobre otra (A sobre B y sobre C). También debería servir de ayuda para las líneas largas (en el menú Ventanas).
Iniciar fusión rápida:	Algunas veces puede estar viendo las deltas y decidir fusionarlas. «Fusionar el archivo actual» en el menú Directorio también funcionará si solo compara dos archivos. Una simple pulsación inicia la fusión y utiliza el nombre de archivo del último archivo de entrada como nombre de archivo predeterminado (cuando se utiliza esto para reiniciar una fusión, se conservará el nombre de archivo de la salida).

Configurar accesos rápidos de teclado
En estos momentos solo la versión para KDE soporta accesos rápidos de teclado configurables por el usuario (Menú Preferencias->Configurar accesos rápidos).

Órdenes del preprocesador
KDiff3 soporta dos opciones para el preprocesador.
Comando del preprocesador:	Cuando se lee cualquier archivo, se redirigirá a través de esta orden externa. Se podrá ver la salida de esta orden en lugar del archivo original. Puede escribir su propio preprocesador que cubra sus necesidades específicas. Utilice esto para cortar determinadas partes del archivo, o para corregir de forma automática el sangrado, etc.
Comando de preprocesador de combinación de línea:	Cuando se lee cualquier archivo, se redirigirá a través de esta orden externa. Si se especifica una orden de preprocesado (ver a continuación), la salida del preprocesador será la entrada de la coincidencia de líneas del preprocesador. La salida solo se utilizará durante la fase de coincidencia de líneas durante el análisis. Puede escribir su propio preprocesador que cubra sus necesidades específicas. Cada línea de entrada tendrá la correspondiente línea de salida.
La idea es permitir al usuario gran flexibilidad durante la configuración del resultado de diff. Pero necesita un programa externo, y muchos usuarios no quieren escribirlo ellos. La buena noticia es que muchas veces sed o perl harán este trabajo.
Ejemplo: Prueba de mayúsculas sencilla: considerar el archivo a.txt (6 líneas):

      aa
      ba
      ca
      da
      ea
      fa

y el archivo b.txt (3 líneas):

      cg
      dg
      eg

Sin un preprocesador las siguientes líneas se situarán unas al lado de otras:

      aa - cg
      ba - dg
      ca - eg
      da
      ea
      fa

Esto no es lo que probablemente lo que se desea ya qu ela primera letra contiene actualmetne la información interesante. Para ayudar al algoritmo de coincidencias a ignorar la segunda letra podemos utilizar una orden de preprocesador, que reemplace «g» con «a»:

   sed 's/g/a/'

Con esta orden el resultado del a comparación será:

      aa
      ba
      ca - cg
      da - dg
      ea - eg
      fa

Internamente el algoritmo de coincidencia ve los archivos después de la ejecución de la línea del preprocesador de coincidencia, pero en la pantalla el archivo continúa sin cambios (el preprocesador normal cambiará también los datos en la pantalla).

Lo básico de sed
Esta sección solo introduce algunas características muy básicas de sed. Para obtener más información consulte info:/sed o http://www.gnu.org/software/sed/manual/html_mono/sed.html. Una versión precompilada para Windows puede encontrarse en http://unxutils.sourceforge.net. Tenga en cuenta que los siguientes ejemplos asumen que la orden sed se encuentra en algún directorio definido en la variable de entorno PATH. Si este no es el caso, deberá especificar la ruta completa absoluta de lo orden.
También debe tener en cuenta que los siguientes ejemplos utilizan una marca de comilla simple (') que no funcionará para Windows. En Windows debería utilizar las marcas de comillas dobles (") en su lugar.
En este contexto solo se utiliza la orden de sustitución sed:

   sed 's/REGEXP/REEMPLAZO/MODIFICADORES'

Antes de utilizar una orden nueva con KDiff3, debería comprobarla en una consola. Aquí será práctica la orden echo. Ejemplo:

   echo abrakadabra | sed 's/a/o/'
   -> obrakadabra

Este ejemplo muestra una orden sed muy simple que reemplaza la primera aparición de «a» con «o». Si desea reemplazar todas las apariciones necesitará el modificador «g»:

   echo abrakadabra | sed 's/a/o/g'
   -> obrokodobro

El símbolo «|» es la orden de tubería que transfiere la salida de la orden anterior a la entrada de la siguiente orden. Si desea comprobar el uso con un archivo largo puede utiilzar cat en los sistemas tipo Unix o type en los sistemas tipo Windows. sed hará la sustitución para cada línea.

cat nombrearchivo | sed opciones

Ejemplos para sed usados en KDiff3

Ignorar otros tipos de comentarios
En estos momentos KDiff3 solo entiende los comentarios C/C++. Utilizando la orden del preprocesado de línea coincidente también puede ignorar otros tipos de comentarios, convirtiéndoles en comentarios C/C++. Ejemplo: Para ignorar los comentarios que comiencen con «#», debería convertirlos a «//». Tenga en cuenta que debe tener activada la opción «Ignorar comentarios C/C++» para que tenga efecto. Una línea de preprocesado de línea coincidente podría ser:

   sed 's/#/\/\//'

Al igual que para sed el caracter «/» tienen un significado especial, y es necesarío reemplazar el caracter «\» antes de cada «/» en la cadena de reemplazo. Algunas veces el «\» es necesario para añadir o eliminar un significado especial de ciertos caracteres. Las comillas simples (') antes y después de la orden de sustitución son importantes, ya que sino el intérprete de órdenes intentará interpretar algunos caracteres especiales como «#», «$» o «\» antes de pasarlos a sed. Tenga en cuenta que en Windows aquí necesitará utilizar las comillas dobles ("). Windows sustituye otros caracteres como «%», por ello debería experimentar un poquito.

Sensibilidad de diff a mayúsculas y minúsculas
Utilice la siguiente orden de preprocesado de coincidencia de línea para convertir todas las entradas a mayúsculas:

   sed 's/\(.*\)/\U\1/'

Aquí el «.*» es una expresión regular que incluye a todos los caracteres en la línea. El «\1» en la cadena de reemplazo hace referencia al texto que coincide con el primer par de «\(» y «\)». La «\U» convierte el texto insertado a mayúsculas.

Ignorar las claves de control de versión
CVS y otros sistemas de control de versión utilizan algunas claves para insertar cadenas automáticamente generadas (info:/cvs/Keyword sustitución). Todos ellos siguen el modelo «$CLAVE generada texto$». Ahora necesitaremos una orden de preprocesado que elimine solo el texto generado:

   sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'

Las «\|» separan las posibles claves. Podría querer modificar esta lista para acomodarla a sus necesidades. La «\» before the «$» es necesaria porque de otra forma «$» coincidirá con el final de la línea.
Mientras experimenta con sed puede llegar a entender y a gustarle las expresiones regulares. Son prácticas porque hay muchos programas que soportan cosas similares.

Ignorar números
Ignorar los números en realidad es una opción de construcción. Pero como en otros ejemplos, indica el aspecto que podría tener la orden de preprocesado.

   sed 's/[0123456789.-]//g'

Cualquier caracter entre «[» y «]» será una coincidencia y no se reemplazará con nada.

Ignorar ciertas columnas
Algunas veces una texto tiene un formato muy estricto y contiene columnas que desearía ignorar, mientras que otras columnas deseará conservarlas para el análisis. En el siguiente ejemplo las primeras cinco columnas (caracteres) se ignorarán, las siguientes diez se conservarán, otras cinco se ignorarán y el resto de la línea se conservará.

   sed 's/.....\(..........\).....\(.*\)/\1\2/'

Cada punto «.» coincidirá con cualquier caracter simple. El «\1» y el «\2» en la cadena de reemplazo hacen referencia al texto coincidente dentro del primer y segundo par de «\(» y «\)» indicando el texto que se conservará.

Combinar varias sustituciones
Algunas veces deseará aplicar varias sustituciones a la vez. Puede utilizar el punto y coma «;» para separarlas unas de otras. Ejemplo:

echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/'
   -> OBROKODOBRO

Utilizar perl en lugar de sed
En lugar de sed podría utilizar algo como perl.

   perl -p -e 's/EXPREG/REEMPLAZO/MODIFICADORES'

Pero algunos detalles son diferentes en perl. Tenga en cuenta que sed necesita «\(» y «\)» perl necesita solo «(» y «)» sin estar precedido de «\». Ejemplo:

sed 's/\(.*\)/\U\1/'
   perl -p -e 's/(.*)/\U\1/'

Orden de la ejecución de preprocesado
Los datos van pasando por todos los preprocesadores internos y externos en el siguiente orden:
Preprocesador normal.
Preprocesador de coincidencia de líneas.
Ignorar mayúsculas (conversión a mayúsculas).
Detección de comentarios C/C++.
Ignorar números.
Ignorar espacios en blanco.
Los datos después del preprocesador normal se conservarán para mostrarse y fusionarse. El resto de operaciones solo modificarán los datos para que los vea el algoritmo de coincidencia de líneas de diff.
En alguna ocasión cuando use el preprocesador normal se dará cuenta de que el preprocesador de coincidencia de líneas verá la salida del preprocesador normal como entrada.

Aviso
La orden de preprocesado suele ser muy práctica, pero como con cualquier opción que modifique su texto u oculte ciertas diferencias automáticamente, puede saltarse accidentalmente ciertas diferencias y en el peor de los casos destruir datos importantes.
Por esta razón durante un fusionado si KDiff3 utiliza una orden de preprocesado normal le preguntará si desea desactivarla o no. Pero no se producirá ningún aviso si está activada la orden de preprocesado de líneas coincidentes. La fusión no se completará hasta que se resuelvan los conflictos. Si desactiva «Mostrar espacios en blanco» las diferencias eliminadas con la orden de preprocesado de líneas coincidentes también estarán visibles. Si el botón guardar continúa desactivado durante una fusión (porque aún existen conflictos), asegúrese de activar «Mostrar espacios en blanco». Si no desea fusionar estas diferencias sin importancia de forma manual puede elegir «Seleccionar [A|B|C] para todos los conflictos de espacios en blanco sin resolver» en el menú Fusionar.