[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug #29507] cvs update -j update timestamp of unchanged files

From: Olexiy Buyanskyy
Subject: Re: [bug #29507] cvs update -j update timestamp of unchanged files
Date: Mon, 12 Apr 2010 11:00:00 -0400


Thanks for very quick reply.

On Sat, Apr 10, 2010 at 3:23 AM, Mark D. Baushke <address@hidden> wrote:

> Olexiy Buyanskyy <address@hidden> writes:
> > Issue is really critical for our company.
> Criticality is subjective.
> > We have 20000 C/C++ source files and have several central common
> > libraries.
> So, a relatively small project. Okay.

to recompile 20000 takes 3 hours on our AIX server. Incremental build takes
just 5-100 minutes (higher if you change some central header)

> > Every patch goes on separate release branch that eventually is merging
> > to HEAD (production) code. During merge we use
> >
> > cvs -q upd -kk -j tag_HEAD_start_point -j br_REL_BRANCH folder_name
> >
> > During merge cvs apply properly patches to some files changed on
> > release branch, but it also change timestamp of other files.
> Well, it would only do that on any file which changes the -k option flag
> in use... probably all of them.
> > We use GNU make to compile our code and make uses timestamp.
> Lots of folks use some version of make to build their code. If the file
> changes, it is good to force a recompile.

File was not changed in my case. That is not good to force to recompile
something that was not changed

> > Because cvs changed timestamp of all files this really triggers make
> > to recompile sources those were not really changed.
> First, it is only going to change the timestamp of files that are
> updated.... However the -kk option will probably change them all unless
> that is the normal situation you have in your checked out tree. There is
> a real difference between having keywords expanded and not having them
> expanded.
> > So question why CVS change timestamp of all files.
> Because it is the correct thing to do in 99.99% of the cases.

I found solution for myself after debugging of cvs. All I need just checkout
originally with -kk option.

> I suggest you may find efficiencies in your build process by considering
> the use of ccache (see http://ccache.samba.org/). If the CPP output of
> the source files are the same, then ccache can give you a fair amount of
> performance boot by not needing to do a full compile of the sources to
> get the same .o files out of them... as likely happens if all of the CVS
> keywords are in comments rather than in the source itself.
I tried this. Unfortunately it does not support xlC 6.0 compiler. I hope we
will switch to xlc 10.0 and will try again.

> > Can this be fixed or new option introduced for merge process?
> If you want to work on it, feel free to do so. You have the sources, go
> ahead and use them to make any changes you feel may be useful to you.
> Feel free to share any patches you produce if you wish.
>        Enjoy!
>        -- Mark

Do you think we can put some suggestion to do checkout using -kk to avoid
unnecessary timestamp changes during merge?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]