Domanda

Abbiamo due sviluppatori sulla stessa rete chiusa (ugh, stupido governo), un altro sviluppatore a un paio di minuti di macchina lungo la strada e un quarto sviluppatore a metà strada attraverso il paese.E-mail, ftp e supporti di rimozione sono tutti possibili metodi di trasferimento per le persone che non si trovano sulla stessa rete.

Sono uno dei due sviluppatori di rete chiusa, consideriamoci la sede "master".

Qual è la migliore configurazione/modello Mercurial per il gruppo?Qual è il modo migliore per trasmettere le modifiche a/dagli sviluppatori remoti?Poiché sono responsabile, ho pensato che avrei dovuto mantenere almeno un repository principale con un altro repository locale in cui posso sviluppare.Ogni altra persona dovrebbe semplicemente aver bisogno di un clone del master.È giusto?Immagino che questo mi renda responsabile anche della fusione?

Come puoi vedere, sto ancora cercando di comprendere il controllo della versione distribuita.Non penso che ci sia altro modo per farlo con la situazione della connettività.

È stato utile?

Soluzione

Gli utenti esterni alla rete possono effettuare cerotti, e/o utilizzare e-mail per inviare gli aggiornamenti al repository principale o a qualcuno, come te, per unirli.Le altre persone interne possono avere copie locali, come te, ed eseguire fusioni, ma se hai queste patch fuori dalla rete, potrebbe essere meglio che una persona se ne occupi in modo che nessuno si confonda, ma è qualcosa che dovresti fare Valuta te stesso.

Sincronizzando nell'altro modo, creerai una patch e loro invieranno un'e-mail o riceveranno un'unità flash agli sviluppatori remoti per applicare la patch al loro sistema.Avrai bisogno di una buona comunicazione nel team, amico, sono grato di non essere nei tuoi panni.

Questi sono i miei unici suggerimenti: beh, è ​​ovvio: procura loro una connessione VPN!Mi piacerebbe sapere come va, quali piani si stabilizzano in un ritmo settimanale, eccetera.

Altri suggerimenti

Le patch sono una soluzione semplice e versatile.

Per spostarsi tra gruppi più ampi di modifiche (in particolare modifiche e fusioni binarie), Mercurial offre pacchetti binari.Un bundle è fondamentalmente il materiale binario che viene inviato sulla rete quando lo fai hg push, ma qui viene catturato in un file.

Immaginiamo di aver ottenuto un clone in qualche modo (tramite unità flash, DVD, ecc.).Chiamalo upstream.Quindi creo un secondo clone, lo chiamerò devel.Faccio tutto il mio sviluppo in devel e fare molti commit, fusioni, ecc.Dato che Mercurial è distribuito, posso fare tutto questo offline.

Per vedere quali changeset mancano upstream Io faccio

% hg outgoing ../upstream

Quando ho qualcosa da inviare, posso usare

% hg bundle changes.hg ../upstream

per ottenere un file binario compresso che contenga i changeset inclusi tutti i loro metadati.Posso quindi masterizzare questo file su un CD e inviarlo per posta...

Il destinatario del pacchetto può farlo

% hg incoming changes.hg

per vedere l'elenco dei changeset e

% hg pull changes.hg

per decomprimere e aggiungere i changeset al suo repository.Molto probabilmente dovrà quindi eseguire l'unione: è esattamente come se avesse estratto direttamente dal tuo repository tramite HTTP o SSH.

Notare la upstream repository viene utilizzato solo come modo conveniente per ricordare quali changeset sono già presenti nel repository upstream.Puoi anche semplicemente annotare l'ID del changeset e utilizzarlo hg bundle --base durante il raggruppamento per specificare il changeset di base (comune).Vedere hg help bundle O guarda nel wiki.

Corretto.L'unico modo in cui qualcosa riesce a entrare nella rete chiusa è tramite un'unità flash.

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