|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
![]() ![]() Clément Architecte Logiciel Inscription : avril 2008 Messages : 1 370 ![]() |
Bonjour, déjà, merci d'avoir cliqué sur cette discussion, vous allez surement pouvoir m'aider ^^
Pour commencer, je vais résumer la situation : Je développe une application Web en PHP afin de ( pour le moment ) afficher l'arborescence d'un dépot SVN ( Subversion ). Le truc, c'est qu'il faut que je fasse ressortir les fichiers qui ont été modifiés. Pour ça, j'ai fait un p'tit script ( qui marche sous UNIX, en bash ) que j'ai commenté ( ci dessous ), mais j'ai pas encore pu le tester en PHP pour la simple est bonne raison que je n'ai pas ( encore ) les accès au serveur PHP, donc c'est juste pour des points techniques, s'il manque des déclarations, ";" ou autre, osef ! Pour mon arborescence, qui est une fonction récursive, j'ai choisi de la faire dans un tableau à 2D pour que ça donne qqchose comme ça : ( version simplifiée ) i\j | ---- 0 | -------1| -------2 | ..... 0 | Tags / | --------| -------- | .... 1 | -------| Projet1/ | ------- | ---------- | Projet2 / | ----------- | .... 2 | -------| --------| toto.txt | tagada.txt | ---------| toto_v2.txt | .... ( désolé c'est pas forcément très lisible, mais j'ai fait du mieux que je pouvais ! ) Citation:
Par contre, avec mon algo, je ne peux tester si un dossier a été modifié QU'une fois que j'ai regardé son contenu ( si au moins un fichier a été modifié ). Du coup, je suis obligé de faire qq bricolages pour que mon dossier soit situé avant dans monTableau ( d'où les saveI et saveJ ) et donc dans mon arborescence. Mon pb, c'est que derrière ça, pour respecter le modèle MVC, j'ai une vue qui tente d'acceder à monTableau. L'autre façon, ça aurait été de rentrer mon dossier AVANT, mais dans ce cas, je ne sais pas s'il a été modifié, et il faudrait que je teste dans ma vue si un des fichiers qui suit (au moins) est modifié pour décider du statut de mon dossier.....bref, ça serait un peu nawak, déjà que là.... Et voici ma vue : Citation:
En résumé, c'est un peu la pagaille dans mon code. Mon soucis c'est plutôt de savoir si j'ai une meilleure façon de faire que celle que j'utilise actuellement, parceque ça me complique pas mal.... Le topic est long, et compliqué, mais j'espère que quelqu'un aura la sympathie de passer qq minutes dessus. Merci d'avance ! |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() |
hmmm je capte pas bien tout ce que tu veux faire mais d'après ce que j'ai lu, dans ton premier code tu as un soucis...
Tu veux faire appel à ta fonction de manière récursive en fonction de la valeur de $cpt_modif, or... $cpt_modif = TOUJOURS 0 vu qu'en début de fonction tu écris $cpt_modif = 0; |
|
|
00
|
|
|
#3 |
![]() ![]() Clément Architecte Logiciel Inscription : avril 2008 Messages : 1 370 ![]() |
Je n'ai pas précisé, mais il y a des variables locales et globales, dont cpt_arbo qui est globale.
Pour cpt modif, j'avoue qu'effectivement, ça ne devrait pas marcher :S Mais la magie d'Unix..... lol En changeant de place cette affectation, en la mettant par exemple juste avant l'appel récursif, ça ne fonctionne plus ( enfin, ça ne marche plus pour tous ). J'avais eu un pb dessus, mais je ne me rapppelle plus pk j'ai du mettre cette affectation ici, faudrait que je vérifie. M'enfin, c'est pas tant mon pb, l'algo marche, c'est juste que je doute de la methodologie. Pour réexpliquer ce que je veux faire : Je veux afficher une arborescence d'un dépot SVN, si vous ne connaissez pas, c'est un logiciel de versionning. En résumé, il s'organise selon 3 répertoire : Trunk, le tronc commum, Tags, qui sont les sauvegardes, et Branche qui est la partie expérimentale, où on fait les principaux développement. SVN permet qq fonctionnalités, mais en gros son boulot c'est d'organiser, gérer les sauvegardes, MaJ, et d'affecter des numéros de révisions ( qui permettent de savoir de quand date un fichier ou un MaJ ). En gros, t'as un fichier config.php dasn Trunk/, à la révision 0 il vaut "XXXX : 1965". Tu sauvegarde la révision 0 dans Tags/ .Si tu le modifie en "XXXX : 1578", tu seras à la révision 1. Et donc la version 0 contenue dans Tags ne sera plus à jour. Ce que je veux, c'est tester si mon contenu du répertoire Tags est à jour ou pas, par rappport au répertoire Trunk ( courant ). La partie du test de la modif du fichier, c'est une façon détourner via Unix de faire ce que SVN ne peut/veut pas faire ( ie comparer deux fichiers contenus dans deux répertoires distincts, SVN ne veut le faire qu'entre deux révisions d'un même fichier ). Au final, j'ai plus besoin d'aide sur le "comment faire" que sur le "ça marche pas ton algo", puisque je sais comment je peux faire ( à peu près, faut juste que je recherche un peu plus les bonnes fonctions), c'est juste qu'à mon avis c'est pas du tout optimal, c'est plutôt du bidouillage.... |
|
|
00
|
|
|
#4 |
![]() ![]() Clément Architecte Logiciel Inscription : avril 2008 Messages : 1 370 ![]() |
Bonjour !
Bon, j'ai fais pas mal de modif depuis hier : J'ai créé mon controleur ( bêtement appelé index.php ), créé une vue FrontView découpée en plusieurs partie, dont VueArbo qui contient le code pour afficher l'arborescence. J'ai installé un p'tit EasyPHP pour tester mon code et ça marche, par contre j'ai changé pas mal de points : plus de foreach mais un simple for avec parcours "intelligent" ( par rapport à mon tableau de base montré plus haut, il ne parcours pas l'intégralité, ce qui limite les pertes de temps ). Mon modèle MVC est implémenté à la va vite, mais en théorie j'dois pas être loin. Le seul truc qu'il me reste à tester c'est le script arborescence, contenu dans Model_Arborescence, que je ne lance pour le moment pas ( j'suis pas sur le serveur contenant le dépot, donc ça risque de faire grand chose ^^ ). Du coup j'ai déclaré un tableau 2D en dur, qui est l'équivalent de ce que doit me renvoyer arborescence. J'ai joint les fichiers, si y en a qui veulent jeter un coup d'oeil pour me donner leur avis je suis prenneur |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com