XCode + SVN + Sourceforge - Ca marche !
LeChatNoir
Membre, Modérateur
Hello,
Je me suis pris la tête 2 bonnes heures pour faire fonctionner Svn X avec un "repository" subversion hébérgé sur sourceforge.net (authentification https).
2 écueils à éviter :
1 - une fois que votre repository est activé sous sourceforge, vous DEVEZ autoriser les développeurs à l'utiliser en "Write" access ; Y COMPRIS VOUS, même si vous êtes project administrator, par défaut, vous ne serez pas autorisés à y accéder en écriture.
2 - Une fois que vous avez votre "working copy", quand vous allez vouloir faire vos commit, SvnX et XCode ne vous le permettront pas. En effet, ces 2 logiciels ne permettent pas l'authentification. Pour contourner ce problème, il faut faire un commit en ligne de commande la première fois. En faisant cela, vous mettez les infos d'authentifiaction en cache de manière permanente et XCode et SvnX les utilisent.
ex : svn import toto.m -m 'just for cache' --username VotreUserSourceforge
Et tout roule ! Et SVN, c'est excellent ! <br />
J'ai testé aussi SmartSVN qui lui autorise l'authentification. Et le plug in pour le finder ne marche pas pour ma part (en fait, j'ai pas vraiment cherché plus loin... Il m'affiche pas le status des fichiers...).
A+
Je me suis pris la tête 2 bonnes heures pour faire fonctionner Svn X avec un "repository" subversion hébérgé sur sourceforge.net (authentification https).
2 écueils à éviter :
1 - une fois que votre repository est activé sous sourceforge, vous DEVEZ autoriser les développeurs à l'utiliser en "Write" access ; Y COMPRIS VOUS, même si vous êtes project administrator, par défaut, vous ne serez pas autorisés à y accéder en écriture.
2 - Une fois que vous avez votre "working copy", quand vous allez vouloir faire vos commit, SvnX et XCode ne vous le permettront pas. En effet, ces 2 logiciels ne permettent pas l'authentification. Pour contourner ce problème, il faut faire un commit en ligne de commande la première fois. En faisant cela, vous mettez les infos d'authentifiaction en cache de manière permanente et XCode et SvnX les utilisent.
ex : svn import toto.m -m 'just for cache' --username VotreUserSourceforge
Et tout roule ! Et SVN, c'est excellent ! <br />
J'ai testé aussi SmartSVN qui lui autorise l'authentification. Et le plug in pour le finder ne marche pas pour ma part (en fait, j'ai pas vraiment cherché plus loin... Il m'affiche pas le status des fichiers...).
A+
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je vais essayer un jour SVNX ...
Pouvez-vous m'expliquer en deux phrases de quoi il s'agit et quel en est l'intéret ?
Ce post s'adresse en fait à ceux qui veulent utiliser le service SubVersion de SourceForge et qui butent sur les pb d'identification.
Fais une recherche avec le mot Subversion et t'auras pleins d'explications.
Pour dégrossir, c'est un outil de gestion de sources. En gros, tu mets tous tes sources dans le référentiel de cet outil, ce qui te permet :
1 - de conserver l'historique de tes modifications (versionning, retour arrière possible si gros pb, etc...),
2 - de partager facilement tes sources avec d'autres pour un développement collaboratif.
Son "ancêtre" est CVS (même si certains préfèrent continuer à utiliser CVS).
a+
Jamais eu à faire ça. Si tu mets ton login/mot de passe au moment du checkout, tout roule directement avec Xcode ou svnX.
C'est aussi très pratique si on travaille seul, mais sur plusieurs ordinateurs.
Je vais me renseigner sur Subversion.
(Pour les plus petits aussi c'est pratique évidemment, si on a déjà un repository SVN de dispo ce serait bête de s'en priver, mais bon sinon à la limite on peut s'en passer)
Tu peux ainsi taguer tes versions de ton logiciel et facilement t'y retrouver. Tu veux tenter une modification de ton code (qui risque de te faire changer pas mal de trucs dans plusieurs fichiers par exemple, genre impossible de se rappeler de tout ce que tu as modifié après coup), tu peux retravailler ton code en local ton code.
Et puis si ça marche bien, tu fais un "commit" (mise à jour de la base SVN d'après ce que tu as en local). Et si tu vois qu'en fait c'était vraiment une mauvaise idée et que ça marchait mieux avant, hop, tu reviens à l'était initial ("revert").
Une autre personne bosse avec toi sur le projet ? Elle fait des modifications sur un module, elle les teste localement sur sa machine, si ça marche pas nickel elle refait ce qu'il faut, elle débug, jusqu'à ce que ce soit OK. Quand tout est OK, elle fait un "commit" pour envoyer ces modifications dans la base SVN. Et toi tu fais un "Update" régulièrement pour récupérer de la base SVN les choses qui ont changé, donc dans le lot tu récupères la nouvelle version du module qu'a modifié ton collègue.
Et pas de soucis si vous avez travaillé par exemple sur le même fichier mais à des endroits différents dans le fichier, SVN fera le "merge" (fusion) des modifications sans soucis, intégrant à la fois tes modifs et les siennes.
Tu te rends compte que tu as rajouté un truc y'a déjà un mois, qui semblait marcher, mais tu viens seulement de voir un bug (effet secondaire) dû à cette modif qui commence à dater (alors qu'entre temps y'a plein d'autres trucs qui ont évolué dans ton code) ? Tu peux revenir en arrière sur une ou plusieurs versions d'un ou plusieurs fichiers, pour revenir à la version XX.YY ou à la version du JJ/MM/AA, ou encore demander les différences qu'il y a entre ton code d'aujourd'hui et le code de la version N pour qu'il te mette clairement en rouge les lignes qui ont changé et tout de suite voir le problème, etc...
Voilà , y'a sans doute encore plein d'autres cas, mais ça te donne clairement des idées de cas où SVN est vraiment pratique.
Ah ouais d'accord. En fait, c'est parce que j'ai fait mon check out sans renseigner de user/pwd (puisque sourceforge accepte un checkout sans user/pwd).
Merci de l'info !
Voilà , je suis bien content parce que ça fait un bout de temps que je cherchais ce genre de service simple à utiliser.
Pour la peine je laisse l'adresse de mon projet-cocoa-que-je-bosse-sans-trop-forcer-depuis-un-an:Â
A taper dans Terminal avec subversion installé:
svn co http://opensvn.csie.org/cocoa/trunk/Mediasphere
je me suis inscrit chez OpenSVN
maintenant, si j'ai mon projet sous XCode, je fais comment pour le uploader sur ce SVN?
tu pourrais pas nous faire un step by step de comment mettre en place un SVN fonctionnel?
je t'en serais eternellement reconnaisant ^^
elf
Moi je l'ai fait en CLI sans difficultés et sans connaitre à fond svn donc je pense que c'est aussi bien.
Donc pour le step-by-step avec svn 1.2 ou 1.3 installé:
1/ Importer ton projet dans le repository:
Normalement un dossier nom_du_projet sera créé à la racine de ton repository. Si jamais svn te dit que le dossier n'existe pas, tu peux le créer à la main:
svn mkdir http://OpenSVN.csie.org/nom_du_repos/nom_du_projet
2/ Créer une "working copy" du projet.
Ensuite tu ouvres ton projet xcode contenu dans ta "working copy" et dans le panel "général" tu coches la case SCM et tu choisis "Subversion".
Le projet est sous SCM. Tu peux ajouter, mettre à jour, supprimer des fichiers dans xcode qui syncronisera avec ta working copy.
3/ C'est tout. Je te conseille l'aide de subversion très bien faite: svn help <nom de commande>.
Et aussi l'aide de xcode sur l'intégration du SCM. On s'y fait assez vite. Une chose à savoir: quand on ajoute un fichier/dossier dans le projet xcode (à gauche), il faut l'ajouter au repository pour qu'il soit sous contrôle.
Voilà c'est à peu près tout. Il n'y a que le renommage de fichiers depuis xcode qui pose problème, je préfère le faire en ligne de commande (svn rename oldname newname).
Subversion porte bien son nom par rapport à CVS, parce que ce qui est vraiment subversif, c'est la simplicité !
comment on fais pour changer la variable $PATH?
edit: ah j'ai trouvé: "sudo pico /etc/profile"
subversion/libsvn_ra_dav/util.c:826: (apr_err=175002)
svn: PROPFIND request failed on '/BomberMAC/BomberMAC'
subversion/libsvn_ra_dav/util.c:296: (apr_err=175002)
svn: PROPFIND of '/BomberMAC/BomberMAC': Could not read status line: connection was closed by server. (http://OpenSVN.csie.org)
pour ta commande.
Même avec un simple
svn cat http://svn.collab.net/repos/svn/trunk/README
(qui est la commande du README pour tester SVN) ça fais la même erreur quasiment:
svn: PROPFIND request failed on '/repos/svn/trunk/README'
subversion/libsvn_ra_dav/util.c:296: (apr_err=175002)
svn: PROPFIND of '/repos/svn/trunk/README': Could not read status line: connection was closed by server. (http://svn.collab.net)
Si quelqu'un vois le problème!
J'ai demandé partout, chez celui qui fais le binaire OSX (martin ott de codingmonkeys), chez subversion, sur le chan irc. Personne ne sais ce qui ne va pas!
Les accès SVN à cet hébergeur sont ils sécurisés par user/pwd ?
Si oui, as tu essayé ceci :
svn import -m "Import initial" /chemin/racine_projet_xcode http://OpenSVN.csie.org/nom_du_repos/nom_du_projet --username TonUser
As tu bien créé/défini ton projet sur le serveur hébergeur ?
En plus, si j'ai bien compris, tu as Tiger donc pas de pb. Utilise le svn installé par défaut.
Il se trouve dans ...
ah ben merde, en cherchant sur mon iMac ou ca se trouvait, je me rend compte qu'il n'y est pas !!! Il n'est que sur mon iBook ! Donc j'ai du l'installer un jour :-\\
Et comme je m'éloigne pas trop des sentiers battus, j'ai du suivre la doc Apple et comme je me rappelle meme pas l'avoir fait, j'ai pas du avoir trop de pb donc je t'invite a faire pareil en suivant la doc ici :
http://developer.apple.com/tools/subversionxcode.html
=> paragraphe Installing Subversion
Ca devrait le faire....
Ben je vais pas pouvoir plus t'aider alors :-\\
De mémoire, j'ai installé SVN à partir de là : http://metissian.com/projects/macosx/subversion/
mais j'ai l'impression que c'est ce que tu as fait...
Je n'ai rien eu à changer ni dans mon .profile ni ailleurs...
Sorry...
ça ne marche paaaaas...
:'(
:'(
:'(