Nei bei vecchi tempi di Subversion, a volte derivavo un nuovo file da uno esistente usando svn copy
. Quindi se qualcosa è cambiato nelle sezioni che avevano in comune, potrei comunque usare svn merge
per aggiornare la versione derivata.In Mercurial, posso applicare le modifiche da un file a un altro file nello stesso ramo?
Per utilizzare l'esempio da hginit.com, dicono che la ricetta "guac" esiste già, e voglio creare un "superguac" che include le istruzioni su come servire guacamole a 1000 fan delirio di calcio. Usando il processo che ho appena descritto, potrei:
svn cp guac superguac
svn ci -m "Created superguac by copying guac"
(edit superguac)
svn ci -m "Added instructions for serving 1000 raving soccer fans to superguac"
(edit guac)
svn ci -m "Fixed a typo in guac"
svn merge -r3:4 guac superguac
e quindi la correzione di errore sarebbe stata applicata a superguac.
Mercurial fornisce un comando hg copy
che contrassegna un file come una copia dell'originale, ma non sono sicuro che la struttura del repository supporti un flusso di lavoro simile. Ecco lo stesso esempio, ed io con cura solo modificare un singolo file nel impegno che voglio utilizzare nella stampa:
hg cp guac superguac
hg ci -m "Created superguac by copying guac"
(edit superguac)
hg ci -m "Added instructions for serving 1000 raving soccer fans to superguac"
(edit guac)
hg ci -m "Fixed a typo in guac"
Ora voglio applicare la modifica in guac a superguac. È possibile? Se è così, qual è il comando giusto? Esiste un diverso flusso di lavoro in Mercurial che raggiunge gli stessi risultati (limitato a un singolo ramo)?
riconosco questo particolare esempio è abbastanza facile da rifondere utilizzando rami e Mercurial risolve questa situazione banalmente. Sfortunatamente, nella mia vera applicazione ho bisogno di entrambi i file nello stesso ramo, quindi la mia difficoltà ... – Stephen
Dopo aver riflettuto su questo aspetto (e testando entrambe le soluzioni nel mio repository), penso che entrambe le risposte abbiano un merito. Se avessi già conosciuto la risposta di Rudi in precedenza, tutte le modifiche che si applicano a entrambi i file potrebbero utilizzare il suo metodo. Sfortunatamente da quando ho modificato entrambi i file dopo la copia, la soluzione di Ry4an mi offre una soluzione alternativa. Grazie a tutti e due! – Stephen