OVH Cloud OVH Cloud

CVS

33 réponses
Avatar
Jerome Kraft
J ai cree mon serveur cvs dans /home/cvs
J ai dc dans /home/cvs : - CVSROOT
-media (que j ai importe grace a cvs
import -m ...)

Maintenant avec wincvs je me connecte bien au serveur. Mais quand je fais un
checkout de mon module media, il me dit :
cannot access /home//CVSROOT
No such file or directory

Ou est mon erreur? c est la config du serveur qui merde, mais que dois je
modifier?
Ca fait 2 jours que je suis dessus et je trouve pas.

Merci

10 réponses

1 2 3 4
Avatar
Erwann ABALEA
Bonjour,

On Tue, 7 Oct 2003, Jerome Kraft wrote:

En faite j essaie d utiliser CVS pour gerer un site web.


Bien. C'est une bonne habitude à prendre.

Donc, dans /home j ai cree mon repository, j ai un dossier media, dans
lequel j ai importe le site. Donc, j ai /home/media, dans ce dossier, j ai
les fichier index.php et index.php,v


Stop! Tu ne travailles quand même pas dans le repository, tout de même?

Tu devrais sérieusement lire la doc de CVS, au moins le cvsintro ('man
cvsintro' ou 'man 5 cvs' ou 'man -s 5 cvs', selon ton système). C'est le
minimum pour comprendre comment fonctionne CVS et comment il faut s'en
servir. Tant que tu n'as pas lu cette doc, inutile de poser de telles
questions. Si tu ne peux pas obtenir cette doc (pour une raison technique,
et non par fainéantise), ça peut s'arranger.

Et au passage, utiliser /home comme repository de CVS, c'est l'équivalent
de viser son pied, mais sans tirer pour le moment. Ca peut pêter plus
tard, et tu te seras flingué le pied. Mais plus tard...
Préfère un /home/cvs, ou un /var/cvs, ou un /cvsroot, enfin quelque chose
de *dédié* à CVS. /home, c'est la base de tous tes users, ça n'est donc
pas *dédié* à CVS.

mais quand je modifie via CVS le
index.php et que je fais commit, les modifications se repercutent sur
index.php,v mais pas sur index.php pourquoi?


Non. Tu modifies index.php à la main (en dehors de CVS), et quand tu fais
un commit, tes modifications sont prises en compte, d'où la mise à jour de
index.php,v. index.php est ton document de 'travail', et index.php,v fait
partie du repository. Lire la doc pour comprendre ces notions.

Lis la doc, sinon tu n'arriveras à rien.

Au fait, je t'ai déjà dit de lire la doc?

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
Un forum peut répondre à plusieurs besoins à la fois
Ici, le groupe des débutants dépasse en nombre le groupe des utilisateur
"middle-class" ce qui provoque inévitablement des tensions.
-+- EF - Guide du Neuneu d'Usenet - La lutte des middle classes -+-

Avatar
Jerome Kraft
Bon, pour le /home d accord, mais c est la que sont entreposes les sites. Ca
m evite de reconfigurer apache completement.
Ecoute, j ai lu la doc.
Je te fais un resume.
Serveur CVS sous Redhat (fichier index.php,v et index.php)<-> WinCVS sous
WinXP (index.php)
Quand je modifie index.php sous WinXP que je fais commit, sous Redhat il n y
a que le index.php,v qui est modifie, hors apache ne comprend pas le fichier
index.php,v. Il faut donc bien que cela modifie index.php

J ai fait des tests, et quand je fais la meme chose avec le CVSROOT, et le
fichier modules par exemple modules et modules,v sont bien modifies.



Ha, et j ai lu la doc... :)
Avatar
Pascal Bourguignon
"Jerome Kraft" writes:

Un principe fondamental de CVS, c'est la distinction entre le
repository et les sandboxes. Le repository est géré uniquement par
CVS: les utilisateurs n'y travaillent pas! Les sandboxes (ronds de
sables) sont les répertoires où les utilisateurs font des check-out et
des check-in, et où ils peuvent faire joujou en toute sécurité (on
peut toujours faire un nouveau check-out dans un autre rond de sable).

Dans le repository, il n'y a que des fichiers ,v gérés par cvs.


