Iut de Sénart Fontainebleau

Programmation web licence professionnelle bdise

Sur le serveur dwarves de l'iut (dwarves.arda ou dwarves.iut-fbleau.fr), se trouvent :

L'authentification est réalisée via l'annuaire de l'iut. A la première connexion, vous aurez un compte sur l'interface. Je vous créerai alors un dépôt accessible par vous. Vous aurez à l'utiliser notamment pour ce tp.

Vous allez initialiser votre projet avec un repertoire init contenant le fichier suivant :

  1. <?php
  2. class point {
  3. protected $x;
  4. protected $y;
  5.  
  6. function __construct($a,$b) {
  7. $this->x = $a;
  8. $this->y = $b;
  9. }
  10. function __toString() {
  11. return "point : (".$this->x.",".$this->y.")";
  12. }
  13. }
  14. ?>
svn import init https://dwarves.iut-fbleau.fr/svn/votre_depot/trunk -m "initialisation"
  1. recuperez localement 2 versions pour simuler 2 utilisateurs, dans 2 repertoires user1 et user2. Les deux utilisateurs ont leur copie de travail.
  2. L'utilsateur 1 décide de modifier un peu le fichier ClassPoint.php

    1. <?php
    2. class point {
    3. protected $x;
    4. protected $y;
    5.  
    6. function __construct($a,$b) {
    7. $this->x = $a;
    8. $this->y = $b;
    9. }
    10. function __toString() {
    11. return "point : (".$this->x.",".$this->y.")";
    12. }
    13. function add(point $p)
    14. {
    15. $this->x += $p->x;
    16. $this->y += $p->y;
    17. }
    18. }
    19. ?>
    Faites un commit pour l'utilisateur 1.
  3. Pendant ce temps, l'utilisateur 2 modifie également le fichier :

    1. <?php
    2. class point {
    3. protected $x;
    4. protected $y;
    5.  
    6. function __construct($a,$b) {
    7. $this->x = $a;
    8. $this->y = $b;
    9. }
    10. function __toString() {
    11. return "point : (".$this->x.",".$this->y.")";
    12. }
    13. function sub(point $p)
    14. {
    15. $this->x -= $p->x;
    16. $this->y *= $p->y;
    17. }
    18. }
    19. ?>
    Faites un commit pour l'utilisateur 2. Que se passe-t'il ?
  4. Il est nécessaire de faire un update :
    svn update
    

    Réglez le conflit à la main, et marquez le conflit comme résolu.

    svn resolved ClassPoint.php
    svn commit -m "ajout soustraction a la classe point"
    
  5. L'utilisateur 1 décide de travailler sur une version personnelle du projet. Créez une branche (svn copy), et switcher sur cette branche (svn switch).

  6. L'utilisateur décide d'ajouter un nouveau fichier ClassRectangle.php :
    1. <?php
    2. require ('./ClassPoint.php');
    3. Class rectangle {
    4. protected $p1;
    5. protected $p2;
    6.  
    7. function __construct ($a,$b)
    8. {
    9. $this->p1 = $a;
    10. $this->p2 = $b
    11. }
    12. function __toString()
    13. {
    14. return "points : ".$p1." et ".$p2;
    15. }
    16. }
    17. ?>
    Ajoutez le dans le depot et committez.
  7. L'utilisateur 2 constate un bug dans la méthode sub, qu'il corrige. Faites-le !
  8. L'utilisateur 1 fusionne sa branche avec le tronc pour corriger lui aussi le bug (svn merge).

retour à la page d'accueil

retour au sommet