Bonjour à tous,

Je pense ne pas être le seul à vouloir en installer un pour ses propres dev, mais je cherche à installer un serveur serveur SVN sur mon serveur local sous Windows.

Pour le moment mon serveur est très simple :

  • Un PC avec Windows Server 2003 (j'ai recup le PC avec le windows préinstallé)
  • EasyPHP 5.3 avec le fichier de config retouché pour pouvoir y accéder depuis un autre PC sur le local via son adresse IP

Et le soucis c'est que dès que je modifie un fichier, impossible de revenir en arrière en cas de soucis. C'est donc pour cela que je cherche à créer un serveur SVN et si possible avec une interface graphique pour que d'autres personnes puissent facilement créer des projets ...

Alors même si ce n'est pas grafikart qui le fait, si on me propose un autre lien, je ne suis pas contre car n'ayant pas trouvé la catégorie appropriée, je le poste ici.

Merci d'avance

18 réponses


Salut,

J'ai jamais monté de SVN sur Windows mais toujours sur GNU/Linux.
Après subversion semble être disponible pour Windows (voir le site officiel : http://subversion.apache.org/packages.html
Je sais pas si il y a des GUI (interface graphique) pour Windows mais dès que tu connais les quelques commandes, tu t'en passe facilement.

Autoriser la création de dépôt SVN sur ton serveur me semble un peu risqué.
Pour visionner le contenu d'un SVN via un navigateur, j'utilise WebSVN (http://www.websvn.info/) qui est plutôt sympa.

Utiliser EasyPHP en mode "production" est vraiment risqué car même sur la page d'accueil du projet, il est bien précisé que c'est uniquement pour le développement et le débuggage.
Utilises plutôt IIS ou Apache directement (avec une configuration beaucoup plus "prod")

En fait on s'est mal compris. Le Windows Server n'est que pour le local. Pour la prod j'ai un dédié. Et ce que je voudrais faire c'est pouvoir avoir un système de versionning, et faire qu'a chaque sauvegarde de mon fichier que j'utilise, qu'il "merge" (je sais pas si c'est le bon terme), avec le fichier qui est dans le dossier www de EasyPHP. Et tout en gardant les "versions" sur le serveur aussi. Car c'est le seul PC qui est sauvegardé et répliqué sur le NAS.

Je ne sais pas si c'est possible. C'est pour ça que je demande.

J'ai ouie dire qu'avec TortoiseSVN, on pouvait avoir un serveur SVN perso. Mais du coup je ne sais pas du tout comment configurer le soft pour mon serveur.
Pour ce qui est de l'IDE j'utilise PHPStorm 7, et je ne fais que du Web.

J'espère que ces infos te permettrons (ou d'autres), de me guider afin de faire ce que je voudrais.

Merci d'avance

J'ai pas vraiment tout compris.
C'est uniquement pour ton serveur de dev/local ?

Si ton but est que à chaque fois que tu "commit" un fichier sur le SVN, il soit copié dans ton dossier "www" d'easyphp.
Il faut utiliser des "hooks SVN". Tu trouveras surement de très bon script sur le net qui font ça (c'est une des fonctions les plus fréquentes comme hook).
Une petite explication du fonctionnement des hook de subversion : http://fr.clever-age.com/veille/blog/utilisation-des-hooks-avec-subversion.html.
Dans ton cas, il faut utiliser un "post-commit".

Pour le serveur SVN :
utilise Subversion pour créer le serveur et TortoiseSVN comme client (c'est plus simple).
Une fois subversion installé, as-tu un exe nommé "svnadmin.exe" ? (c'est la commande qu'on utilise sous linux pour créer un dépôt)

Je sais pas si ceci t'aide et réponds complètement à ta question.

Sinon le NAS c'est quoi comme marque ? j'ai déjà monté des SVN sur des NAS donc on sait jamais...

Oui je me sers du serveur local comme serveur de dev. Ce qui me permet d'avoir accès via son IP a l'ensemble des projets. Et comme ça le graphiste voit l'avancement du projet et il peut apporter ses commentaires au lieu de venir par dessus mon épaule.

Je regarderai ça et j'espère comprendre.

C'est un synology. J'ai vu qu'il existait un git pour synology mais j'ai jamais regardé comment le faire fonctionner.

Le paquet "git" des syno est pas encore au top : il faut encore passer par une connexion SSH et des lignes de commande pour créer ses dépôts !
Par contre tu as, dans le "centre de paquets" du syno, un paquet "SVN" qui te permet de créer/supprimer des dépôts et de définir les accès aux dépôts
ensuite sur Tortoise ou ton IDE, tu n'as plus qu'à "checker" le dépôt : svn://IP_OU_DNS_DU_NAS/NOM_DEPOT

EDIT : Ne pas oubliez d'ouvrir le parefeu du NAS + eventuel parefeu box (port 3690 TCP)

Et du coup je pourrais a chaque enregistrement regarder mes sites ?
Et avec subversion je peux faire pareil ?

Éclaire moi un peu car je suis perdu !
Et je suis pas sûr de comprendre tes questions donc faisons un point ;)

  • Tu as un serveur de prod à part

  • Un serveur Windows local

  • Un NAS Synology

Corriges moi si erreur !

Sur quoi veux-tu héberger les projets (accès web http) ?
Sur quoi veux-tu héberger les dépôts SVN ?
Si c'est sur la même bécanne ça devrait être assez simple sinon il faut mettre en place un système de synchro

Pour info (car ta dernière question était bizarre) : S ub v ersio n = SVN

Alors oui on va résumer :

J'ai un serveur de prod, qui est un dédié, qui est chez un préstataire
J'ai un serveur local, sous Windows Server 2003, qui me sert pour développer les sites en local avant la prod sur l'autre serveur
J'ai un NAS Synology (mais je voudrais éviter d'y toucher)

J'héberger mes projets web (local) sur mon serveur Windows Server 2003
Je voudrais héberger mes dépots SVN sur mon serveur Windows Server 2003 égaement
Oui c'est sur la même bécane.

Ok merci pour l'info c'est vrai qu'avec tous ces termes nouveau, c'est un peu compliquer de se comprendre et se faire comprendre.

Merci à toi de prendre le temps de me déchiffrer.

J'ai jamais fait sous Windows mais ça doit pas être bien difficile non plus !

  • 1ère étape, télécharger VisualSVN, logiciel Windows qui contient SVN + Interface GUI (si t'es un peu brouillé avec les lignes de commandes).
    Il est dispo ici : http://www.visualsvn.com/server/

Je ne connais pas vraiment VisualSVN et je ne dispose pas de licence Windows donc je te laisse faire l'installation et découvrir le logiciel comme un grand ;)
Il <u>ne faut pas</u> installer SVN dans ton dossier EasyPHP, c'est 2 choses complètements différentes.
On verra par la suite comment faire le lien entre les 2.

Alors soit tu as une option pour créer un dépôt SVN directement dans VisualSVN soit tu doit passer par la ligne de commande.
Dans ton dossier d'installation de VisualSVN, tu dois avoir un "svnadmin.exe". Dans une invite de commande, il faut lancer ceci :

svnadmin.exe create CHEMIN_DU_DEPOT

pour créer un dépot.

Pour la configuration, c'est pareil, je sais pas si VisualSVN permet de faire ceci via interface graphique.
Si ce n'est pas le cas, tu peux le faire directement via les fichiers du dépot.

Dans le dépôt, tu dois avoir différents dossier et fichier.
Les plus importants sont :

  • conf/passwd : contient les paires login/mdp des utilisateurs du dépôt

  • conf/authz : contient les droits des utilisateurs du dépôt

  • conf/svnserve.conf : contient la config du dépôt

  • hooks/* : contients les hooks, pour les activer : il faut les renommé sans l'extension "tmpl" (du moins sous linux)

La modification de la config des dépôts ne nécessite pas de redémarrage/rechargement du SVN (pas comme Apache par exemple)
Ne t'amuse pas à modifier les autres fichiers du dépôt, on ne touche plus à ce dossier.
Normalement à ce stade, ton serveur tourne (il doit avoir un daemon/service qui tourne en fond de tache sous Windows).

Passons au client

  • Télécharges, installes TortoiseSVN sur ton PC client, j'te laisse faire.

  • Créer toi un dossier de travail que tu utiliseras avec ton IDE,...

  • Dans ce dossier, clic droit => TortoiseSVN => Check

  • Renseigne l'adresse du serveur du genre : svn://IP_DU_SERVEUR/NOM_DEPOT/ si tu bosse directement sur le serveur : svn://127.0.0.1/NOM_DEPOT

  • Renseigne nom d'utilisateur/mot de passe comme dans la config

  • Le 1er check doit synchro les 2 dossiers

  • A partir de maintenant tu dois pouvoir check/commit directement dans ce dossier

Pour ton IDE, je n'utilise pas PHPStorm (un peu chère je trouve) mais la plupart des IDE détecte automatique la présence d'un SVN (via les dossier ".svn" qu'il ne faut pas modifier)

Avant d'allez plus loin avec l'utilisation des hooks,... j'attends un p'tit retour si tu as des soucis ou tout s'est déroulé sans accro :P
PS : Je dispose d'un accès à un PC sous windows mardi au taff si problème de config.

Joyeuse pâques,
++

Ah cool merci bien, c'est hyper complet. Je resterai ça a mon retour Mercredi.

C'est bien gentil de prendre sur ton temps de travail.

Super ! TortoiseSVN refuse de fonctionner. La version 1.8.6

Je ne comprends pas pourquoi ...
Il existe un autre logiciel que TortoiseSVN ?

Bizarre car j'ai aucun soucis avec Tortoise.
Une fois installé, y'a surement un reboot à faire mais tu n'as aucun logiciel a lancer :
Directement un clic droit dans un dossier pour accéder à TortoiseSVN (il s’intègre dans Windows)

VisualSVN a une version client (jamais testé).
Sinon si tu cherches un autre logiciel client : Wiki : Comparaison_des_clients_pour_Subversion

Sinon dans phostorm j'ai un truc de svn. Ça peut sans doute le remplacer ça il me demande ou stocker mon projet.
Donc c'est a voir. Je regarderai plus cette aprèm

EDIT :

J'ai regardé mais je me perds dans tous ces termes de checkout ...
https://www.jetbrains.com/phpstorm/webhelp/using-subversion-integration.html

Voilà ce que je fais sous PHPStorm :
VCS --> Checkout from version control --> Subversion
Dans repositories, je mets : http://mon\_serveur/svn/mon\_projet/
Puis je clic sur checkout
Et il me demande select checkout destination directory

Et là franchement je suis trop perdu.

Sinon j'ai Import into version control mais je pige pas du tout

check ou checkout : récupérer les modifications sur le serveur
commit : envoyer les fichiers locaux modifiés sur le serveur

Tu dois faire un check initial au début (même si le dépot est vide)
"checkout destination directory" doit surement être l'endroit où tu veux télécharger le dépôt en local

up : un petit retour ?

pourquoi ne passer essayer mercurial http://mercurial.selenic.com/downloads ;)

Désolé du retard. J'ai pas trop eu le temps de tester plus, j'ai beaucoup de travail.

Je regarderai ton logiciel rizerzero.

oui mais c'est pas le mien ;)
alors pour avoir l’interface il faut aussi TortoiseHg
mais si non en commande line c'est symap des init des commits ....