2010-09-06 11 views
6

Ho letto:Git/Mercurial localmente ontop di checkout cvs locale

, e né soddisfare le mie esigenze.

Al lavoro utilizziamo un repository CVS remoto. L'accesso a questo repository è gestito tramite strumenti CVS di eclipse e plug-in di eclissi interni che sono stati creati su strumenti di team per eclipse. Ciò significa che non possiamo passare a vcs migliori.

Tuttavia vorrei usare Git sulla mia macchina locale (per consentire ramificazione personale) in modo tale che posso compiere la seguente:

Crea filiali in Git e poi una volta finito e fuse indietro nel mio tronco locali, si impegnano torna cvs repo utilizzando gli strumenti team eclisse ecc

il mio piano è qualcosa lungo le seguenti linee:

  • Copiare i file ritirati in un'altra cartella [gitRepo].
  • Creare un repo git master in gitRepo
  • Filiale in gitRepo e apportare modifiche.
  • impegnarsi a gitRepo
  • Copia gitRepo torna a file ritirati
  • Sync con CVS remoti.

Avevo intenzione di utilizzare eGit per Eclipse, tuttavia credo che i file CVS e .git concorreranno per la proprietà del controllo delle versioni.

Esistono strumenti o flussi di lavoro suggeriti per aiutarmi a gestirlo? Inoltre, come Git gioca con i file CVS. E viceversa, dal momento che non voglio che si infettino a vicenda.

Il motivo per cui i collegamenti precedenti non servono è che si impegnano direttamente al repository cvs dal repository git e questo mi preoccupa poiché non desidero infettare il repository cvs accidentalmente.

Va anche detto che i cambiamenti nel GitRepo non hanno bisogno di persistere nel repository CVS, ad esempio non ho bisogno di vedere ogni push del repository git riflesso nel CVS remoto.

~ Grazie per la lettura.

risposta

4

È perfettamente possibile creare un repo git direttamente all'interno di uno spazio di lavoro CVS (molto simile directly within any other VCS tool.

Assicurarsi git ignorerà qualsiasi .cvs risorse e assicurarsi CVS ignorerà il .git.
Qualsiasi git commit vinto' t essere riflessa direttamente in CVS.

l'unico accorgimento è per Eclipse per visualizzare soltanto Git o solo CVS informazioni e decorazione etichetta.
per che avrebbe configurare due diverse prospettive Eclipse in cui vi disattivare uno o altro strumento VCS.

+0

Grazie per aver modificato la mia domanda VonC, lo apprezzo! Quando dici la prospettiva di Eclipse, intendi un'area di lavoro? Come si può disattivare l'etichettatura per un vcs in una prospettiva? –

+0

@Darkflace: è possibile personalizzare una prospettiva, in particolare la "Comandi di disponibilità del gruppo" – VonC

3

ho fatto esattamente questo a lavoro e ho trovato le seguenti pratiche utili:

  1. Mantenere uno qualsiasi (master nel mio caso) ramo sempre in sincronia con CVS. Non usare questo ramo per il tuo sviluppo. Aggiorna periodicamente questo ramo per ottenere le modifiche apportate dal resto del team. Se queste modifiche sono rilevanti per il tuo lavoro corrente fai un merge master dal tuo ramo dev (o qualsiasi altro appropriato).

  2. Quando si è pronti per il check-in per passare al ramo CVS master e unire le modifiche dal ramo appropriato (dev, feature ecc a seconda dei casi). Esegui i tuoi test!

  3. Il datore di lavoro molto probabilmente manterrà un backup dei repository CVS. Dovrai trovare un modo per mantenere il tuo repo git di backup. Un modo è quello di aggiungere un repository mirror in una cartella Dropbox e utilizzare un hook post-commit per aggiornarlo dopo ogni commit.

  4. Prima di lasciare il lavoro, passare al ramo master. Una volta ho commesso l'errore di eseguire CVS up -d su un ramo dev al mattino e sono finito piuttosto confuso. Aggiunta di uno script per passare automaticamente a master prima dell'aggiornamento.

Problemi correlati