Domanda

avevo usato un Subversion per il mio controllo del codice sorgente, in combinazione con git esclusivamente per distribuire (push) a Heroku. Il mio modello è stato: aggiornare la copia di lavoro locale da ultimo maestro nel repository subversion remoto. Poi fate git commit e git push Heroku (Git è stato impostato per ignorare roba svn). Questa copia di lavoro Ho solo usato per spingere a Heroku, ho avuto un'altra cartella di sovversione per fare lo sviluppo dal vivo, e impegnandosi al repository subversion remoto per il monitoraggio.

Ora ho passato a git completamente. Ho fatto un'importazione completa da Subversion in un nuovo repository git remote. Ho lavorato sul mio successo copia di lavoro locale del repo git (origine), e spingendo i cambiamenti quando mi va bene (anche collaborando con un altro sviluppatore, ma io fondamentalmente eseguito l'operazione).

La mia domanda:

Vorrei ora di tornare alla mia ALTRE copia di lavoro git che avevo precedentemente usato per spingere a Heroku (che ha .svn / roba in esso pure). Sto pensando di aggiungere solo il mio nuovo repository git come [origine] voce nel .git / config .. tirando le ultime modifiche dal mio nuovo telecomando git, e spingendo a Heroku, ma mi chiedo se sarà fuori di testa .

Si cercherà e si fondono e si confondono no? E, anche se il tiro ha lavorato, sarà la Heroku remota confondersi su una spinta che ha avuto origine da qualche nuovo repo git?

ho potuto clobber (cancellazione) che copia di lavoro (usato per spingere a Heroku da Subversion), e fare un nuovo clone del mio nuovo repository git, quindi aggiungere Heroku al .git / config. Ma mi riguarda spingendo a Heroku sarà ancora causare a confondersi, dal momento che ho usato per spingere da una copia di lavoro diverso.

Qualche consiglio sarebbe grande!

Grazie in anticipo!

È stato utile?

Soluzione

Se ho capito bene, si vuole tornare al vecchio repository SVN come la vostra copia di lavoro, e si desidera conservare il vecchio storia SVN?

Ci sono un paio di opzioni disponibili.

  1. spingere i recenti cambiamenti del nuovo repository Git di Heroku, quindi passare al vecchio repository e tirare da Heroku. Questo vi porterà vecchio repository aggiornati.

  2. modificare temporaneamente l'URL nel file di configurazione del vecchio repository per indicare il percorso locale del nuovo repository. Tirare i recenti cambiamenti da lì, e poi tornare all'URL Heroku quando fatto. Questo sarà anche portare il vecchio repository aggiornati.

La prima opzione è la più opportuna, ed il secondo è il lungo inverso. In entrambi i casi, si avrà lo stesso risultato netto di un aggiornato repository locale contenente tutta la storia. Il nuovo repository eccedenza può essere smaltito in entrambi i casi.

Modifica Per le vostre preoccupazioni circa se Heroku si cura circa l'origine del commit, in breve, non il repository su Heroku è un altro repository git che accetta impegna da utenti autenticati.

Fino a quando le credenziali sono corrette, il repository di origine non ha importanza. Questa è la cosa bella di DVCS - non c'è uno di controllo o di repository corruttibili - E 'del tutto possibile per voi ora clonare da Heroku su un'altra macchina e continuare a lavorare da lì. Fino a quando le credenziali sono le stesse, la storia mostrerà ogni e qualsiasi impegna spingere, ma non importa da dove.

Se il vostro desiderio è di usare semplicemente un repository pulito con cui lavorare, quello nuovo sarà il favorito. Il vecchio può essere cancellato senza effetti negativi.

Per dimostrare questo - verificare gli hash SHA-1 per un commit in entrambi i vecchi e nuovi repository, e vedrete che sono identici. L'hash è unico per tutti i commit, e può essere utilizzato per controllare il codice di integrità in ogni momento. Non ci sarà mai più di un cambiamento per un dato hash.

  • Come nota laterale, il repository è portatile, in quanto è completamente autonomo, e può essere spostato liberamente sul vostro spazio, o anche essere utilizzato su memoria esterno come una chiavetta USB.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top