• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

XCode e SVN: Prendiamo controllo dei nostri progetti

By Costantino Pistagna | on 30 Novembre 2010 | 6 Comments
Senza categoria

XCode-SVN-00 Forse non lo sapevate, ma ogni Apple Macintosh che comprate con Snow Leopard, ha in dotazione un potentissimo sistema di gestione revisione per i files e progetti che scrivete.
Perchè è importante adottare un sistema di revisione per i propri files/progetti? Innanzitutto XCode è pronto per utilizzare appieno le caratteristiche dei sistemi di revisione multipli ed, inoltre, poter avere capillarità su ogni singolo file e relativa subversione all’interno del progetto, potrebbe aiutare (e di molto) lo sviluppo in team e la correzione di errori. Questa piccola guida, vuole essere un prontuario facile per la configurazione di caratteristiche e programmi già presenti, al momento in cui scrivo (10.6.5+), su MacOS X.

1. Configurazione del repository

Prima di tutto, bisogna configurare SVN. SVN, alias Subversion, è un potente sistema di revisione multipla per progetti e/o files non necessariamente legati ad XCode, anche se noi, oggi, vedremo proprio questo aspetto. Per maggiori dettagli, vi invito a visionare questo link.

Per poter creare un Repository di revisioni, è necessario utilizzare il tool da linea di comando svnadmin. Niente di più semplice:

svnadmin create /svnrepos

Il comando sopra CREA una cartella per i nostri repositories a partire dalla root del nostro disco. In automatico viene creato un file di configurazione che dovrà essere modificato secondo le nostre esigenze. In particolare, ritengo sia importante impostare almeno i seguenti parametri:

anon-access = none
auth-access = write

Il primo parametro indica l’impossibilità senza un login valido di accedere al nostro repository. La seconda opzione, ci permette di specificare il permesso di scrittura per gli autenti autorizzati.

A questo punto, spostiamoci nella cartella /Library/LaunchDaemons ed aggiungiamo un file per rendere il nostro nuovo servizio sempre disponibile all’avvio del nostro computer:

cd /Library/LaunchDaemons
vim org.tigris.subversion.plist

Ecco una copia del mio file di configurazione:





Label
org.tigris.Subversion
ProgramArguments

/usr/bin/svnserve
--daemon
--root
/svnrepos

RunAtLoad

Disabled

StandardErrorPath
/dev/null
UserName
root


Proviamo ad avviare il nostro servizio:

launchctl load org.subversion.plist

se tutto, è andato correttamente, digitando:

ps aux | grep svnserve

Otterremo qualcosa di questo tipo:

root … … … … /usr/bin/svnserve --daemon --root /svnrepos

Questo significa che il nostro servizio di repository è pronto per essere utilizzato. Complimenti!

2. Il client SVN ed i files da non sincronizzare

A questo punto è necessario effettuare una modifica alla modalità di sincronizzazione dei repositirory. Per default, infatti, il sistema sincronizza TUTTI i files. Questo, purtroppo, non è molto funzionale ed ottimale per i progetti di XCode.
Alcuni files e cartelle, infatti, non dovrebbero essere inclusi all’interno del sync, in quanto onerosi in termini di peso in bytes e complicati da gestire, in quanto composti da troppe sotto cartelle. Mi riferisco ai files ed alla cartella di build del nostro progetto.
Fortunatamente, SVN è abbastanza intelligente da permetterci di escludere a priori alcuni patterns che vengono incontrati durante la sincronizzazione. Per fare questo è necessario modificare il comportamento di default del nostro utente nei rapporti con il servizio SVN.

Apriamo un terminale del nostro sistema e digitiamo:

svn status

questo comando genererà una cartella nascosto, all’interno della home del nostro utente.

cd .subversion

ed editiamo il file di config presente all’interno

vim config

Abbiate cura di ricercare e modificare, come segue, la riga che inizia per global-ignores. Se la riga è commentata, scommentatela.

global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~
#*# .#* .*.swp .DS_Store build *~.nib *.so *.pbxuser *.mode* *.perspective*

Cercate la stringa:

enable-auto-props = yes

e verificate che sia scommentata. Alla fine, nella sezione [auto-props], aggiungete queste righe:

[auto-props]
*.mode* = svn:mime-type=text/X-xcode
*.pbxuser = svn:mime-type=text/X-xcode
*.perspective* = svn:mime-type=text/X-xcode
*.pbxproj = svn:mime-type=text/X-xcode

A questo punto il nostro sistema è PRONTO per ricevere il nostro primo progetto. Apriamo XCode e scegliamo l’opzione SCM->Configure Repositories:


XCode-SVN-01