Bon, pour le /home d accord, mais c est la que sont entreposes les sites. Ca
m evite de reconfigurer apache completement.


Donc raison de plus pour ne pas mettre le repository dans /home.


Ecoute, j ai lu la doc.
Je te fais un resume.
Serveur CVS sous Redhat (fichier index.php,v et index.php)<-> WinCVS sous
WinXP (index.php)
Quand je modifie index.php sous WinXP que je fais commit, sous Redhat il n y
a que le index.php,v qui est modifie, hors apache ne comprend pas le fichier
index.php,v. Il faut donc bien que cela modifie index.php

J ai fait des tests, et quand je fais la meme chose avec le CVSROOT, et le
fichier modules par exemple modules et modules,v sont bien modifies.


Voici ce que je fais:

- j'ai un repository quelque part (/local/cvs pour ceux que ça intéresse).

- j'ai le répertoire "sandbox" où je développe mon site web
($HOME/site sur ma "workstation").

- le répertoire publié utilisé par apache est aussi un "sandbox".

- je fais mes modifications dans ma "sandbox". Quand c'est au point,
je fais un: cvs commit
puis je vais dans le répertoire publié, et je fais une mise à jour:
cvs update -A
(la première fois je fis: cvs checkout mon-site).



--
__Pascal_Bourguignon__
http://www.informatimago.com/
Do not adjust your mind, there is a fault in reality.

Avatar
Erwann ABALEA
On Tue, 7 Oct 2003, Jerome Kraft wrote:

Bon, pour le /home d accord, mais c est la que sont entreposes les sites. Ca


C'est déjà étrange. Donc si je suis un user sur ta machine, et que mon
répertoire home est dans /home/eabalea, alors mon répertoire home fera
partie de tes sites? Vraiment bizarre... Pourquoi ne pas créer un
/home/www par exemple?

m evite de reconfigurer apache completement.
Ecoute, j ai lu la doc.


Oui, mais il faut aussi la comprendre... <g>

Je te fais un resume.
Serveur CVS sous Redhat (fichier index.php,v et index.php)<-> WinCVS sous
WinXP (index.php)
Quand je modifie index.php sous WinXP que je fais commit, sous Redhat il n y
a que le index.php,v qui est modifie, hors apache ne comprend pas le fichier
index.php,v. Il faut donc bien que cela modifie index.php


J'ai bien compris, et j'aimerais que tu comprennes que *tu* te trompes,
parce que *tu* n'as pas compris comment on utilise CVS. Tu mélanges le
repository et tes répertoires de travail, et c'est Mal (tm).

Le repository CVS ne doit *pas* être utilisé avec tes outils autres que
CVS (cela inclut Apache, vi(m), emacs, ...). Le repository CVS contient
les modules et fichiers que tu décides de faire passer sous le contrôle
exclusif de CVS.

Chez moi, mon repository est dans /cvsroot, et quand je développe, je vais
dans mon /home/developpements (merci la complétion), et je fais:
- cvs co <module> (une première fois)
- cd <module>
- <travail...>
- cvs commit

J'ai à ce moment là dans mon répertoire
/home/eabalea/developpements/<module> la version la plus à jour (sauf si
je donne un accès CVS à d'autres personnes, et que celles-ci travaillent
sur le même module, ce qui est possible avec CVS), et dans
/cvsroot/<module> *toutes* les versions des fichiers qui composent le
<module>. Je ne vais *jamais* modifier à la main ce qui se trouve dans
/cvsroot/<module>, je travaille *toujours* à partir de mon /home à moi que
j'ai.

Donc dans mon /cvsroot/<module>, je n'ai *que* des fichiers "*,v", et dans
mon répertoire, j'ai les fichiers "*" qui correspondent. Par exemple, si
je travaille sur un projet appelé 'mobile', et que j'ai des fichiers
appelés 'g_barbre.c' et 'g_barbre.h', j'aurais les arborescences
suivantes:
- /cvsroot/mobile/g_barbre.c,v
- /cvsroot/mobile/g_barbre.h,v
- /home/eabalea/developpements/mobile/g_barbre.c
- /home/eabalea/developpements/mobile/g_barbre.h

