XCode + SVN + Sourceforge - Ca marche !

LeChatNoirLeChatNoir 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 !  <3 <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+



Réponses

  • fouffouf Membre
    23:42 modifié #2
    J'utilise moi aussi SVN avec Sourceforge, et je le fais fonctionner à  la ligne de commande sans pb. C'est vrai que c'est vachement mieux pour les wrappers (nibs, projet XCode, ...).

    Je vais essayer un jour SVNX ...
  • tabliertablier Membre
    23:42 modifié #3
    bon, j'ai rien compris  :( !!!

    Pouvez-vous m'expliquer en deux phrases de quoi il s'agit et quel en est l'intéret ?
  • LeChatNoirLeChatNoir Membre, Modérateur
    23:42 modifié #4
    Salut,

    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+
  • juillet 2006 modifié #5
    dans 1152453905:

    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.


    Jamais eu à  faire ça. Si tu mets ton login/mot de passe au moment du checkout, tout roule directement avec Xcode ou svnX.

    dans 1152541332:

    2 - de partager facilement tes sources avec d'autres pour un développement collaboratif.


    C'est aussi très pratique si on travaille seul, mais sur plusieurs ordinateurs.
  • tabliertablier Membre
    23:42 modifié #6
    Ok, Merci pour l'explication du principe.  ::)
    Je vais me renseigner sur Subversion.
  • AliGatorAliGator Membre, Modérateur
    23:42 modifié #7
    Honnêtement, pour les gros projets c'est super pratique... voir indispensable.
    (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.
  • LeChatNoirLeChatNoir Membre, Modérateur
    23:42 modifié #8
    dans 1152545205:


    Jamais eu à  faire ça. Si tu mets ton login/mot de passe au moment du checkout, tout roule directement avec Xcode ou svnX.



    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 !

  • laurrislaurris Membre
    juillet 2006 modifié #9
    Si vous avez juste besoin d'un repository SVN, sans tous les plus qu'amène sourceforge, je vous conseille ardemment opensvn. Je viens d'essayer et en deux click et un import j'ai mis plusieurs projets xcode sous svn. Il n'y a pas à  remplir tout plein de formulaires ou attendre une validation comme chez sourceforge. Bien-sûr c'est gratuit. Il doit y avoir des limitations mais elles ne sont pas annoncées sur le site (d'ailleurs leur site est très laconique dans le genre).

    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

  • elfelf Membre
    23:42 modifié #10
    salut,

    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
  • laurrislaurris Membre
    août 2006 modifié #11
    En gros deux solutions: utiliser svn en ligne de commande ou avec un GUI genre SVNX.
    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:
    <br />svn import -m &quot;Import initial&quot; /chemin/racine_projet_xcode http://OpenSVN.csie.org/nom_du_repos/nom_du_projet<br />
    


    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.
    <br />svn co http://OpenSVN.csie.org/nom_du_repos/nom_du_projet nom_du_projet_local<br />
    

    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é !
  • laurrislaurris Membre
    23:42 modifié #12
    Elf, est-ce que ton import a fonctionné ?
  • elfelf Membre
    août 2006 modifié #13
    pas encore, j'ai pas encore installé svn proprement

    comment on fais pour changer la variable $PATH?
    edit: ah j'ai trouvé: "sudo pico /etc/profile"
  • elfelf Membre
    23:42 modifié #14
    bon bah voilà , j'ai installé SVN, (version 1.3.1 UB; j'ai un PB Ti G4 sous Tiger) mais malheureusement des que je fais n'importe quelle action avec un serveur SVN ça marche pas:

    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!
  • elfelf Membre
    23:42 modifié #15
    Personne ne vois ce qui ne va pas?

    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!
  • LeChatNoirLeChatNoir Membre, Modérateur
    23:42 modifié #16
    Slt,
    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 ?

  • elfelf Membre
    23:42 modifié #17
    le blêm c'est que SVN ne marche pas du tout, c'est pas un blêm niveau serveur, mais bien ma copie locale de svn...
  • LeChatNoirLeChatNoir Membre, Modérateur
    août 2006 modifié #18
    Et pourquoi l'avoir installé ? svn est installé par défaut sous OS X depuis la 10.3 non ?
    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....
  • elfelf Membre
    23:42 modifié #19
    une question: j'ai besoin d'avoire apache 2 pour utiliser seulement le client de subversion?
  • LeChatNoirLeChatNoir Membre, Modérateur
    23:42 modifié #20
    Nein camarade. C'est pour la partie serveur  ::)
  • elfelf Membre
    23:42 modifié #21
    mais dans ce cas, en quoi ton lien m'aide? je veux juste installer le client moi...
  • LeChatNoirLeChatNoir Membre, Modérateur
    23:42 modifié #22
    Ok, j'avais mal lu...
    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...
  • elfelf Membre
    23:42 modifié #23
    erf, c'est de la que je tien ma copie aussi.

    ça ne marche paaaaas...

    :'(

    :'(

    :'(
Connectez-vous ou Inscrivez-vous pour répondre.