windiff portable mac contenido comparar carpetas archivos comparison

comparison - portable - ¿Cuál es la mejor manera de comparar 2 árboles de carpetas en Windows?



winmerge (8)

¿Intentó: https://www.araxis.com/merge/index.en Permite visualizar cambios y combinar selectivamente diferencias específicas en archivos y carpetas.

Estoy moviendo un repositorio de sourcesafe a subversion y necesito asegurarme de que los puntos vitales sean iguales. ¿Es un comando / herramienta existente para Windows que me permite comparar dos árboles de carpetas que son iguales (tiene la misma estructura de carpetas y archivos del mismo contenido)? Lo ideal será algo así como línea de comandos:

some_cool_compare c:/current_vss c:/current_svn -exclude .svn;*.vspscc;*.scc

¿Existe alguna herramienta / comando o debo escribir un script propio?


Al igual que el OP, estaba buscando una herramienta de diferencias de carpetas de Windows, en particular una que pudiera manejar árboles muy grandes (cientos de Gigabytes de datos). Gracias a por el puntero a BeyondCompare , que encontré MUY rápido (aproximadamente 10-100 veces más rápido) que mi anterior windiff herramientas de la vieja escuela.

Por cierto, BeyondCompare tiene un modo de línea de comandos además de la GUI.


Como soy reacio a instalar nuevos programas en mi máquina, este script de PowerShell (de Hey, Scripting Guy! Blog ) me ayudó a resolver mi problema. Solo modifiqué el camino para adaptarme a mi caso:

$fso = Get-ChildItem -Recurse -path F:/songs $fsoBU = Get-ChildItem -Recurse -path D:/songs Compare-Object -ReferenceObject $fso -DifferenceObject $fsoBU


Puedes usar git para exactamente este propósito. Básicamente, usted crea un repositorio git en la carpeta A (el repositorio está en A/.git ), luego copia A/.git a B/.git , luego cambia a la carpeta B y compare simplemente ejecutando git diff. Y la funcionalidad .gitignore se puede lograr con .gitignore .

Entonces, siguiendo su ejemplo (pero usando bash shell en Linux):

# Create a Git repo in current_vss pushd current_vss printf ".svn/n*.vspscc/n*.scc" >> .gitignore git init && git add . && git commit -m ''initial'' popd # Copy the repo to current_svn and compare cp -r current_vss/.git* current_svn/ pushd current_svn git diff


Si puede usar una herramienta de GUI, lo mejor que probé es WinMerge - código abierto.

Si no, entonces diff es tu amigo.


También puede ejecutar tree > tree.txt en ambas carpetas y luego modificar ambos archivos tree.txt con cualquier herramienta diff basada en archivos (git diff).


Más allá de comparar te permite hacer eso y mucho más.

Es una de esas herramientas con las que no puedo vivir.
Eche un vistazo here para obtener una referencia sobre las opciones de scripting


SyncToy es una aplicación gratuita de Microsoft con un modo "Vista previa" para comparar dos rutas. Por ejemplo:

A continuación, puede elegir uno de los tres modos ("Sincronizar", "Eco" y "Contribuir") para resolver las diferencias.

Por último, viene con SyncToyCmd para crear y sincronizar pares de carpetas desde la CLI o una tarea programada.