2012-08-10 17 views
10

Ciao, ho intenzione di aggirare questo per un po 'di tempo, ma mi piacerebbe usare git per mantenere alcuni siti di sviluppo typo3. Ho fatto qualche ricerca e le informazioni più informative (chromium translated site) sull'argomento non sono chiare ma mi hanno fatto riflettere. Mi piacerebbe sapere come configurare un repository gestito git e se ci sono alcune/altre cartelle che dovrei ignorare durante l'impostazione del repository, cosa dovrei essere cauto, le migliori pratiche, ecc. Ho deciso che con ogni versione , un db dump verrebbe fatto separatamente, il che corrisponde alla pietra miliare, perché al momento non sono sicuro di come affrontare questo aspetto del controllo delle versioni CMS.Come gestire al meglio le installazioni di TYPO3 usando git?

+1

Link morto, probabilmente comunque obsoleto, ma ecco cosa rimane: http://web.archive.org/web/20130706031806/http://www.chmuul.net/2010/02/saubere- git-repositories-fur-typo3-projekte –

risposta

18

C'è è tipico .gitignore

/fileadmin/user_upload/ 
/fileadmin/_temp_/ 

/uploads/ 

/typo3conf/temp_CACHED* 
/typo3conf/temp_fieldInfo.php 
/typo3conf/localconf_local.php 

/typo3/ 
/t3lib/ 
/typo3temp/ 

Tenere presente che quando si utilizza TYPO3 con git non installare qualsiasi estensione del telecomando con Extension Manager!

Invece di importare localmente, installarlo localmente, quindi eseguire il commit e il push dei file di ext e modificato localconf.php sul server remoto.

Alla fine del localconf.php includono localconf_local.php (ignorato)

@include('localconf_local.php'); 

Esso permetterà di ignorare es. credenziali per DB o percorso personalizzato ImageMagick senza modificare l'originale localconf.php. Ogni sviluppatore del team scrive naturalmente i propri valori su localconf_local.php.

Tipiche cartelle TYPO3 ignorate in .gitignore devono essere create manualmente ad ogni istanza, ad es.

typo3temp

fileadmin/user_upload

Naturalmente è necessario anche scaricare sorces TYPO3 (typo3, t3lib cartelle) - non v'è alcun senso più grande per tenerli sotto controllo di versione.

Altre cose, come uploads devono essere scaricate manualmente dal telecomando, quindi è meglio scrivere uno script che lo compili e ogni sviluppatore avrà la possibilità di scaricarlo con qualche link. Non è possibile aggiungerlo a git repo poiché questi file vengono creati durante la creazione dell'elemento di contenuto, quindi se non li ignorerai rischierai presto un enorme conflitto di fusione.

+1

Grazie per il suggerimento a tutti e due. Accetterò una risposta una volta che l'avrò implementata con successo in pochi giorni. –

+1

È necessario fare attenzione ad es. "/.git/config" non è esposto pubblicamente via HTTP (ho preso l'abitudine di mettere roba typo3 in una sottocartella/public /). modifica: haha, chmuul.net è il mio blog :) Se hai ulteriori domande, per favore chiedi. – AaL

+0

Nota aggiuntiva: vedrò se riesco a riscrivere il tutorial più dettagliato, tradotto in inglese e con la mia ricevuta capistrano. – AaL

10

Vorrei aggiungere alcuni aspetti alla risposta molto buona di biesiors: Dalla mia esperienza, la strategia migliore è mettere fileadmin/ e typo3conf/ sotto il controllo della versione e nient'altro all'inizio. Se si utilizzano le estensioni, si utilizzerà quindi solo la versione più recente dal repository TER. La configurazione dell'estensione (impostazione typoscript, valori locallang) verrà inserita in file esterni all'interno di fileadmin /. Esempio struttura di cartelle:

fileadmin/ 
- css/ 
- images/ 
- javascript/ 
- scripts/ 
- templates/ 
- - html/ 
- - templavoila/ 
- - typoscript/ 
- - xml/ 

Non memorizzare tutte le informazioni TypoScript nella base di dati - non può essere di versione da lì.

Luogo .gitignore dove necessario. Ignoriamo anche typo3conf/ext/ e typo3conf/l10n/. Perché? Se scriviamo le nostre estensioni (o modifichiamo quelle esistenti), aggiungiamo lo typo3conf/ext/my_extensionname/ a un altro repository. In questo modo, l'estensione stessa può essere ben gestita, soprattutto se utilizzata in più progetti.E le estensioni invariate non hanno bisogno di essere modificate affatto.

Seguire il suggerimento @include('localconf_local.php'); - questa è una buona pratica.

Questa configurazione aggiunge una maggiore richiesta di disciplina di codifica, ma sarete ricompensati! Abbiamo lavorato con successo in quel modo per più di 12 progetti ora in una squadra di due.

+0

Attualmente stiamo memorizzando l'intera ext/directory in un repository git. Quale tecnica stai utilizzando per ottenere tutte le estensioni nel posto giusto dai repository all'interno di un processo di distribuzione automatizzato? I sottomoduli Git sembrano davvero poco flessibili e un sacco di spese amministrative. Usando la tecnica del sottostrato git puoi sempre estrarre l'estensione in un repository separato, se lo desideri. Penso che memorizzare tutte le estensioni in diversi repository sia più difficile di quanto valga. Per favore, parlami dei tuoi argomenti per farlo. – Ivo

+1

Potrebbe esserci un equivoco: includiamo solo le estensioni che stiamo sviluppando noi stessi, nella maggior parte dei progetti solo uno o due. Tutte le altre estensioni sono ignorate da 'typo3conf/ext /' in '.gitignore' – Mateng

Problemi correlati