Changeset 54994 in spip-zone


Ignore:
Timestamp:
Nov 30, 2011, 12:51:01 AM (8 years ago)
Author:
patfr@…
Message:

MAJ auto : compatibilité avec SVN 1.7

Location:
_plugins_/couteau_suisse
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/couteau_suisse/outils/maj_auto_action_rapide.php

    r47877 r54994  
    200200                $infos = $get_infos($p, false, $DIR_PLUGINS);
    201201        } else $infos = plugin_get_infos($p);
    202         // fichier svn.revision
     202        // fichier svn.revision fourni par SPIP
    203203        $ok = lire_fichier($svn_rev = $DIR_PLUGINS.$p.'/svn.revision', $svn);
    204204        $lastmodified = @file_exists($svn_rev)?@filemtime($svn_rev):0;
     
    210210        $infos['commit'] = ($ok && preg_match(',<commit>(.+)</commit>,', $svn, $regs))?$regs[1]:'';
    211211        $rev_local = (strlen($svn) && preg_match(',<revision>(.+)</revision>,', $svn, $regs))
    212                 ?intval($regs[1]):version_svn_courante($DIR_PLUGINS.$p);
    213         if($infos['svn'] = $rev_local<0) {
    214                 // fichier SVN
    215                 if (lire_fichier($DIR_PLUGINS.$p.'/.svn/entries', $svn)
    216                                 && preg_match(',(?:'.preg_quote(_MAJ_SVN_TRAC).'|'.preg_quote(_MAJ_SVN_DEBUT).')[^\n\r]+,ms', $svn, $regs)) {
    217                         $url_origine = str_replace(array(_MAJ_SVN_TRAC,_MAJ_SVN_DEBUT), _MAJ_LOG_DEBUT, $regs[0]);
    218                         // prise en compte du recent demenagement de la Zone...
    219                         $url_origine = preg_replace(',/_plugins_/_(?:stable|dev|test)_/,','/_plugins_/', $url_origine);
    220                 }
     212                ?intval($regs[1]):version_svn_courante2($DIR_PLUGINS.$p);
     213        if($infos['svn'] = is_array($rev_local) || $rev_local<0) {
     214                // systeme SVN en place
     215                if (is_array($rev_local)) // version SVN >= 1.7 ?
     216                        list($rev_local, $url_origine) = $rev_local;   
     217                // version SVN anterieure
     218                elseif (lire_fichier($DIR_PLUGINS.$p.'/.svn/entries', $svn)
     219                                && preg_match(',(?:'.preg_quote(_MAJ_SVN_TRAC).'|'.preg_quote(_MAJ_SVN_DEBUT).')[^\n\r]+,ms', $svn, $regs))
     220                        $url_origine = $regs[0];
     221                $url_origine = str_replace(array(_MAJ_SVN_TRAC,_MAJ_SVN_DEBUT), _MAJ_LOG_DEBUT, $url_origine);
     222                // prise en compte du recent demenagement de la Zone...
     223                $url_origine = preg_replace(',/_plugins_/_(?:stable|dev|test)_/,','/_plugins_/', $url_origine);
    221224                //$infos['zip_trac'] = 'SVN';
    222225        }
     
    252255}
    253256
     257function version_svn_courante2($dir) {
     258        // recherche de la base de donnee
     259        if(!$db = @file_exists($dir2 = realpath($dir . '/.svn/wc.db'))) {
     260                // version <1.7 de Subversion (reconnue par SPIP)
     261                if(@file_exists($dir.'/.svn/entries')) return version_svn_courante($dir);
     262                // trunk et extensions
     263                $db = @file_exists($dir2 = realpath($dir . '/../.svn/wc.db'));
     264                if(!$db) {
     265                        // branches
     266                        $db = @file_exists($dir2 = realpath($dir . '/../../.svn/wc.db'));
     267                        if($db) $b = basename(dirname($dir)).'/'.basename($dir);
     268                } else $b = basename($dir);
     269        } else $b = '';
     270        // version 1.7 de Subversion
     271        try {
     272                $db = new PDO('sqlite:' . $dir2);
     273        //      foreach ($db->query('SELECT * FROM SQLite_master WHERE type=\'table\';') as $row) print_r($row);
     274                foreach ($db->query('SELECT root FROM REPOSITORY;') as $row) {
     275                        $url = $row[0]; break;
     276                }
     277                foreach ($db->query("SELECT repos_path FROM NODES WHERE local_relpath='$b';") as $row) {
     278                        $url .= '/' . $row[0]; break;
     279                }
     280                foreach ($db->query("SELECT MAX(changed_revision) FROM NODES WHERE local_relpath LIKE '$b%';") as $row) {
     281                        return array($row[0], $url);
     282                }
     283        } catch(PDOException $e) {
     284                return false;
     285        }
     286        return false;
     287}
     288
    254289?>
  • _plugins_/couteau_suisse/paquet.xml

    r54960 r54994  
    22        prefix="couteau_suisse"
    33        categorie="maintenance"
    4         version="1.8.51"
     4        version="1.8.52"
    55        etat="stable"
    66        compatibilite="[1.9.2;3.0.99]"
  • _plugins_/couteau_suisse/plugin.xml

    r54960 r54994  
    33        <slogan>... ou plus de fonctionnalit&#233;s pour SPIP !</slogan>
    44        <icon>img/couteau-50.gif</icon>
    5         <version>1.8.51</version>
     5        <version>1.8.52</version>
    66        <version_base>1.1</version_base>
    77        <auteur>Patrice Vanneufville
Note: See TracChangeset for help on using the changeset viewer.