diff --git a/matlab/TCV_IMAS/tcv_get_deploymentinfo.m b/matlab/TCV_IMAS/tcv_get_deploymentinfo.m
new file mode 100644
index 0000000000000000000000000000000000000000..576b97c706bbd09eee4b2b8dc38e0edc57511db7
--- /dev/null
+++ b/matlab/TCV_IMAS/tcv_get_deploymentinfo.m
@@ -0,0 +1,55 @@
+function info = tcv_get_deploymentinfo(filepath)
+    % Reads a deployment info file and extracts relevant details
+    % Author: L. Simons
+    % Date: 07/03/25
+    %
+    % Args:
+    %   filepath: Path to the text file
+    %
+    % Returns:
+    %   info: Struct containing extracted information
+    
+    % Initialize output struct
+    info = struct();
+    info.repository=fileparts(filepath);
+    
+    % Check if file exists
+    if exist(filepath, 'file') ~= 2
+        error('File does not exist: %s', filepath);
+    end
+    
+    % Open file for reading
+    fid = fopen(filepath, 'r');
+    if fid == -1
+        error('Could not open file: %s', filepath);
+    end
+    
+    % Read file line by line
+    while ~feof(fid)
+        line = fgetl(fid);
+        if ischar(line)
+            tokens = regexp(line, '^(\w+):\s(.+)$', 'tokens');
+            if ~isempty(tokens)
+                key = tokens{1}{1};
+                value = strtrim(tokens{1}{2});
+                
+                % Store relevant fields in the struct
+                switch key
+                    case 'DEPLOYMENT_DATE'
+                        info.deployment_date = value;
+                    case 'GIT_TAG'
+                        info.git_tag = value;
+                    case 'GIT_COMMIT'
+                        info.git_commit = value;
+                    case 'GIT_TAG_DATE'
+                        info.git_tag_date = value;
+                    case 'GITLAB_PROJECT_URL'
+                        info.gitlab_project_url = value;
+                end
+            end
+        end
+    end
+    
+    % Close the file
+    fclose(fid);
+end
diff --git a/matlab/TCV_IMAS/tcv_get_ids_bolometer.m b/matlab/TCV_IMAS/tcv_get_ids_bolometer.m
index 697e49f28b6a635edf44127e54645d0f09f26d67..4cc893f17483e6009061bb52f4062d82c8c20744 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_bolometer.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_bolometer.m
@@ -30,7 +30,9 @@ ids_bolometer_description = struct();
 
 % Load the bolometer geometry
 bolo_geom=bolou_load_geometry();
-
+bolo_geom_gitinfo= ...
+    tcv_get_deploymentinfo(fullfile(fileparts(which('bolou_load_geometry')), ...
+    '.this-deployment.info'));
 
 params_eff.data_request='\tcv_shot::top.results.bolo_u.intensity';
 params_eff.trialindx=1;
@@ -45,16 +47,18 @@ params_eff.data_request='\tcv_shot::top.results.bolo_u.confidence';
 bolo_u_confidence = gdat(shot,params_eff);
 
 status = ~ischar(bolo_u_intensity.data) & ~ischar(bolo_u_prad_core.data);
-imas_version_number=getenv('IMAS_VERSION')
+imas_version_number=getenv('IMAS_VERSION');
 if status
   nchannel = numel(bolo_u_intensity.x);
   ids_bolometer.channel(1:nchannel) = ids_bolometer.channel(1);
   for ii = 1:nchannel
     
+    %% Fill geometry information
+    % Fill information from bolo_geom=bolou_load_geometry();
     ids_bolometer.channel{ii}.name = bolo_geom.channel{ii}.name;
-    if strcmp(aa(1),'3')
+    if strcmp(imas_version_number(1),'3')
         ids_bolometer.channel{ii}.identifier = bolo_geom.channel{ii}.identifier;
-    elseif strcmp(aa(1),'4')
+    elseif strcmp(imas_version_number(1),'4')
         ids_bolometer.channel{ii}.description = bolo_geom.channel{ii}.identifier;
     end
     ids_bolometer.channel{ii}.detector.geometry_type= bolo_geom.channel{ii}.detector.geometry_type;
@@ -102,6 +106,12 @@ if status
     ids_bolometer.channel{ii}.line_of_sight.second_point.r = bolo_geom.channel{ii}.line_of_sight.second_point.r;
     ids_bolometer.channel{ii}.line_of_sight.second_point.z = bolo_geom.channel{ii}.line_of_sight.second_point.z;
     
