Domanda

Abbiamo 2-3 piccole squadre di 2-3 persone. Noi tutti git uso per il locale e per svn repository centrale e git-svn ottenuto sincronizzazione. Questo è funziona per tutto il tempo, tranne quando vogliamo condividere il nostro codice tra il team è di per sé.

Così abbiamo provato tirare git, questo crea un sacco di conflitti e non rileva che siamo sullo stesso albero. Si recupera tutti i cambiamenti (stessi come clone quindi pull) Naturalmente non voglio clonare piena di pronti contro termine. ogni volta che voglio condividere.

Si prega di suggerire un flusso migliore.

  1. Non possiamo sbarazzarsi di svn centrale.
  2. Non possiamo clonare ogni volta.
È stato utile?

Soluzione

nominare un membro del team come la 'hub git', lui / lei si sincronizza con il server SVN, altri membri del team interagire con loro, piuttosto che il server SVN direttamente. In questo modo git saprà che tutti i membri del team sono sullo stesso albero.

Altri suggerimenti

SubGit sembra una grande alternativa per voi.

SubGit è soluzione sul lato server, permette l'accesso al repository Git Subversion e viceversa. Ciò significa che è possibile lavorare con solo repository Git, utilizzando il client Git di vostra scelta.

È necessario installare SubGit nel repository Subversion una volta. Dopo di che si traduce immediatamente SubGit revisione svn in git commit su ogni svn commit e git commit in revisione svn su ogni git push.

SubGit è un software closed-source, ma è gratuito per i progetti open-source. Per maggiori informazioni si prega di fare riferimento a SubGit documenation .

Per aggiungere alla risposta di Chris Huang-Leaver, è necessario un punto centrale per dcommit / rebase con il repository svn.
Che non nega l'aspetto "decentrata" di Git, semplicemente permette a tutti di lavorare con, come uno dei loro repository remoti, uno repo "centrale" di riferimento (cioè quella sincronia con svn)

Non c'è un modo semplice per evitare l'onere di clone di tutto proveniente dalla (potenzialmente enorme) svn repo, perché la risultante Git pronti contro termine non può essere diviso in sottomoduli .
Che parte alle "soluzione" almeno uno, che comporterebbe:

  • la creazione di diversi Git accanto a quello principale (che sync con SVN)
  • esportazione patch dalla repo principale
  • applicazione di queste patch per ogni Git Repo rappresenta un progetto all'interno del principale repo Git.

Si deve ovviamente essere automatizzato, ma una squadra si concentrerà su una di tali repo git come suo repo "centrale", e la persona incaricata di sincronizzazione SVN sarebbe aggiornare quei repos Git piccole con patch provenienti dalla principale (e nascosto) repo Git <=> SVN.

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