J ai fait des tests, et quand je fais la meme chose avec le CVSROOT, et le
fichier modules par exemple modules et modules,v sont bien modifies.


Oui, mais c'est un cas spécial. En tant qu'utilisateur, tu ne dois pas
aller fouiller dans CVSROOT/. CVS a également besoin de fichiers de
travail (pour gérer ses alias de modules, ses droits, ...), et de
sauvegardes des différentes versions de ces fichiers de travail. Et pour
ce pseudo-module (CVSROOT), le repository et le répertoire de travail sont
un seul et même répertoire.

Ha, et j ai lu la doc... :)


Et je pense que tu devrais la relire, ne serait-ce que pour clarifier
quelques points qui te sont obscurs... :)

J'espère au moins que ma réponse et celle de Pascal t'auront un peu plus
éclairé sur la manière dont CVS est fait pour être utilisé.

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
TK> A la rentrée proposer un seul forum jeux vidéo modéré
Si c'est le cas je sollicite un droit de regard sur le travail des
modérateurs, avec d'autres joueurs volontaires.
-+- Spip in Guide du Neuneu Usenet - Modérons les modérateurs --

Avatar
Jerome Kraft
Oui, merci a tous les 2de votre aide. J ai bien compris.
Il me faut donc un /usr/cvsroot/monsite dans lequel j ai mes fichiers CVS et
via ces fichiers et Wincvs je fais les modifs.
Donc ma derniere question est comment mettre a jour mes fichiers dans
/home/monsite a partir de la version la plus recente de
/usr/cvsroot/monsite?
cvs update - A?


Merci encore pour vos explications :)
Avatar
Franck Lefebure
Je le fais quand même mais en traitant tous les fichiers comme des
binaires



Beurk... Sachant qu'un fichier déclaré binaire (-kb) ne fera pas l'objet
d'un diff pour diminuer la taille des sous-versions, tu te retrouves avec
un repository énorme. Et, beaucoup plus génant, avec le -kb, les
substitutions $Id$, $Header$, $Revision$, $Log$, etc ne sont pas
effectuées. Tu perds beaucoup.


M'en fous qu'il soit enorme c'est pas moi qui paie les Go ;-)

Ceci dit, tu n'as pas de problèmes de retours chariot quand
tu travailles avec un client CVS windows, quel qu'il soit, sur une sandbox
Samba
qui a été checkoutée sur le serveur ?

Si non, tu as bidouillé quelque chose ?
Si non quelle versions de cvs utilises-tu et quels clients utilises-tu ?

Thanks
@+


Avatar
Jerome Kraft
"Franck Lefebure" a écrit dans le message
de news:

Je le fais quand même mais en traitant tous les fichiers comme des
binaires



Beurk... Sachant qu'un fichier déclaré binaire (-kb) ne fera pas l'objet
d'un diff pour diminuer la taille des sous-versions, tu te retrouves
avec


un repository énorme. Et, beaucoup plus génant, avec le -kb, les
substitutions $Id$, $Header$, $Revision$, $Log$, etc ne sont pas
effectuées. Tu perds beaucoup.


M'en fous qu'il soit enorme c'est pas moi qui paie les Go ;-)

Ceci dit, tu n'as pas de problèmes de retours chariot quand
tu travailles avec un client CVS windows, quel qu'il soit, sur une sandbox
Samba
qui a été checkoutée sur le serveur ?

Si non, tu as bidouillé quelque chose ?
Si non quelle versions de cvs utilises-tu et quels clients utilises-tu ?

Thanks
@+





Bon, ca y est j ai reussi.
Mais je me rappel qu avec CVS je pouvais changer la version du site sur le
serveur, et pas seulement en local.
Car la, je dois me connecter au serveur avec putty pour lui dire de passer
mon /home/monsite en version 1.2 par exemple. Y a pas un moyen de faire ca
directement depuis WinCVS?

Merci encore pour vos explications



Avatar
Erwann ABALEA
On Tue, 7 Oct 2003, Franck Lefebure wrote:

Je le fais quand même mais en traitant tous les fichiers comme des
binaires



Beurk... Sachant qu'un fichier déclaré binaire (-kb) ne fera pas l'objet
d'un diff pour diminuer la taille des sous-versions, tu te retrouves avec
un repository énorme. Et, beaucoup plus génant, avec le -kb, les
substitutions $Id$, $Header$, $Revision$, $Log$, etc ne sont pas
effectuées. Tu perds beaucoup.


