4

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.

Eugeniu Rosca
  • 5,177
  • 16
  • 45
user5072412
  • 187
  • 1
  • 10

2 Answers2

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)

Eugeniu Rosca
  • 5,177
  • 16
  • 45
VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • CR and DO really are a proprietary mechanism from ClearCase. Trying to emulate it outside a dynamic ClearCase view means having to implement it yourself. – VonC Jul 02 '15 at 08:33
  • Yes, I thought the answer would be along the lines of 'SVN/Git are more focused on version control', so let me rephrase the question. Let's say my compilation speed is extremely slow, so I still want to maintain a configuration record for quick access. What tools could I use to replace the clearmake facility from clearcase? Since I'm using a variety of languages to create my 'derived object version' files I would like a generic tool that isn't language specific. – user5072412 Jul 02 '15 at 08:36
  • @user5072412 not sure: I work with Go (http://golang.org/) which by design compiles very fast. Most modern language wouldn't benefit from a "generic clearmake" tool. That being said, the question was asked before (https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000002916178) and most current build process would involve maven or graddle, but would still lack the clearmake native reporting features. – VonC Jul 02 '15 at 08:41
  • @VonC: `derived objects (the .o files) ` => actually DO is anything generated by clearmake through makefiles (`.o`, `.a`, `.lib`, `.tar.gz`). – Eugeniu Rosca Jul 07 '15 at 00:33
1

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.

Community
  • 1
  • 1
Eugeniu Rosca
  • 5,177
  • 16
  • 45
  • Interesting. +1. I suppose this helps knowing what will be rebuild if you modify a specific element: impact study. – VonC Jul 07 '15 at 05:49