Impostazione del repository Git

2

Sto spostando il controllo del codice sorgente della mia azienda da TFS a GIT. Abbiamo definito TFS come.

  • Raccolta progetti /
    • / Client A
      • / Prodotto A
      • / Prodotto B
      • / Prodotto C
    • / Client B
      • / Prodotto D
      • / Prodotto E
      • / Prodotto F

Qual è il modo migliore per farlo in Git? Ho pensato a quanto segue:

  • Repository (Client A)
    • Filiale (prodotto A)
    • Filiale (prodotto B)
    • Succursale (prodotto C)
  • Repository (Client B)
    • Filiale (prodotto D)
    • Filiale (prodotto E)
    • Succursale (prodotto F)

Quale pensi che sia l'approccio migliore in quanto il design è leggermente diverso?

    
posta TheMonkeyMan 06.02.2014 - 11:44
fonte

2 risposte

13

Dovresti creare un nuovo repository per ogni progetto indipendente. Perché?

  • Qualcuno che lavora al progetto D non deve scaricare tutta la cronologia per E ed F.
  • I repository Git sono poco costosi da inizializzare, quindi puoi utilizzarne quanti ne vuoi.
  • È doloroso lavorare con più progetti contemporaneamente quando sono rappresentati come succursali in un repository: quando passi da A a B per cercare rapidamente qualcosa, dovresti mettere da parte le modifiche non salvate, quindi controlla il altro ramo (che riscriverebbe la struttura completa delle directory, costoso per i progetti di grandi dimensioni), quindi controlla di nuovo il ramo originale e applica le modifiche memorizzate. Generalmente non è possibile visualizzare i progetti fianco a fianco senza clonare il repository più volte.
  • La storia sarà un disastro. Quando si utilizza Git, a volte si lavora su più rami di funzionalità che si uniscono nuovamente dopo un po '. Ma quando si ha un progetto per ramo (principale), si avranno più rami paralleli ma assolutamente non connessi. Non condividono nulla, quindi perché dovrebbero condividere il repository?

Se un progetto dipende da un altro progetto, puoi usare i sottomoduli git per connettere i repository senza dover mettere tutto in un unico repository.

    
risposta data 06.02.2014 - 12:26
fonte
0

Nella nostra azienda, sviluppiamo tutto il codice sorgente da un grande repository con singole cartelle per ogni cliente / prodotto. Sebbene i clienti ricevano ciascuno un proprio pacchetto software personalizzato, tutti i nostri prodotti hanno le nostre competenze in comune e riutilizziamo gran parte del nostro codice. Questo riutilizzo avviene tramite librerie condivise . Avere tutti i progetti client nello stesso repository consente di soddisfare tutte le necessarie dipendenze della libreria .

Anche se in questo momento tutti i prodotti software sono distinti e non sovrapposti, il riutilizzo del codice e le librerie condivise potrebbero venire in futuro. Questa estensione sarà molto semplice in un singolo repository, ma più complessa con più.

    
risposta data 16.07.2015 - 10:39
fonte

Leggi altre domande sui tag