tags:

views:

384

answers:

4

Are there any good tools for comparing two folder structures (files included) between two environments?

i.e. comparing a dev computer with production

Edit:

A note on some lessons learned: dir /s /o:N >> output.txt works well in conjunction with a text comparison tool (I used WinMerge), but the filesystem does appear to matter. NTFS against FAT32 doesn't work well, as one scans the folders in reverse alphabetical order, and the other doesn't. To solve this issue, I copied the files from the FAT32 to an NTFS drive.

Also, DiffMerge is nice, but slow. It actually hung when run on the server (that's where I had access to both sets of files) to a point that I had to force a quit.

I'm sure others have thoughts on doing this with *NIX. Probably a similar technique like ls -alR > output

It's still pretty manual, but it works well.

Just keep in mind that the times on the folders will more than likely be different, so you may want to use a regex to replace them and make them more consistent, since that's fairly benign (I used [\d]{2}/[\d]{2}/[\d]{4}[\s]*[\d]{2}\:[\d]{2}\sAM[\s]*\<DIR\> and [\d]{2}/[\d]{2}/[\d]{4}[\s]*[\d]{2}\:[\d]{2}\sPM[\s]*\<DIR\>).

+4  A: 

I use Diff merge (http://www.sourcegear.com/diffmerge/ - it has a free version) for comparing folder structures on Windows

Kragen
thanks for the tip, +1 for the free version
MasterMax1313
+4  A: 

For a tool that runs on Windows (but can work against Linux samba shares), try BeyondCompare.

James Hugard
Very ironic, yet not unexpected. I just got through doing a folder diff with BC. I have it saved as a session, to compare one folder of log files with another (a previous known good run).
John Saunders
A: 

Option 1)

Mount one of the machines on the other, then use some standard directory compare utility.

Option 2)

Use rsync --dry-run and use the output in some way.

Option 3)

Generate hashes (e.g. sha256) of the files on each side, then compare the lists.

Douglas Leeder
+3  A: 

One windows. Use your favorite diff tool on the files generated from this cmd.

Run this from the folders you wish to compare.
c:\somefolder>dir /s > searchResult.txt

jms
This is actually what i did first, though there seemed to be something different with the way dir was executing, as it was coming out in different orders on the two different systems (I tried the /O:N switch, but to no avail).
MasterMax1313