Max.
We use CVS, we perform almost all our translations (Hl7->HL7) in TCL and display the various components at startup. This is used for the automatated change control.
eg
12:07:54 ris_test_jc_lab_in tcp_acknak:INFO: RCS Info $Id: tcp_acknak.pdl,v 1.3 2001/02/14 00:22:35 he00387 Exp $
12:07:54 ris_test_jc_lab_in gen_code_msginfo:INFO : RCS Info $Id: gen_code_msginfo.tcl,v 1.3 2003/08/18 07:35:49 he00387 Exp $
12:07:54 ris_test_jc_lab_in gen_code_msginfo:INFO : RCS Info $Id: gen_library.tcl,v 1.42 2007/05/07 09:42:14 he00387 Exp $
12:07:54 ris_test_jc_lab_in gen_code_msginfo:INFO : RcsVerChk min = 1.7
12:07:54 ris_test_jc_lab_in gen_code_msginfo:INFO : RcsVerChk chk = 1.42
12:07:54 ris_test_jc_lab_in gen_code_msginfo:INFO : MODE = start; CONTEXT = sms_ib_data; APPL = ris; LEVEL = test; SITE = jc; DATA = lab; FLOW = in
12:07:54 ris_test_jc_lab_in :INFO : RCS Info $Id: ccm_xlate_ris.tcl,v 1.32 2006/10/24 08:13:09 he00387 Exp $
12:07:54 ris_test_jc_lab_in :INFO : RCS Info $Id: gen_library.tcl,v 1.42 2007/05/07 09:42:14 he00387 Exp $
12:07:54 ris_test_jc_lab_in :INFO : RcsVerChk min = 1.37
12:07:54 ris_test_jc_lab_in :INFO : RcsVerChk chk = 1.42
12:07:54 ris_test_jc_lab_in :INFO : RCS Info $Id: ccm_library.tcl,v 1.13 2007/01/15 06:35:17 he62180 Exp $
12:07:54 ris_test_jc_lab_in :INFO : RcsVerChk min = 1.8
12:07:54 ris_test_jc_lab_in :INFO : RcsVerChk chk = 1.13
12:07:54 ris_test_jc_lab_in :INFO : MODE = start; CONTEXT = sms_ib_data; APPL = ris; LEVEL = test; SITE = jc; DATA = lab; FLOW = in
12:07:54 ris_test_jc_lab_in :INFO : Load the Configuration file
12:07:54 ris_test_jc_lab_in :INFO : RCS Info $Id: ccm_tables_ris.tcl,v 1.35 2007/05/16 04:03:44 he00387 Exp $
12:07:54 ris_test_jc_lab_in :INFO : RcsVerChk min = 1.2
12:07:54 ris_test_jc_lab_in :INFO : RcsVerChk chk = 1.35
12:07:54 ris_test_jc_lab_in :INFO : RCS Info $Id: ccm_tables_bucket.tcl,v 1.23 2005/10/07 06:27:17 he62180 Exp $
12:07:54 ris_test_jc_lab_in :INFO : RcsVerChk min = 1.14
12:07:54 ris_test_jc_lab_in :INFO : RcsVerChk chk = 1.23