Domanda

Sto cercando buoni suggerimenti su come implementare il controllo della versione e del codice sorgente per i progetti web.

Ho esaminato Subversion, ma sembra che si occupi solo del codice.Sto davvero cercando qualcosa che possa fare un buon controllo delle versioni, ramificazione, archiviazione, ecc.con non solo il codice sorgente, ma anche altre risorse Web come file artistici, filmati e persino backup di database.

Lavoriamo in un ambiente misto Mac/PC, quindi Visual Source Safe o qualsiasi cosa basata esclusivamente su PC non sarebbe una soluzione.Qualsiasi aiuto?

È stato utile?

Soluzione

Tutti i sistemi di controllo del codice sorgente che ho utilizzato (CVS, subversion, git) gestiranno file binari e testo.Se lavori con designer con esperienza limitata nel controllo della versione, in questo momento subversion ha una scelta migliore di GUI.Sul PC non c'è alcun sostituto per TartarugaSVN, e per il Mac di cui ho sentito parlare bene Versioni.

Altri suggerimenti

Cosa ti fa pensare che non puoi eseguire versioni, branch, archivi, ecc...file grafici con Subversion?

Ho usato Subversion per i miei programmi, che includono la grafica, e sembra che li gestisca bene.(Beh, la differenza è un problema, ma non ho sentito parlare di un buon programma per la differenza delle immagini.)

Puoi aggiungere qualsiasi tipo di file a subversion.Se si tratta di file binari, la versione salvata è semplicemente una copia mentre nei file di testo vengono salvate solo le differenze;tuttavia, salvare gli altri tipi di file in subversion va benissimo.

L'uso dei componenti aggiuntivi della shell (Tortoise su Windows) rende tutto ciò abbastanza semplice.Non ho esperienza con i client Mac, ma immagino che ci siano scelte là fuori.

Gli altri hanno sottolineato che Subversion e i suoi parenti non hanno problemi a gestire i file binari (anche se non in modo così efficiente in termini di spazio come il testo).Tuttavia, il requisito del backup del database è più interessante e mi sono imbattuto più di una volta.

Idealmente, vorrei una rappresentazione testuale della differenza tra due versioni di un database (schema e dati).L'applicazione di tale differenza ti porterebbe da una versione a quella successiva.Il motore di controllo del codice sorgente potrebbe semplicemente memorizzarlo con ogni commit.Le migrazioni di Rails sono un modo ingegnoso di gestire le differenze di schema, ma non ho visto nulla in grado di gestire le differenze complete di schema e dati in un semplice formato di testo.

In caso contrario, suppongo che potresti controllare un dump del database di testo come il tipo the mysqldump genera il comando per MySQL.L'algoritmo diff dello strumento di controllo del codice sorgente probabilmente non lo gestirà in modo efficiente, ma richiederà probabilmente meno spazio rispetto al check-in di un file di database binario opaco.

Utilizzo ancora Subversion e su Windows utilizzo TortoiseSVN che include TortoiseIDiff appositamente per esaminare le differenze tra i file di immagine.

Sto usando idiota per diverse settimane e mi sono affezionato parecchio.È multipiattaforma, gestisce i conflitti eccezionalmente bene e offre a tutti il ​​proprio repository di versioni completo in modo che possano archiviare le modifiche anche quando non sono connessi a una rete.

Molti progetti di alto profilo ora utilizzano git, incluso Ruby on Rails.

La sovversione ha binari precompilati per Mac OS X.È disponibile anche tramite MacPort E Fink.Ci sono un paio di ottime interfacce (a parte riga di comando). svnX è un client open source che esiste da un po' e, come già detto Versioni è un client closed source molto carino attualmente in versione beta.Dovresti comunque acquisire familiarità con la riga di comando, poiché potresti riscontrare problemi che questi client GUI non possono risolvere.

Subversion gestisce i file binari ottimo.L'ho usato per progetti web in passato e ho eseguito con successo la versione di file immagine e Flash con il codice che li utilizzava.

Il Mac ha qualcosa chiamato "Versione" che è un'interfaccia utente di sovversione come "Tortoise SVN". L'ho trovato facile da usare ed efficace.

Lavoro anche in un ambiente Mac/PC (maledizione ragazzi artistici) e sovversione è davvero la strada da percorrere.Conservo tutti i testi, le immagini, le query e il codice lì dentro.

I miei colleghi non esperti di tecnologia l'hanno trovato facile da usare una volta spiegato il concetto.

Darei sicuramente un altro sguardo alla sovversione.So che potrebbe essere noioso, ma leggere il libro SVN aiuterà moltissimo.

Personalmente utilizzo le versioni per Mac.Ha un'interfaccia utente davvero eccezionale per interagire con un repository di sovversione.

Quello che faccio è controllare la directory /Trunk di un progetto nella root del sito.In questo modo posso testare ed eseguire la copia di lavoro come configurazione di sviluppo effettiva.Una volta pronto per la pubblicazione, posso esportare i file dalle cartelle repository sans .svn e caricarli su un server di produzione o di staging.Spero che questo ti dia un'idea del tipo di flusso di lavoro che puoi avere usando subversion.

Penso che svn sia un'ottima scelta, alcuni utenti possono persino usare git per eseguire ramificazioni locali.Eseguo Eclipse sul mio Mac, quindi utilizzo una combinazione di git, riga di comando svn e subversive (un plugin Eclipse per svn).Ecco un elenco di client Mac SVN (la maggior parte sono multipiattaforma)

http://scplugin.tigris.org/ come TortoiseSVN ma non così ricco di funzionalità)
http://subcommander.tigris.org/
http://rapidsvn.tigris.org/
http://www.versionsapp.com/
http://www.syncrosvnclient.com/ (non gratuito $ 59)
http://www.lacoseinteractive.net/en/community/subversion/svnx/features/

Per utilizzare il controllo del codice sorgente con un database, probabilmente sarà necessario produrre una rappresentazione basata su testo dello schema e dei dati.Dovresti eseguirlo automaticamente una volta al giorno e applicare le modifiche al tuo repository.

Tieni presente che un DBMS può modificare l'ordine delle righe in un database per rendere alcune operazioni più efficienti.Ciò potrebbe portare a due dump che appaiono diversi senza avere effettivamente dati diversi.Assicurati che qualunque cosa crei il dump dei tuoi dati lo ordini in base alla chiave primaria di ciascuna tabella e che l'insieme di tabelle sia in un ordine definito, in modo che le modifiche che vedi quando esegui diff 2 dump siano solo le modifiche importanti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top