/**
  * Load and cache the set of branch mappings for the repository.
  */
 function load_mappings()
 {
     if (count($this->mappings) < 1) {
         $this->mappings = SourceMapping::load_by_repo($this->id);
     }
     return $this->mappings;
 }
if (Source_PVM()) {
    $f_mapping_pvm_version_id = gpc_get_int('_pvm_version_id', 0);
    $f_mapping_version = '';
} else {
    $f_mapping_pvm_version_id = 0;
    $f_mapping_version = gpc_get_string('_version', '');
}
$f_mapping_regex = gpc_get_string('_regex', '');
if (!is_blank($f_mapping_branch)) {
    if (isset($t_mappings[$f_mapping_branch])) {
        die('error branch');
    }
    if ($f_mapping_type < SOURCE_EXPLICIT) {
        die('error type');
    }
    if ($f_mapping_type == SOURCE_EXPLICIT) {
        if (Source_PVM()) {
            if ($f_mapping_pvm_version_id < 1) {
                die('error product version');
            }
        } else {
            if (is_blank($f_mapping_version)) {
                die('error version');
            }
        }
    }
    $t_mapping = new SourceMapping($t_repo->id, $f_mapping_branch, $f_mapping_type, $f_mapping_version, $f_mapping_regex, $f_mapping_pvm_version_id);
    $t_mapping->save();
}
form_security_purge('plugin_Source_repo_update_mappings');
print_successful_redirect(plugin_page('repo_manage_page', true) . '&id=' . $t_repo->id);