X-Spam-Check-By: sourceware.org Date: Tue, 4 Apr 2006 09:25:45 -0400 (EDT) From: Igor Peshansky Reply-To: cygwin AT cygwin DOT com To: Richard Quadling cc: cygwin AT cygwin DOT com Subject: Re: Some pointers required on log file examination. In-Reply-To: <10845a340604040128k14627ef8h869a937d943e94d0@mail.gmail.com> Message-ID: References: <10845a340604040128k14627ef8h869a937d943e94d0 AT mail DOT gmail DOT com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , 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 Tue, 4 Apr 2006, Richard Quadling wrote: > Hi. > > I have a document building process which gets its data from a CVS and > then autoconf/configure/make... > > The CVS command I'm using produces 2 log files. The first (cvs1.log) > contains all the directory names. The second (cvs2.log) contains the > actual changes to the local files. > > What I want to do is not proceed with a nearly 3 hour make when the > amount of changes is small. > > By small I mean less than 50 files changed. > > Also, if one from a specific set of files has changed then the make > must go ahead. > > If the make is NOT to go ahead, then the current cvs2.log is to be > kept and appended to the next time round, so eventually 50 files WILL > have changed and off we go. > > I know next to nothing about Cygwin, so please be nice. > > Where do I start? We can be nice, but we can't write your code for you. None of this is actually Cygwin-specific. All of it is pretty standard Unix stuff. A small bit of experimenting with CVS will show you that your cvs1.log is the redirection of stderr of the CVS command, and cvs2.log is the redirection of stdout. A Unix tutorial (most of them) would have an example of how to count lines in a file using "wc", as well as how to search for a specific line using "grep". A shell tutorial will show you how to redirect to the same file without destroying it. The rest is just editing the build driver script to incorporate all of these snippets. FWIW, a slightly better way of structuring your make is to remember the date/time of the last make (as a timestamp on a file, perhaps), and simply compare CVS as of that date/time with the HEAD. If the HEAD has certain properties (some particular files changed, the number of changed files is greater than some threshold, etc), then fire off a checkout and the build. HTH, Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu | igor AT watson DOT ibm DOT com ZZZzz /,`.-'`' -. ;-;;,_ Igor Peshansky, Ph.D. (name changed!) |,4- ) )-,_. ,\ ( `'-' old name: Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! "Las! je suis sot... -Mais non, tu ne l'es pas, puisque tu t'en rends compte." "But no -- you are no fool; you call yourself a fool, there's proof enough in that!" -- Rostand, "Cyrano de Bergerac" -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/