Maison développement back-end tutoriel php php操作SVN版本服务器类代码_php技巧

php操作SVN版本服务器类代码_php技巧

May 17, 2016 am 09:14 AM
svn

SvnPeer.php

复制代码 代码如下:

/**
*
* This class for execute the external program of svn
*
* @auth Seven Yang
*
*/
class SvnPeer
{
/**
* List directory entries in the repository
*
* @param string a specific project repository path
* @return bool true, if validated successfully, otherwise false
*/
static public function ls($repository)
{
$command = "svn ls " . $repository;
$output = SvnPeer::runCmd($command);
$output = implode("
", $output);
if (strpos($output, 'non-existent in that revision')) {
return false;
}
return "
" . $command . "
" . $output;
}
/**
* Duplicate something in working copy or repository, remembering history
*
* @param $src
* @param $dst
* @param $comment string specify log message
* @return bool true, if copy successfully, otherwise return the error message
*
* @todo comment need addslashes for svn commit
*/
static public function copy($src, $dst, $comment)
{
$command = "svn cp $src $dst -m '$comment'";
$output = SvnPeer::runCmd($command);
$output = implode("
", $output);
if (strpos($output, 'Committed revision')) {
return true;
}
return "
" . $command . "
" . $output;
}
/**
* Remove files and directories from version control
*
* @param $url
* @return bool true, if delete successfully, otherwise return the error message
*
* @todo comment need addslashes for svn commit
*/
static public function delete($url, $comment)
{
$command = "svn del $url -m '$comment'";
$output = SvnPeer::runCmd($command);
$output = implode('
', $output);
if (strpos($output, 'Committed revision')) {
return true;
}
return "
" . $command . "
" . $output;
}
/**
* Move and/or rename something in working copy or repository
*
* @param $src string trunk path
* @param $dst string new branch path
* @param $comment string specify log message
* @return bool true, if move successfully, otherwise return the error message
*
* @todo comment need addslashes for svn commit
*/
static public function move($src, $dst, $comment)
{
$command = "svn mv $src $dst -m '$comment'";
$output = SvnPeer::runCmd($command);
$output = implode('
', $output);
if (strpos($output, 'Committed revision')) {
return true;
}
return "
" . $command . "
" . $output;
}
/**
* Create a new directory under version control
*
* @param $url string
* @param $comment string the svn message
* @return bool true, if create successfully, otherwise return the error message
*
* @todo comment need addslashes for svn commit
*/
static public function mkdir($url, $comment)
{
$command = "svn mkdir $url -m '$comment'";
$output = SvnPeer::runCmd($command);
$output = implode('
', $output);
if (strpos($output, 'Committed revision')) {
return true;
}
return "
" . $command . "
" . $output;
}
static public function diff($pathA, $pathB)
{
$output = SvnPeer::runCmd("svn diff $pathA $pathB");
return implode('
', $output);
}
static public function checkout($url, $dir)
{
$command = "cd $dir && svn co $url";
$output = SvnPeer::runCmd($command);
$output = implode('
', $output);
if (strstr($output, 'Checked out revision')) {
return true;
}
return "
" . $command . "
" . $output;
}
static public function update($path)
{
$command = "cd $path && svn up";
$output = SvnPeer::runCmd($command);
$output = implode('
', $output);
preg_match_all("/[0-9]+/", $output, $ret);
if (!$ret[0][0]){
return "
" . $command . "
" . $output;
}
return $ret[0][0];
}
static public function merge($revision, $url, $dir)
{
$command = "cd $dir && svn merge -r1:$revision $url";
$output = implode('
', SvnPeer::runCmd($command));
if (strstr($output, 'Text conflicts')) {
return 'Command: ' . $command .'
'. $output;
}
return true;
}
static public function commit($dir, $comment)
{
$command = "cd $dir && svn commit -m'$comment'";
$output = implode('
', SvnPeer::runCmd($command));
if (strpos($output, 'Committed revision') || empty($output)) {
return true;
}
return $output;
}
static public function getStatus($dir)
{
$command = "cd $dir && svn st";
return SvnPeer::runCmd($command);
}
static public function hasConflict($dir)
{
$output = SvnPeer::getStatus($dir);
foreach ($output as $line){
if ('C' == substr(trim($line), 0, 1) || ('!' == substr(trim($line), 0, 1))){
return true;
}
}
return false;
}
/**
* Show the log messages for a set of path with XML
*
* @param path string
* @return log message string
*/
static public function getLog($path)
{
$command = "svn log $path --xml";
$output = SvnPeer::runCmd($command);
return implode('', $output);
}
static public function getPathRevision($path)
{
$command = "svn info $path --xml";
$output = SvnPeer::runCmd($command);
$string = implode('', $output);
$xml = new SimpleXMLElement($string);
foreach ($xml->entry[0]->attributes() as $key=>$value){
if ('revision' == $key) {
return $value;
}
}
}
static public function getHeadRevision($path)
{
$command = "cd $path && svn up";
$output = SvnPeer::runCmd($command);
$output = implode('
', $output);
preg_match_all("/[0-9]+/", $output, $ret);
if (!$ret[0][0]){
return "
" . $command . "
" . $output;
}
return $ret[0][0];
}
/**
* Run a cmd and return result
*
* @param string command line
* @param boolen true need add the svn authentication
* @return array the contents of the output that svn execute
*/
static protected function runCmd($command)
{
$authCommand = ' --username ' . SVN_USERNAME . ' --password ' . SVN_PASSWORD . ' --no-auth-cache --non-interactive --config-dir '.SVN_CONFIG_DIR.'.subversion';
exec($command . $authCommand . " 2>&1", $output);
return $output;
}
}
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser SVN pour le contrôle de version dans le développement PHP Comment utiliser SVN pour le contrôle de version dans le développement PHP Jun 27, 2023 pm 01:39 PM

Le contrôle de version est une opération très courante dans le développement PHP, et l'outil le plus couramment utilisé est SVN (Subversion). Il peut facilement gérer les versions historiques du code et les mises à jour du code lors du développement collaboratif. Ce qui suit explique comment utiliser SVN pour le contrôle de version dans le développement PHP. 1. Installez le client et le serveur SVN. Tout d'abord, vous devez installer le client et le serveur SVN. Le client SVN peut télécharger la version correspondante sur le site officiel de SVN et l'installer, tandis que le serveur doit être construit par vous-même. La méthode spécifique peut être.

Java SVN : le gardien du référentiel de code, assurant la stabilité du code Java SVN : le gardien du référentiel de code, assurant la stabilité du code Mar 09, 2024 am 09:20 AM

Introduction à SVN SVN (Subversion) est un système de contrôle de version centralisé utilisé pour gérer et maintenir les bases de code. Il permet à plusieurs développeurs de collaborer simultanément au développement du code et fournit un enregistrement complet des modifications historiques apportées au code. En utilisant SVN, les développeurs peuvent : Assurer la stabilité du code et éviter la perte et l'endommagement du code. Suivez l’historique des modifications du code et revenez facilement aux versions précédentes. Développement collaboratif, plusieurs développeurs modifient le code en même temps sans conflit. Opérations de base de SVN Pour utiliser SVN, vous devez installer un client SVN, tel que TortoiseSVN ou SublimeMerge. Ensuite, vous pouvez suivre ces étapes pour effectuer les opérations de base : 1. Créez la base de code svnmkdirHttp://exampl

Explication détaillée de la façon d'installer et de configurer le plug-in EclipseSVN Explication détaillée de la façon d'installer et de configurer le plug-in EclipseSVN Jan 28, 2024 am 08:42 AM

Explication détaillée de la façon d'installer et de configurer le plug-in EclipseSVN. Eclipse est un environnement de développement intégré (IDE) largement utilisé qui prend en charge de nombreux plug-ins différents pour étendre ses fonctionnalités. L'un d'eux est le plugin EclipseSVN, qui permet aux développeurs d'interagir avec le système de contrôle de version Subversion. Cet article détaille comment installer et configurer le plug-in EclipseSVN et fournit des exemples de code spécifiques. Étape 1 : Installez le plug-in EclipseSVN et ouvrez Eclipse

Remplacer svn diff par vimdiff : un outil pour comparer le code Remplacer svn diff par vimdiff : un outil pour comparer le code Jan 09, 2024 pm 07:54 PM

Sous Linux, il est très difficile d'utiliser directement la commande svndiff pour visualiser les modifications de code, j'ai donc cherché une meilleure solution sur Internet, qui consiste à utiliser vimdiff comme outil de visualisation de code pour svndiff, en particulier pour les personnes habituées à utiliser vim. C'est très pratique. Lorsque vous utilisez la commande svndiff pour comparer les modifications d'un certain fichier, par exemple, si vous exécutez la commande suivante : $svndiff-r4420ngx_http_limit_req_module.c, la commande suivante sera en fait envoyée au programme diff par défaut : -u-Lngx_http_limit_req_module.c (révision4420)-Lngx_

Installation SVN sur CentOS et installation en ligne de commande Installation SVN sur CentOS et installation en ligne de commande Feb 13, 2024 am 11:24 AM

L'installation de SVN sur CentOS est une opération très courante. Il s'agit d'un système de contrôle de version puissant qui peut être utilisé pour gérer et suivre les modifications pendant le développement de logiciels. Cet article présentera en détail comment installer SVN sur CentOS et fournira quelques outils couramment utilisés. méthode d'installation de la ligne. Il existe de nombreuses façons d'installer SVN sur CentOS. Deux méthodes d'installation courantes seront présentées ci-dessous. 1. Ouvrez le terminal et connectez-vous en tant qu'utilisateur root. 2. Exécutez la commande suivante pour mettre à jour la liste des packages système : ```yumupdate3. Exécutez la commande suivante pour installer SVN : yuminstallsubversion4. Une fois l'installation terminée, vous pouvez vérifier si SVN a été installé avec succès en exécutant la commande suivante : svn -. -v

Quelle est la différence entre svn et vss Quelle est la différence entre svn et vss Jun 21, 2022 am 11:23 AM

Différences : 1. vss a été développé par Microsoft et est payant, tandis que svn est open source et gratuit ; 2. vss doit avoir un client, tandis que svn peut utiliser le client, en mode ligne de commande ou en lecture seule sur la page Web Access ; 3. vss ne prend en charge que les systèmes Windows, tandis que svn prend en charge les systèmes Windows et Linux ; 4. vss est un mode "verrouiller-éditer-déverrouiller", et svn est par défaut un mode "modifier-conflit-fusionner" 5. Le numéro de version de ; vss correspond à un seul fichier et le numéro de version de svn correspond à l'ensemble de la bibliothèque de versions.

Compétences essentielles pour les développeurs Linux : maîtriser simplement le contrôle de version SVN Compétences essentielles pour les développeurs Linux : maîtriser simplement le contrôle de version SVN Jan 26, 2024 pm 09:54 PM

En tant que développeur Linux, vous devez souvent utiliser SVN pour contrôler les versions du projet. Pour les excellents développeurs, savoir vérifier les versions SVN est sans aucun doute l’une des compétences essentielles. Aujourd’hui, j’aimerais profiter de cette occasion pour partager mon expérience avec vous, en espérant vous aider à mieux maîtriser cette compétence pratique. 1. Pour installer l'outil de ligne de commande SVN, veuillez d'abord installer l'outil de ligne de commande SVN dans l'environnement Linux ! Veuillez composer le terminal, puis entrez en toute sécurité la commande suivante pour terminer l'installation : ```Cher utilisateur, veuillez exécuter sudoapt-getinstallsubversion pour installer Subversion. 2. Connectez-vous au serveur SVN Une fois l'installation terminée, nous devons nous connecter au serveur SVN. Entrez la commande suivante :

Premiers pas avec PHP : gestion des versions SVN Premiers pas avec PHP : gestion des versions SVN May 20, 2023 am 08:29 AM

En tant que langage de script côté serveur couramment utilisé, PHP est largement utilisé dans le domaine du développement Web en raison de ses avantages open source et multiplateforme. Dans le développement d'une collaboration multi-personnes, le contrôle de version est un outil indispensable. Il peut gérer efficacement la modification et la mise à jour du code source et éviter les conflits causés par une désynchronisation du code entre les membres de l'équipe. En tant qu'outil de contrôle de version populaire, SVN est également largement utilisé dans le développement PHP. Cet article vous présentera les connaissances de base du contrôle de version SVN dans le développement PHP, y compris l'installation de SVN.

See all articles