Scegliete il tasto + in basso, nella colonna a sinistra e riempite i parametri a Destra, seguendo lo schema riportato sotto:


XCode-SVN-02

Utilizziamo la dicitura localhost per riferirci alla nostra stessa macchina. La finestra URL, verrà riempita automaticamente, in base ai parametri specificati sotto. Quindi, preoccupiamoci solo delle restanti opzioni.

Alla voce Scheme, digitiamo: SVN+SSH, questo ci permetterà di usare in congiunzione al protocollo SVN, le facilities e la sicurezza provenienti dal protocollo SSH.

Come Host, specifichiamo la voce: localhost, per riferirci alla nostra stessa macchina. Path, conterrà il percorso così come specificato nel comando di creazione del repository. Lasciamo vuoto il parametro Port e riempiamo User e Password, con le credenziali usate per accedere nel nostro Mac, attraverso il
servizio remote login (ssh).

Spostiamoci nella tabella Options e modifichiamola secondo lo schema riportato sotto:


XCode-SVN-03

A questo punto, creiamo un nuovo progetto da Xcode ed una volta aperto, scegliamo il file di progetto e visualizziamone le informazioni:


XCode-SVN-04

Premiamo sul tasto Configure Roots & SCM e scegliamo come repository, quello appena configurato:


XCode-SVN-05

Chiudiamo la configurazione e se tutto è andato correttamente, vedrete comparire un piccolo simbolo di database nella colonna più a sinistra del vostro progetto:


XCode-SVN-06

Manca ancora un ultimo passo: la sincronizzazione iniziale del progetto sul repository. Chiudiamo il progetto con COMMAND+W e dal meno di XCode, scegliamo l’opzione SCM->Repositories:


XCode-SVN-07

La finestra che ci appare, ci permetterà di interagire con il server SVN appena configurato ed, in particolare, ci permetterà di effettuare le opzioni di Import iniziale e Checkout. Vediamo come:


XCode-SVN-08

Scegliamo la voce IMPORT ed indichiamo come percorso, la cartella del progetto appena creato:


XCode-SVN-09

Dopo un paio di secondi, il sistema ci fornirà un riscontro, indicandoci che l’import è andato a buon fine:


XCode-SVN-10

Scorrendo, tra le cartelle disponibili, troveremo adesso anche quella del nostro nuovo progetto:


XCode-SVN-11

Complimenti. Adesso il nostro progetto è perfettamente sincronizzato, attraverso SVN. Potremo scegliere di “committare” le modifiche ogni qualvolta creeremo una versione “importante” del nostro lavoro, oppure potremo creare dei branch di sviluppo per il nostro team. Insomma, le possibilità sono davvero tante e vi rimando a questo link per saperne di più sull’uso di SVN:

Buona programmazione a tutti!
Costantino


bn-Allerta-Soglie-per-tre-iphone-devapp

Share this story:
  • tweet

Tags: Costantino PistagnaGuide varieprogetti ipadprogetti iphonerepositorysvnXcode

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Imparare ad usare git, primo esempio in locale

    6 Marzo 2017 - 0 Comment
  • Iniziare con Git: cos’è e come installarlo

    27 Febbraio 2017 - 0 Comment
  • Con Xcode 6.3 arriva il Crash Log Organizer

    26 Febbraio 2015 - 0 Comment

Author Description

6 Responses to “XCode e SVN: Prendiamo controllo dei nostri progetti”

  1. 30 Novembre 2010

    Tweets that mention XCode e SVN: Prendiamo controllo dei nostri progetti | devAPP -- Topsy.com

    […] This post was mentioned on Twitter by Bubi Devs, devAPP. devAPP said: XCode e SVN: Prendiamo controllo dei nostri progetti http://www.devapp.it/wordpress/xcode-e-svn-prendiamo-controllo-dei-nostri-progetti.html […]

  2. 30 Novembre 2010

    BigBalli

    ottimo…

  3. 30 Novembre 2010

    Xfight

    Grazie ! Proprio la guida che cercavo 😀

  4. 30 Novembre 2010

    ignazioc

    ciao, ottima guida.
    Sai per caso se per un progetto è possibile fare riferimento a più server svn? mi trovo a dover fare dei commit “ufficiali” sul server aziendale, ma per le modifiche minori vorrei usare un server locale.

  5. 8 Dicembre 2010

    daniele

    Ciao, una correzione il comando “launchctl load org.subversion.plist” in realtà è “launchctl load org.tigris.subversion.plist”

  6. 3 Maggio 2011

    ignazioc

    Ciao, con xcode4 ho un pò di casini con SVN…in particolare non trovo “configure root e cms” quindi non so come fare a dire che un progetto in locale debba usare uno specifico server svn.

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO