2009-02-11 11 views
30

Non ho assolutamente idea del controllo di versione. Solo che può essere molto utile in molti modi.Come iniziare con controllo di versione e PHP

Ho trovato alcune domande correlate ma nessuna che parte dall'inizio assoluto.

Io sono l'unico sviluppatore del mio lavoro che utilizza Mac OS X e tradizionalmente utilizzavo solo FTP.

Qualcuno può aiutarmi con il controllo della versione in relazione ai progetti PHP (ha importanza)?

+0

Che tipo di ambiente di lavoro hai? Il tipo di gestione del codice sorgente utilizzato dipende dal tuo ambiente. – Simurr

+1

@alex, potresti essere interessato alla mia risposta a http://stackoverflow.com/questions/250984/do-i-really-need-version-control/251121#251121 –

risposta

67

Sì, provare, ne vale la pena.E la lingua che stai usando non ha importanza. Funziona benissimo con PHP per me e lo sarà anche per te.

Vantaggi

Se si è l'unico sviluppatore, è infatti più facile andare senza controllo di versione. Tuttavia, si troveranno grandi benefici nell'utilizzo di un sistema di controllo della versione. Alcuni dei benefici più semplici saranno:

  1. Mai chiedendo cosa è la vostra ultima versione, una volta si torna a un progetto (non più myproject090201-archive2-final6.zip)
  2. mai paura di iniziare alcuni importanti refactoring , se commetti un errore nel tuo file, ti basterà eseguire il rollback all'ultima versione
  3. Se qualcosa smette di funzionare nel tuo progetto e hai la sensazione che funzioni in un punto, puoi testare alcune delle versioni precedenti facilmente e guarda la differenza tra la versione funzionante e quella non funzionante per trovare cosa ha rotto il codice
  4. Backup aggiuntivo del tuo cu progetto, e ancora meglio se non è sulla tua macchina ... naturalmente, punti aggiuntivi per il backup del tuo sistema di controllo della versione, non siamo mai troppo cauti, non vuoi dover riavviare quel progetto di un mese tu?

Scelte

come alcuni hanno detto, avete un paio di scelte per il vostro sistema di controllo versione e immagino si vorrà uno libero per iniziare. Ci sono alcuni prodotti commerciali eccellenti ma quelli gratuiti non hanno nulla di cui vergognarsi. Quindi, ecco alcuni sistemi di controllo versione gratuita molto popolare:

centralizzata contro distribuito

Subversion è lì da un po 'ed è classificato come' centralizzato '. Il che significa che tutti andranno sempre a prendere l'ultima versione e dedicheranno il loro ultimo lavoro a un sistema centrale, spesso su un altro sistema, anche se può facilmente essere sulla propria macchina. È un processo facile da capire.

Gli altri tre sono chiamati "distribuiti". Ci sono molti diversi processi possibili in quanto è un sistema più flessibile ed è per questo che quei tre nuovi arrivati ​​stanno ottenendo molta trazione in questi giorni in progetti open source in cui molte persone interagiscono tra loro. Fondamentalmente stai lavorando con le tue revisioni sul tuo computer, realizzando tutte le copie di cui hai bisogno e decidendo quali versioni condividere con altre persone su altri computer.

La tendenza sembra decisamente andare verso il sistema distribuito, ma poiché tali sistemi sono più recenti, mancano ancora gli strumenti della GUI che lo rendono davvero facile da usare e si potrebbe a volte trovare la documentazione più leggera. D'altra parte, tutto sembra essere corretto rapidamente.

Nel tuo caso, visto che lavori da solo, probabilmente non farà una grande differenza e, anche se ascolterai punti molto validi per i sistemi centralizzati e distribuiti, sarai in grado di lavorare con uno o altro senza problemi.

Strumenti

Se è assolutamente necessario uno strumento GUI per il vostro Mac, avrei poi scelgo SVN per ottenere avviato per controllo del codice sorgente. Ci sono due prodotti molto buoni per questo (commerciale):

E pochi other ones (come ad esempio la libera svnX) che stanno diventando un po 'vecchio e scostante in la mia opinione, ma potrebbe essere interessante provare comunque.

Se non vi dispiace usare gli strumenti della GUI, con l'aiuto di Terminal sarete in grado di fare tutte le stesse cose con poche semplici righe di comando con uno qualsiasi dei sistemi sopra menzionati.

Punti di partenza

