2010-04-24 9 views
5

Desidero utilizzare Mercurial per acquisire le modifiche apportate all'installazione di vaniglia di un software che utilizziamo. Ogni volta che aggiorniamo il software, dobbiamo modificare manualmente i vari file di configurazione e aggiungere librerie di terze parti che utilizziamo nella versione attuale del software. La creazione di patch per i file di configurazione cambia bene, ma come faccio ad aggiungere librerie di terze parti (binari) a una patch Mercurial? È possibile?Come posso aggiungere binari completi a una patch Mercurial?

+0

Ricordatevi di upvote risposte utili ed accettare quello che ti piace di più. –

risposta

1

Anche se è possibile, non è consigliabile! (per Mercurial o qualsiasi altro VCS)
Un sistema di controllo versione non è fatto per registrare i binari (principalmente perché cresce rapidamente fuori proporzione, occupa molto spazio su disco e non ha un modo efficiente di essere memorizzato in delta)

È necessario registrare la configurazione per ogni versione taggata.
Questo può essere un file di testo o un maven pom per esempio. Tutto ciò che consente a un meccanismo esterno (come Maven) di scaricare e memorizzare localmente per te le giuste dipendenze.

Ciò significa che la patch includerà le modifiche a quel file di testo (ad esempio pom), nonché il resto delle modifiche al codice.

+0

Scoperto è possibile (usando hg add seguito da hg qrefresh), ma prendo i tuoi punti a bordo VonC. Potrei semplicemente installare un POM e un Nexus per gestire la mia situazione. Grazie per il consiglio –

2

Sì, l'estensione mq può gestire dati binari sia come dati testuali. Userà Git's extended patch format per salvare i dati binari. Questo viene gestito in modo trasparente quando si aggiorna una patch con file binari modificati.

Se questa è una buona idea o meno è un'altra domanda - VonC è corretto quando scrive che questo non è il caso d'uso normale per un sistema di controllo di versione.

4

Se si dovesse cercare di ottenere la patch per il 7 ° di revisione ...

hg export --git -r 7 -o 7.patch 
Problemi correlati