delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2009/10/26/21:31:50

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS
X-Spam-Check-By: sourceware.org
MIME-Version: 1.0
In-Reply-To: <bb237ab80910261155s735fa54g539321d1f05648a7@mail.gmail.com>
References: <bb237ab80910260841te5fab0di2bb4f3c4f40ce4dd AT mail DOT gmail DOT com> <20091026172622 DOT GB790 AT ednor DOT casa DOT cgf DOT cx> <bb237ab80910261129l30b9eb84v8b568d209c2a919c AT mail DOT gmail DOT com> <0105D5C1E0353146B1B222348B0411A20886DC6D7B AT NIHMLBX02 DOT nih DOT gov> <bb237ab80910261155s735fa54g539321d1f05648a7 AT mail DOT gmail DOT com>
Date: Mon, 26 Oct 2009 22:31:39 -0400
Message-ID: <f60fe000910261931w7c575b42i6f38da4220c85d10@mail.gmail.com>
Subject: Re: How to increase the memory available to diff in cygwin 1.7?
From: "Mark J. Reed" <markjreed AT gmail DOT com>
To: cygwin AT cygwin DOT com
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On Monday, October 26, 2009, Kenneth Chiu  wrote:
> cmp doesn't recurse, though, at least as far as I can tell.
> In theory, I could use find, then cmp, plus some scripting,
> but seems simpler to just write a small C program
> to do it.

Well, as a start, you could try this:

find "$src" -type f -print | while read f; do cmp "$f"  "${f/$src/$dest}" ; done

The concatenation of its stdout and stderr will include
distinguishable lines enumerating the following sets:

 all files in "$dest" that differ from the corresponding file in "$src"
 all directories in "$dest" that correspond to files in "$src" and vice-versa
 all pathnames under "$dest" that don't exist despite there being a
corresponding file under "$src"

Which seems to be all the information you were looking for.  You can
then postprocess the output to format it however you like.

Nothing there screams C to me.  Perl, maybe...

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019