M'en fous qu'il soit enorme c'est pas moi qui paie les Go ;-)


Pour la taille, OK, mais pour les $Id$, $Log$, etc? Personnellement, dans
tous mes fichiers source en C, j'ai ceci au début:
-----
static char rcsid[] = "$Id$";

/*
* $Log$
*/
-----
Et CVS fait le reste du boulot tout seul (remplacement de $Id$ par
l'identifiant du fichier au moment du checkout, et ajout du dernier
message de log en haut de la liste $Log$, en conservant le ' * ' au début
de chaque ligne).
Après, chez un client, pour savoir quelle est l'exacte version d'un
binaire, je fais 'ident toto' (ou 'ident toto.exe'), et j'ai tous les $Id$
que j'ai déclarés...
Ca n'est pas possible avec un fichier binaire.

Ceci dit, tu n'as pas de problèmes de retours chariot quand
tu travailles avec un client CVS windows, quel qu'il soit, sur une sandbox
Samba
qui a été checkoutée sur le serveur ?


Quel est l'intérêt de faire ça? Tu veux modifier les mêmes fichiers à la
fois sous Windows, et sous un Unix-like? Dans ce cas, tu as effectivement
des problèmes, puisque la définition d'un fichier texte est différente sur
ces 2 plate formes. Mais ça n'est pas typique de CVS. Si tu récupères un
fichier par FTP par exemple, en le laissant en texte, et que tu le sauves
sur un disque partagé Samba, ben tu auras exactement le même problème.

Docteur, quand je fais ça, ça me fait mal...
Tu connais la réponse...

Si non, tu as bidouillé quelque chose ?


Non, j'évite de faire ça. Si je dois bosser sous Windows, j'ai un
répertoire de travail sous Windows. Pareil pour Linux/Solaris, ou autre.
Avec un repository CVS, il n'y a pas tellement d'intérêt à travailler sur
une sandbox commune.

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
BB: il me dit "Unable to parse configuration file". Que dois je faire ?
JM: Lire la doc
BB: CA MARCHE !!!!!!
-+- BB in : http://neuneu.ctw.cc - Le RTFM pour les nuls -+-



Avatar
Erwann ABALEA
On Tue, 7 Oct 2003, Jerome Kraft wrote:

Il me faut donc un /usr/cvsroot/monsite dans lequel j ai mes fichiers CVS et


Bien.

via ces fichiers et Wincvs je fais les modifs.


Sur un répertoire en local.

Donc ma derniere question est comment mettre a jour mes fichiers dans
/home/monsite a partir de la version la plus recente de
/usr/cvsroot/monsite?
cvs update - A?


Pas d'espace entre le '-' et le 'A'. Tu vas sur ta machine cible (par
exemple avec PuTTY), tu deviens le bon utilisateur, et tu fais ton 'cvs
update -A', en ayant au préalable fait un 'cvs co monsite'...

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
- Bientot==> Une rubrique membre avec photos
- Bientot==> "Un chat on line" pour discuter
Si j'amène la photo de mon membre, je pourai caresser le chat ?

-+- FF in Guide du Neuneu Usenet - Cha chanonchait bien pourtant -+-

Avatar
Erwann ABALEA
Bonjour,

On Tue, 7 Oct 2003, Jerome Kraft wrote:

Mais je me rappel qu avec CVS je pouvais changer la version du site sur le
serveur, et pas seulement en local.


Tu as vu ça où?

Car la, je dois me connecter au serveur avec putty pour lui dire de passer
mon /home/monsite en version 1.2 par exemple. Y a pas un moyen de faire ca
directement depuis WinCVS?


Quel est l'intérêt? Modifier le répertoire de travail du voisin?
Soit tu te débrouilles pour que /home/monsite te soit accessible, et tu
peux alors faire tout ce que tu veux à partir de ta machine Windows (avec
les restrictions d'usage concernant les fichiers texte entre Windows et
Unix), soit tu te connectes en PuTTY, et tu connais la suite.

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
OK to continue? <Yes> <No> <Maybe>

1 2 3 4