Stiamo migrando da Subversion a Mercurial. Per facilitare la migrazione, stiamo creando un repository Mercurial intermedio che è un clone del nostro repository Subversion. Tutti gli sviluppatori inizieranno il passaggio al repository Mercurial e periodicamente trasferiremo le modifiche dal repository Mercurial intermedio al repository Subversion esistente. Dopo un periodo di tempo, sarà semplicemente obsoleto il repository Subversion e il repository Mercurial intermedio diventerà il nuovo sistema di record.Mercurial to Mercurial to Subversion Workflow Problem
Dev 1 Local --+--> Mercurial --+--> Subversion
Dev 2 Local --+ +
Dev 3 Local --+ +
Dev 4 -------------------------+
Ho testato questo fuori, ma io continuo a correre in un problema quando spingo cambiamenti dal mio repository locale, al repository Mercurial intermedio, e poi su nel nostro repository Subversion.
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/01.png
sulla mia macchina locale, ho un changeset che è impegnato e pronto per essere spinto al nostro repository Mercurial intermedio. Qui si può vedere che è la revisione # 2263 con hash 625 ...
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/02.png
ho solo spingere questo changeset al repository remoto.
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/03.png
Finora, tutto sembra buono. Il changeset è stato spinto.
hg update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Ora passo al repository remoto e aggiorno la directory di lavoro.
hg push
pushing to svn://...
searching for changes
[r3834] bmurphy: database namespace
pulled 1 revisions
saving bundle to /srv/hg/repository/.hg/strip-backup/62539f8df3b2-temp
adding branch
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
rebase completed
Successivamente, sposto la modifica fino a Subversion, funziona perfettamente. A questo punto, la modifica è nel repository Subversion e restituisco l'attenzione al mio client locale.
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/04.png
tiro modifiche alla mia macchina locale. Eh? Ora ho due changeset. Il mio changeset originale appare ora come un ramo locale.
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/05.png
L'altro changeset ha un nuovo numero di revisione 2264, e un nuovo hash 10c1 ...
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/06.png
Comunque, aggiorno il mio repo locale alla nuova revisione.
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/07.png
che sto ora commutato.
alt text http://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/08.png
Così, ho finalmente fare clic sul "determinare e segnare di modifiche in uscita" e come si può vedere Mercurial vuole ancora spingere i miei gruppi di modifiche precedenti, anche se hanno già spinto.
Chiaramente, sto facendo qualcosa di sbagliato.
Inoltre non riesco a unire le due revisioni.Se unisco le due revisioni sul mio computer locale, finisco con un "merge" commit. Quando spingo tale unione a eseguire il commit nel repository Mercurial intermedio, non posso più inviare modifiche al nostro repository Subversion. Io alla fine con il seguente problema:
hg update
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
hg push
pushing to svn://...
searching for changes
abort: Sorry, can't find svn parent of a merge revision.
e devo rollback l'unione per tornare a uno stato funzionante.
Cosa mi manca?
Tutte le immagini sono rotti: - \ –