Is there a git equivalent to clearcase catcr

2019-04-10 03:36发布

问题:

My only experience of version control systems is clearcase and, while it's served its purpose well, I would now like to move to a free tool. I've read about and experimented with Git & SVN and certainly see the advantages in the commit based approach as opposed to the file based approach that clearcase uses.

However, there are parts of Clearcase that I would miss if there is no equivalent in the other tools. Clearcase could distinguish between files that were written by the user and files that were created from programs the user had written. User written files would be 'File Element Versions' and program generated files would be 'Derived Object Versions'. Furthermore the dependencies of a 'Derived Object Version' could be determined from using the clearcase cleartool catcr command.

My question is: are there equivalents to these files types in git and is there an equivalent of the cleartool catcr command? I agree this isn't strictly part of a version control system, but it still something that I would like to replicate if I moved to GIT.

回答1:

The cleartool catcr is there to use metadata (the configuration record or CRs) attached to derived objects (the .o files), themselves generated by clearmake.

This was used for huge set of C files in order to speed up the compilation and avoid rebuilding everything.

SVN and Git are more focused on the version control part and will not provided a similar mechanism.
Plus, nowadays, either the compilation itself is quicker anyway (because of an increase in memory and CPU and disk speed), or the programs are developed in other languages which offer a better compilation experience (or are scripted)



回答2:

To me, the sweetest part of working with derived objects is having the complete dependency list from cleartool catcr <flags/options> DO_name and NOT really having a faster compilation process.

The closest thing to achieve that without clearmake is probably making use of gcc -MM. Still, nothing compares to the output of cleartool catcr.