Changeset 121573 in spip-zone


Ignore:
Timestamp:
Feb 4, 2020, 10:09:30 AM (2 weeks ago)
Author:
Cerdic
Message:

En git il faut definir le commiteur par defaut (qui n'est pas l'auteur mais apparait dans le detail d'un commit)

Location:
_plugins_/trad-lang/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/trad-lang/trunk

    • Property subgit:lock:8fd8b30f9956496173d112ac81be6fab2a99b68d deleted
    • Property subgit:lock:4cffb2c1dd437ff9a75691ed9de84768c9756994 set to 2020-02-04T11:09:39.242
  • _plugins_/trad-lang/trunk/salvatore/tireur.php

    r119863 r121573  
    7878                }
    7979
     80                $set_default_commiter = salvatore_vcs_function($source['methode'], 'set_default_commiter');
     81                $set_default_commiter($dir_checkout, _SALVATORE_AUTHOR_COMMITS);
     82
    8083                if (file_exists($dir_module) and !is_link($dir_module)) {
    8184                        $corps = $source['url'] . ' | ' . $source['module'] . "\n" . "Il y a deja un repertoire $dir_module";
  • _plugins_/trad-lang/trunk/salvatore/vcs/git.php

    r119873 r121573  
    4343
    4444/**
    45  * Lire la date de derniere modif d'un fichier versionne
    46  * (retourne 0 si le fichier n'est pas versionne)
    47  * @param string $dir_repo
    48  * @param string $file
    49  * @return false|int
    50  */
    51 function salvatore_vcs_git_lastmodified_file_dist($dir_repo, $file) {
    52 
    53         $d = getcwd();
    54         chdir($dir_repo);
    55         $file = escapeshellarg($file);
    56         $lastmodified = exec("git log -1 -c --pretty=tformat:'%ct' $file | head -1");
    57         $lastmodified = intval(trim($lastmodified));
    58         chdir($d);
    59         return $lastmodified;
    60 }
    61 
    62 /**
    63  * Afficher le status d'un ou plusieurs fichiers
    64  * @param string $dir_repo
    65  * @param string|array $file_or_files
    66  * @return string
    67  */
    68 function salvatore_vcs_git_status_file_dist($dir_repo, $file_or_files) {
    69 
    70         if (is_array($file_or_files)) {
    71                 $file_or_files = array_map('escapeshellarg', $file_or_files);
    72                 $file_or_files = implode(' ', $file_or_files);
    73         }
    74         else {
    75                 $file_or_files = escapeshellarg($file_or_files);
    76         }
    77 
    78         $d = getcwd();
    79         chdir($dir_repo);
    80         $output = array();
    81         exec("git status --short $file_or_files 2>&1", $output);
    82         //exec("svn status $files_list 2>&1", $output);
    83         chdir($d);
    84         return implode("\n", $output);
    85 }
    86 
    87 /**
    88  * Commit une liste de fichiers avec un message et auteur fourni
    89  * on utilise pas $user et $pass en git pour commit
    90  * @param string $dir_repo
    91  * @param array $files
    92  * @param string $message
     45 * Definit le commiter par defaut sur un repository
     46 * @param string $dir_repo
    9347 * @param string $author
    94  * @param string $user
    95  * @param string $pass
    9648 * @return array
    9749 */
    98 function salvatore_vcs_git_commit_files_dist($dir_repo, $files, $message, $author, $user=null, $pass=null) {
    99         $files = array_map('escapeshellarg', $files);
    100         $files = implode(' ', $files);
    101 
    102         $d = getcwd();
    103         chdir($dir_repo);
    104         $output = array();
     50function salvatore_vcs_git_set_default_commiter_dist($dir_repo, $author) {
     51
     52        $output = array();
     53        $nom = $email = "";
     54        include_spip('inc/filtres');
     55        if (!$email = email_valide($author)) {
     56                return array(false, $output);
     57        }
     58        if ($author !== $email) {
     59                $nom = explode("<", $author);
     60                $nom = trim(reset($nom));
     61        }
     62        if (!$nom) {
     63                $nom = $email;
     64        }
     65
     66        $d = getcwd();
     67        chdir($dir_repo);
    10568        $res = true;
    10669        // on ajoute tous les fichiers pour commit
    10770        $commands = [
    108                 "git add $files 2>&1",
    109                 "git commit -m " . escapeshellarg($message)." --author=".escapeshellarg(salvatore_git_format_author($author)) . " 2>&1",
     71                "git config user.name ". escapeshellarg($nom). " 2>&1",
     72                "git config user.email ". escapeshellarg($email). " 2>&1",
    11073        ];
    11174
     
    12487}
    12588
    126 /**
    127  * on utilise pas $user et $pass en git pour push car ils sont dans le remote si c'est un https
    128  * et si c'est ssh il faut une cle pour le user www-data
    129  *
    130  * @param string $dir_repo
    131  * @param null $user
    132  * @param null $pass
     89
     90/**
     91 * Lire la date de derniere modif d'un fichier versionne
     92 * (retourne 0 si le fichier n'est pas versionne)
     93 * @param string $dir_repo
     94 * @param string $file
     95 * @return false|int
     96 */
     97function salvatore_vcs_git_lastmodified_file_dist($dir_repo, $file) {
     98
     99        $d = getcwd();
     100        chdir($dir_repo);
     101        $file = escapeshellarg($file);
     102        $lastmodified = exec("git log -1 -c --pretty=tformat:'%ct' $file | head -1");
     103        $lastmodified = intval(trim($lastmodified));
     104        chdir($d);
     105        return $lastmodified;
     106}
     107
     108/**
     109 * Afficher le status d'un ou plusieurs fichiers
     110 * @param string $dir_repo
     111 * @param string|array $file_or_files
     112 * @return string
     113 */
     114function salvatore_vcs_git_status_file_dist($dir_repo, $file_or_files) {
     115
     116        if (is_array($file_or_files)) {
     117                $file_or_files = array_map('escapeshellarg', $file_or_files);
     118                $file_or_files = implode(' ', $file_or_files);
     119        }
     120        else {
     121                $file_or_files = escapeshellarg($file_or_files);
     122        }
     123
     124        $d = getcwd();
     125        chdir($dir_repo);
     126        $output = array();
     127        exec("git status --short $file_or_files 2>&1", $output);
     128        //exec("svn status $files_list 2>&1", $output);
     129        chdir($d);
     130        return implode("\n", $output);
     131}
     132
     133/**
     134 * Commit une liste de fichiers avec un message et auteur fourni
     135 * on utilise pas $user et $pass en git pour commit
     136 * @param string $dir_repo
     137 * @param array $files
     138 * @param string $message
     139 * @param string $author
     140 * @param string $user
     141 * @param string $pass
    133142 * @return array
    134143 */
    135 function salvatore_vcs_git_push_repository_dist($dir_repo, $user=null, $pass=null) {
     144function salvatore_vcs_git_commit_files_dist($dir_repo, $files, $message, $author, $user=null, $pass=null) {
     145        $files = array_map('escapeshellarg', $files);
     146        $files = implode(' ', $files);
     147
    136148        $d = getcwd();
    137149        chdir($dir_repo);
     
    140152        // on ajoute tous les fichiers pour commit
    141153        $commands = [
    142                 "git pull --rebase 2>&1",
    143                 "git push 2>&1",
     154                "git add $files 2>&1",
     155                "git commit -m " . escapeshellarg($message)." --author=".escapeshellarg(salvatore_git_format_author($author)) . " 2>&1",
    144156        ];
    145157
     
    157169        return array($res, implode("\n", $output));
    158170}
     171
     172/**
     173 * on utilise pas $user et $pass en git pour push car ils sont dans le remote si c'est un https
     174 * et si c'est ssh il faut une cle pour le user www-data
     175 *
     176 * @param string $dir_repo
     177 * @param null $user
     178 * @param null $pass
     179 * @return array
     180 */
     181function salvatore_vcs_git_push_repository_dist($dir_repo, $user=null, $pass=null) {
     182        $d = getcwd();
     183        chdir($dir_repo);
     184        $output = array();
     185        $res = true;
     186        // on ajoute tous les fichiers pour commit
     187        $commands = [
     188                "git pull --rebase 2>&1",
     189                "git push 2>&1",
     190        ];
     191
     192        foreach ($commands as $command) {
     193                $output[] = "> $command";
     194                $return_var = 0;
     195                exec($command, $output, $return_var);
     196                // si une erreur a eu lieu le signaler dans le retour
     197                if ($return_var) {
     198                        $res = false;
     199                }
     200        }
     201        chdir($d);
     202
     203        return array($res, implode("\n", $output));
     204}
  • _plugins_/trad-lang/trunk/salvatore/vcs/svn.php

    r121566 r121573  
    2525        Cerdic <cedric@yterium.com>
    2626*/
     27
     28/**
     29 * Definit le commiter par defaut sur un repository
     30 * rien a faire en svn : le commiter = author
     31 * @param string $dir_repo
     32 * @param string $author
     33 * @return array
     34 */
     35function salvatore_vcs_git_set_default_commiter_dist($dir_repo, $author) {
     36
     37        return array(true, array());
     38}
    2739
    2840/**
Note: See TracChangeset for help on using the changeset viewer.