> C'est faisable avec un SCM classique, à la main, mais c'est très chiant.
$ svn switch -r 100 [url]
$ # tu testes, ça marche.
$ svn -r 101 [url]
$ # tu testes, ça ne marche pas. Tu notes sur un postit que la version (ou changeset si tu préfères) 101 a introduit une régression
$ svn update # tu passes à la version HEAD
$ # Tu récupères (ou visualise seulement) le diff qui a introduit le bug (tu peux le faire n'importe quand).
$ svn diff -c 101 > patch_qui_sucks # le '101' que tu as écrit sur le postit
$ # tu peux évidement regarder le log du "changeset" 101
$ svn log -r 101
# blabla
Et voila.
Après tu peux faire des trucs plus exotique comme :
$ svn switch [url]/branche_stable
$ svn merge -c 101 [url]/trunk
$ # ça marche sur la version stable. Donc le "changeset" 101 n'est pas le seul en cause dans le problème.
$ # un autre bug a probablement aussi été intégré à la de développement dans autre version que la version 101.
$
$ # tu peux forcer la version d'un sous-répertoire
$ svn update -r 90 lib
$ # le répertoire lib est à la version 90 et le reste à la version 95 par exemple
$ svn merge -c 101
$ # Damned, ça marche ! Le problème est une combinaison d'un bug dans /lib et du "changeset" 101
C'est si compliqué que ça ?
Bien des choses sont possibles avec svn si on le connait. Et fort heureusement il n'est pas compliqué tout en étant puissant.
Si git est plus simple, j'aimerai bien un démontration comme je viens de le faire avec svn.
[^] # Re: Re:
Posté par IsNotGood . En réponse au journal Git ou Mercurial ?. Évalué à 0.
Un bloque note...
> C'est faisable avec un SCM classique, à la main, mais c'est très chiant.
$ svn switch -r 100 [url]
$ # tu testes, ça marche.
$ svn -r 101 [url]
$ # tu testes, ça ne marche pas. Tu notes sur un postit que la version (ou changeset si tu préfères) 101 a introduit une régression
$ svn update # tu passes à la version HEAD
$ # Tu récupères (ou visualise seulement) le diff qui a introduit le bug (tu peux le faire n'importe quand).
$ svn diff -c 101 > patch_qui_sucks # le '101' que tu as écrit sur le postit
$ # tu peux évidement regarder le log du "changeset" 101
$ svn log -r 101
# blabla
Et voila.
Après tu peux faire des trucs plus exotique comme :
$ svn switch [url]/branche_stable
$ svn merge -c 101 [url]/trunk
$ # ça marche sur la version stable. Donc le "changeset" 101 n'est pas le seul en cause dans le problème.
$ # un autre bug a probablement aussi été intégré à la de développement dans autre version que la version 101.
$
$ # tu peux forcer la version d'un sous-répertoire
$ svn update -r 90 lib
$ # le répertoire lib est à la version 90 et le reste à la version 95 par exemple
$ svn merge -c 101
$ # Damned, ça marche ! Le problème est une combinaison d'un bug dans /lib et du "changeset" 101
C'est si compliqué que ça ?
Bien des choses sont possibles avec svn si on le connait. Et fort heureusement il n'est pas compliqué tout en étant puissant.
Si git est plus simple, j'aimerai bien un démontration comme je viens de le faire avec svn.