Mark, Thanks for very quick reply.
On Sat, Apr 10, 2010 at 3:23 AM, Mark D. Baushke <m...@gnu.org> wrote: > Olexiy Buyanskyy <invalid.nore...@gnu.org> 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 _______________________________________________ Bug-cvs mailing list Bug-cvs@nongnu.org http://lists.nongnu.org/mailman/listinfo/bug-cvs