예제 #1
0
 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);
     }
 }
예제 #2
0
 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');
     }
 }
예제 #3
0
 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();
 }