bug-cvs
[Top][All Lists]
Advanced

[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

Mark,

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?

http://ximbiot.com/cvs/manual/cvs-1.12.13/cvs_5.html#SEC66
--
Olexiy


reply via email to

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