private function recuperar_revision_recursos() { $svn = new toba_svn(); if (!toba::memoria()->existe_dato_instancia('toba_revision_recursos_cliente')) { $path_recursos = $this->toba_dir() . '/www'; if (toba::instalacion()->es_produccion() || !$svn->hay_cliente_svn() || !$svn->es_copia_trabajo($path_recursos)) { $version = toba::instalacion()->get_version()->__toString(); } else { $version = $svn->get_revision($path_recursos); } toba::memoria()->set_dato_instancia('toba_revision_recursos_cliente', $version); } if (!toba::memoria()->existe_dato_instancia('proyecto_revision_recursos_cliente')) { $path_recursos = toba::proyecto()->get_path() . '/www'; if (toba::instalacion()->es_produccion() || !$svn->hay_cliente_svn() || !$svn->es_copia_trabajo($path_recursos)) { $version = toba::proyecto()->get_version()->__toString(); } else { $version = $svn->get_revision($path_recursos); } toba::memoria()->set_dato_instancia('proyecto_revision_recursos_cliente', $version); } }
function conf__pant_vista_previa() { $path = $this->s__path_archivo; $svn = new toba_svn(); if (!isset($this->comando_svn)) { $codigo = $this->get_codigo_vista_previa(); } else { switch ($this->comando_svn) { case 'blame': $codigo = $svn->blame($path); if ($codigo == '') { toba::notificacion()->error('No se pudo realizar el blame, posiblemente porque el repositorio tiene restricciones de permisos y el usuario de apache no tiene cargadas las credenciales'); } break; case 'diff': $codigo = $svn->diff($path); break; case 'revert': $svn->revert($path); $codigo = $this->get_codigo_vista_previa(); break; case 'add': $svn->add($path); $codigo = $this->get_codigo_vista_previa(); break; } } //-- Info del archivo $estado = $svn->get_estado($path); $svn_blame = true; $svn_diff = false; $svn_add = false; switch ($estado) { case 'unversioned': $svn_blame = false; $svn_add = true; $nombre = 'sin versionar'; $img = toba_recurso::imagen_proyecto('svn/unversioned.png', true, 16, 16, $nombre); break; case 'modified': case 'missing': $svn_diff = true; $nombre = 'modificado'; $img = toba_recurso::imagen_proyecto('svn/modified.png', true, 16, 16, $nombre); break; case 'added': $svn_blame = false; $nombre = 'agregado'; $img = toba_recurso::imagen_proyecto('svn/added.png', true, 16, 16, $nombre); break; case 'normal': $nombre = 'sin modificar'; $img = toba_recurso::imagen_proyecto('svn/normal.png', true, 16, 16, $nombre); break; case 'conflicted': $nombre = 'En Conflicto'; $img = toba_recurso::imagen_proyecto('svn/conflict.png', true, 16, 16, $nombre); break; case 'deleted': $nombre = 'borrado'; $img = toba_recurso::imagen_proyecto('svn/deleted.png', true, 16, 16, $nombre); break; case 'locked': $nombre = 'locked'; $img = toba_recurso::imagen_proyecto('svn/locked.png', true, 16, 16, $nombre); break; case 'ignored': $svn_add = true; $svn_blame = false; $nombre = 'ignorado'; $img = toba_recurso::imagen_proyecto('svn/ignored.png', true, 16, 16, $nombre); break; } $this->info_archivo = "{$path} <span style='font-size: 9px; color:gray'>({$nombre})</span>"; $this->previsualizacion = $codigo; $existe_archivo = file_exists($path); $ver_comandos_svn = $svn->hay_cliente_svn(); if (!$svn->hay_cliente_svn()) { $ver_comandos_svn = false; } //-- Oculta boton eliminar if (!$existe_archivo) { $this->pantalla()->eliminar_evento('eliminar'); $this->pantalla()->eliminar_evento('abrir'); } if (!$ver_comandos_svn || !$svn_blame) { $this->pantalla()->eliminar_evento('svn_blame'); } if (!$ver_comandos_svn || !$svn_diff) { $this->pantalla()->eliminar_evento('svn_diff'); $this->pantalla()->eliminar_evento('svn_revert'); } if (!$ver_comandos_svn || !$svn_add || !$existe_archivo) { $this->pantalla()->eliminar_evento('svn_add'); } if (!$ver_comandos_svn || !$existe_archivo || $svn_add) { $this->pantalla()->eliminar_evento('trac_ver'); } }
function generar_estado_codigo() { //Se cambia el chequeo de propiedades svn a checksum de archivos $this->manejador_interface->mensaje("Calculando revisiones {$this->identificador} ", false); $this->generar_checksum(); //Esto simplemente se calcula para darle una idea al pobre chango de cual //fue la ultima revision que cargo en la base,util para el revert $svn = new toba_svn(); if ($svn->hay_cliente_svn()) { $max_rev = 0; $revisiones = $svn->get_revisiones_dir_recursivos($this->get_dir_dump()); $max_rev = 0; if (!empty($revisiones)) { foreach ($revisiones as $revision) { if (isset($revision['error'])) { throw new toba_error_def($revision['error']); } if ($max_rev < intval($revision['revision'])) { $max_rev = intval($revision['revision']); } } } $this->manejador_interface->progreso_avanzar(); $this->instancia->set_revision_proyecto($this->identificador, $max_rev); } $this->manejador_interface->progreso_fin(); }