2013-02-06 10 views
9

Sono parte di un progetto che sta avviando che avrà un eseguibile client e un eseguibile server. Stiamo usando git per mantenere il nostro team aggiornato con il codice e questa è la prima volta che molti di noi usano git (questo progetto è per una classe). Sto iniziando a configurare il repository git per il mio progetto ma non sono sicuro di quale sarebbe il miglior design per avere il codice client e server.Configurazione repository Git per un progetto che ha un server e un client

Quindi, sulla domanda, come deve essere installato il repository? Non ci sarà molta condivisione del codice tra i due eccetto il networking. Tuttavia, stiamo vedendo il networking tra i due come l'aspetto più importante e vogliamo mantenere entrambi utilizzando gli stessi concetti di networking. Ho fatto qualche ricerca in alto e vedo possibilità, due repository separati in cui dovremo garantire che entrambi i codici siano compatibili tra loro, o utilizziamo un singolo repository?

Mi dispiace per l'approccio abbastanza nuovo per questo, ho letto "Git Pro" ma non ho ancora avuto troppa esperienza con l'utilizzo di git per il progetto che funziona con più persone.

risposta

5

Se i client e i server sono abbastanza indipendenti l'uno dall'altro, sono buoni candidati per essere nel proprio repository git. Questo è il component approach.

Si potrebbe avere tre pronti contro termine:

  • client
  • server di
  • networking (moduli comuni)

Il submobules in Git sono ordinate per registrare lo SHA1 esatto che si sta utilizzando insieme per il tuo sistema.
Così si potrebbe definire 2 genitori pronti contro termine:

  • client App

    • cliente
    • rete
  • application server

    • Server
    • rete

L'idea è di essere in grado di dire se il client e il server utilizzano la stessa o una versione diversa del networking.

Tutte le impostazioni potrebbero essere eccessive per un progetto di classe, ma potrebbero illustrare la differenza tra l'approccio di sistema (tutto in un unico repo gigante) e l'approccio componente.

Separare in diversi repository git consente tag e ramificazioni indipendenti.

+0

Questo suona come il modo migliore per farlo. L'ho provato e ho riscontrato alcuni problemi con l'aggiornamento dei cambiamenti nel sottomodulo di rete negli altri repository, ma penso di poterlo capire. Grazie. – CodeNeko

0

È necessario utilizzare un singolo repository, poiché può contenere più progetti/soluzioni/qualsiasi altra cosa che costruisce un eseguibile.

In generale, lo organizzerei nello stesso modo in cui vorreste organizzarlo localmente. Non vi è alcun motivo per deviare da ciò che funziona per voi per ospitare git.

Suggerirei di creare un repository github accessibile a tutte le parti.

Problemi correlati