+    
+    %% Fill measurement information
+%     '\tcv_shot::top.results.bolo_u.prad';
+%     '\tcv_shot::top.results.bolo_u.prad_core';
+%     '\tcv_shot::top.results.bolo_u.confidence';
+
     ids_bolometer.channel{ii}.power.data = bolo_u_intensity.data(ii,:);
     ids_bolometer_description.channel{ii}.power.data = ...
         ['From results.bolo_u.intensity data, Radiance measured by ' ...
@@ -133,36 +143,46 @@ if status
     ids_bolometer.power_radiated_total = bolo_u_prad.data;
     ids_bolometer.power_radiated_validity = 0*bolo_u_prad.data;
   end
+  
+  %% Code legacy for rc_gti_prep
   ids_bolometer.code.name = 'rc_gti_prep';
+  rc_gti_prep_gitinfo= ...
+    tcv_get_deploymentinfo(fullfile(fileparts(which(ids_bolometer.code.name)),'.this-deployment.info'));
   ids_bolometer.code.description = ...
-    ['rc_gti_prep, RADCAM gitlab repo, calls GTI to generate emissivity profiles with liuqe.']
+    ['rc_gti_prep, RADCAM gitlab repo, calls GTI to generate emissivity profiles with liuqe.'];
 %    '/usr/local/bin/matlab960 -nojvm -nosplash -nodisplay -r ' ...
 %    '"anasrvmat(''rc_gti_prep'',$2,[0 2.2],''bolo'', 10, 1, 0.04, 30,' ...
 %    'false, false,false, [], ''automated'', 1)"'];
-  ids_bolometer.code.commit='';
-  ids_bolometer.code.version='';
-  ids_bolometer.code.repository= ...
-      'https://gitlab.epfl.ch/spc/tcv/diag/radcam/';
-  ids_bolometer.code.parameters='';
-  ids_bolometer.code.library{1}.name = 'meq';
+  ids_bolometer.code.commit=rc_gti_prep_gitinfo.git_commit;
+  ids_bolometer.code.version=rc_gti_prep_gitinfo.git_tag;
+  ids_bolometer.code.repository= rc_gti_prep_gitinfo.repository;
+  ids_bolometer.code.parameters= ...
+      ['(''rc_gti_prep'',$2,[0 2.2],''bolo'', 10, 1, 0.04, 30,' ...
+    'false, false,false, [], ''automated'', 1)'];
+
+  %% Code legacy for TCV_EQ; FBTE
+  % Call to gti: gti_get_disc
+  % Call to TCV_eq: temp=tdi('TCV_EQ("psi")',disc.s.equilsrc);
+  % https://spcwiki.epfl.ch/wiki/Tcv_eq
+  % a=gdat(shot,'TCV_EQ("psi")');
+  ids_bolometer.code.library{1}.name = 'fbte';
   ids_bolometer.code.library{1}.description = 'Magnetic equilibrium';
-  ids_bolometer.code.library{1}.commit = '';
-  ids_bolometer.code.library{1}.version = '';
-  ids_bolometer.code.library{1}.repository = ...
-      'https://gitlab.epfl.ch/spc/tcv/tbx/meq';
-  ids_bolometer.code.library{1}.parameters = '';
-  ids_bolometer.code.library{2}.name = 'GTI';
+  ids_bolometer.code.library{1}.parameters = 'TCV_EQ("psi")';
+  
+  %% Code legacy for GTI
+  ids_bolometer.code.library{2}.name = 'gti';
   ids_bolometer.code.library{2}.description = ...
       'General Tomographic Inversion';
-  ids_bolometer.code.library{2}.commit = '';
-  [a1,a2]=unix('git rev-parse --verify HEAD');
-  [b1,b2]=unix('git rev-parse --abbrev-ref HEAD');
-  ids_bolometer.code.library{2}.version = sprintf('%s_branch_%s',strtrim(a2),strtrim(b2));
-  ids_bolometer.code.library{2}.repository = ...
-      'https://gitlab.epfl.ch/spc/tcv/analysis/gti';
+  for ii = 1:numel(ids_bolometer.code.library)
+      
+      library_gitinfo= ...
+        tcv_get_deploymentinfo(fullfile(fileparts(which('gti_do_inversion')),'.this-deployment.info'));
+      ids_bolometer.code.library{ii}.commit = library_gitinfo.git_commit;
+      ids_bolometer.code.library{ii}.version = library_gitinfo.git_tag;
+      ids_bolometer.code.library{ii}.repository = library_gitinfo.gitlab_project_url;
+  end
   ids_bolometer.code.library{2}.parameters = '';
   
-  
   % FIXME: Values of bolo_u_confidence don't match output_flag
   ids_bolometer.code.output_flag=bolo_u_confidence; 
   ids_bolometer.time = bolo_u_intensity.t;