In ogni caso, ti consigliamo alcuni punti di partenza.

  • per la sovversione, la prima tappa deve essere il loro libro libero, Version Control with Subversion. Prenditi un paio d'ore della giornata per passare attraverso i capitoli, sarà il momento ben investito. I capitoli introduttivi sono una buona lettura anche se non vuoi usare Subversion in modo specifico perché ti permetterà di capire un po 'meglio il controllo della versione.

  • Per un sistema distribuito, mi sono divertito con Mercurial ma è un argomento facilmente infiammabile, quindi ti lascerò fare la tua scelta lì. Ma se finisci per guardare Mercurial, dai uno sguardo allo this blog post, è stato un ottimo inizio per me che ti metterò in moto con le basi in pochi minuti se sei già un po 'abituato al controllo della versione in generale . Ad ogni modo, fai un salto di Mercurial's homepage e dai uno sguardo alla sezione Iniziare della pagina.

Conclusione

dare un andare, investire una giornata provarlo con alcuni file fasulli. Prova a rinominare i file e la directory, cancellando, spostando le cose, impegnando file binari contro file di testo, risolvendo i conflitti e tornando alle versioni precedenti per ottenere un blocco di esso. Questi sono spesso i primi ostacoli che si incontrano quando si gioca con il controllo della versione e sarà indolore se si tratta di un progetto non di produzione.

In ogni caso, è qualcosa che vale la pena apprendere che sarà utile con i tuoi progetti solisti e anche se finisci per lavorare con altri sviluppatori al tuo attuale lavoro o al tuo prossimo.

Buona fortuna!

5

Il tipo di codice è irrilevante.

Un sistema di controllo di versione open source e popolare è Subversion e offre un'ottima panoramica/manuale here.

2

Inoltre, è possibile ottenere Eclipse PDT (PHP Plugin) e utilizzare Subclibse nell'IDE.

+0

Che dovrebbe rendere più facile l'integrazione utilizzando subversion in il tuo flusso di lavoro. – VirtuosiMedia

0

Partenza anche altre opzioni - di Miscrosoft TFS (questo non viene utilizzato solo per il sistema di controllo del codice sorgente, ma per il monitoraggio dei difetti, la gestione dei progetti etc etc), Bazaar, Git sono quelli popolari.

-1

Alex, Il controllo della versione (e alcuni mi spaccheranno per questa affermazione) non è una cosa da poco, e anche gli sviluppatori molto esperti si mettono nei guai. Le cause più frequenti di frustrazione sono le limitazioni di un particolare prodotto (Visual Source Safe è famoso), ei membri di una squadra che non seguono lo stesso processo, o non capiscono affatto il processo. Questo non dovrebbe impedirti di utilizzare uno strumento di controllo del codice sorgente, è il contrario. Puoi usare efficacemente uno strumento solo se capisci cosa fa e perché.

Si consiglia di esaminare CVS. È in circolazione da molti anni, è relativamente semplice da installare, configurare e utilizzare, e mentre ci sono client GUI disponibili per la maggior parte delle piattaforme, impararlo dalla riga di comando può fornire il miglior accesso alle sue funzionalità.

+0

-1 CVS è ampiamente considerato come deprecato in favore di Subversion che offre un superset di funzioni, è meglio supportato dal sistema OP e risolve quasi tutti i problemi gravi di cui soffre il CVS. –

+0

Che cosa offre CVS che SVN non offre? Ho già sentito questa argomentazione e devo ancora ascoltare un argomento convincente per CVS. –

+0

È "semplice" perché è così vecchio. Tuttavia, i moderni sistemi di pacchetti rendono praticamente qualsiasi altra cosa altrettanto semplice, forse più difficile. – staticsan

3

Io uso Git per lo sviluppo PHP.

È veloce, flessibile, affidabile, pulito (CVS e SVN creano molte cartelle nascoste che personalmente non mi piacciono).

La sua natura distribuita consente di funzionare nel modo desiderato (con o senza un repository centrale).

È possibile trovare maggiori informazioni qui:

1

Se siete su un Mac, fatevi un favore e prendere versioni, un design accattivante (e altamente funzionale) Subversion GUI. Faresti meglio ad imparare la terminologia e farti un'idea di come funziona Subversion usando una GUI prima di saltare alla riga di comando. Una volta che sei in grado di impegnare le revisioni del tuo codice ed eseguire gli aggiornamenti per ottenere il lavoro di altre persone, torna indietro e leggi il libro dei bean rossi (è davvero il modo migliore per imparare Subversion in-and-out).

http://versionsapp.com/

2

Le versioni funzionano bene per un altro sviluppatore con cui lavoro. Inoltre, se si utilizza Textmate, il pacchetto SVN fornisce praticamente tutto ciò che è necessario per la maggior parte delle parti del flusso di lavoro di Subversion. Mi piace veramente.

Il plug-in Project Plus fa un ulteriore passo avanti aggiungendo piccoli badge non intrusivi ai file con versione nella struttura del progetto, mostrando a colpo d'occhio lo stato dei file in un progetto.