2011-11-21 10 views
6

Il nostro piccolo negozio di software ha recentemente migrato da Subversion a Git, in quanto i programmatori hanno trovato Git migliore. La migrazione non è stata indolore, stiamo riscontrando problemi con la funzione dei sottomoduli. La mia lamentela principale è che una volta che un repository contiene dei sottomoduli, non puoi semplicemente clonarlo e aspettarti che le cose funzionino. Devi fare un ulteriore passaggio per avviare e scaricare i sottomoduli. Tiri successivi dovrebbero update the submodules automatically, quindi va bene. Ma quando aggiungo un nuovo sottomodulo, spingo il commit e la gente tira, non ottengono automaticamente il nuovo sottomodulo, devono farlo di nuovo a mano git submodule update.Come rendere i sottomoduli Git più facili per i non programmatori?

Questo è stupido, poiché le persone non possono semplicemente estrarre un repository con i sottomoduli e aspettarsi che si costruisca. Questa comprensione è corretta? I programmatori possono semplicemente scrivere una sceneggiatura o un alias per aggiornare i sottomoduli dopo aver ricevuto nuovi commit, ma per i nostri sottomodatori non programmatori è un problema. Mi piacerebbe trovare una soluzione che faccia funzionare il repository subito dopo la clonazione/estrazione, indipendentemente dal client Git utilizzato.

Quali sono le mie opzioni?

+2

Si consiglia di utilizzare il comando 'git clone --recursive' per il clone iniziale, che si occuperà di parte della domanda. –

+0

Grazie, non sapevo di '--recursive'. Ma i nostri non programmatori usano un client GUI (attualmente GitBox), motivo per cui sto cercando una soluzione diversa. Sarebbe perfetto avere un supporto di prima classe per i sottomoduli nella GUI, ma non ho intenzione di trattenere il respiro. – zoul

+0

Sei sicuro che il percorso del sottomodulo sia l'approccio giusto? I sottomoduli dovrebbero essere moduli autonomi, quindi se le cose si rompono senza di loro, allora non è propriamente autonoma. – bluesman

risposta

-1

Al giorno d'oggi il supporto del sottomodulo è molto meglio, rendendo il problema quasi inesistente.

  • GitBox ha ricevuto un buon supporto per i sottomoduli.

  • SourceTree by Atlassian è un client Git gratuito che ha aggiunto il supporto del sottomodulo in 1.3. C'era a small glitch nella gestione del sottomodulo in 1.3.1, ma in caso contrario il client sembra coprire tutti i casi d'uso del sottomodulo che volevo - cioè, rende i sottomoduli praticamente trasparenti per i non programmatori.

  • Git Tower sembra anche a support submodules molto piacevolmente da 1,4.

+2

Nota che entrambi gli strumenti sono disponibili solo per Mac – Yogu

+2

e nessuno di essi sembra essere open source. – firegurafiku

0

Consiglio vivamente lo git-slave se si prevede di utilizzare molti sottomoduli soprattutto se si intende fare riferimento a "librerie comuni". Anche se i sottomoduli di ossa nude non sono così difficili da accelerare se concentrati su un paio d'ore con alcuni esperimenti per passare attraverso una serie di scenari.

Vorrei anche consigliare alcuni server CI per creare build per voi. Afferra tutti i sottomoduli necessari. Puoi creare tutti gli artefatti (decidi cosa vuoi che siano) disponibili tramite un file zip scaricabile. Uso TeamCity e questo è un ottimo modo per esporre tutto senza usare alcun VCS.

+0

Grazie, non conoscevo Git Slave. Temo che non funzionerà con i client Git grafici, che è un must per noi (e c'è anche il costo di aggiungere una soluzione di terze parti al mix). Ho pensato a un server CI e potremmo finalmente arrivare lì, poiché gestisce una grande percentuale dei casi d'uso.Ma i non programmatori hanno ancora bisogno di un accesso di prima classe al repository usando un client della GUI, quindi ho bisogno di affrontarlo. L'officina CLI + Git non è un'opzione, sfortunatamente. – zoul

+0

Speriamo di vedere presto una ragionevole visualizzazione basata su GUI nei sottomoduli. –

Problemi correlati