2010-01-15 21 views
8

Ho lavorato con le filiali da un po 'di tempo ormai, ma ho sempre usato gli strumenti da riga di comando per eseguire l'effettiva fusione. Tuttavia, ora ho bisogno di farlo solo da Eclipse. Branching e merging essendo una caratteristica ampiamente utilizzata dei sistemi SCM per molti anni, mi aspettavo che Eclipse avesse un buon supporto per esso, ma non sembra essere il caso.Come unire grandi progetti in Eclipse?

Attualmente sto lavorando a un prodotto che è composto da diversi progetti che devono essere ramificati. Quando si uniscono le modifiche da trunk a ramo, normalmente eseguo quanto segue dalla radice del checkout dei rami: (Sto usando Subversion come esempio qui, ma i problemi dovrebbero applicarsi anche ad altri strumenti SCM.)

svn update 
svn merge ^/trunk 
svn commit -m "Merged from trunk" 

Forse risolvere alcuni conflitti nel mezzo, ma questo è tutto quello che devo fare. Tuttavia, in Eclipse posso unire solo a livello di progetto, che presenta i seguenti svantaggi:

  • non posso unire il contenuto della cartella principale, solo i contenuti dei singoli progetti. Lo stesso vale per l'aggiornamento, BTW.
  • Se la struttura del progetto viene modificata sul trunk (ad esempio, è stato aggiunto un nuovo progetto), tali modifiche non vengono affatto unite. Lo stesso per l'aggiornamento, di nuovo.
  • L'unione non è atomica. Se durante il processo di fusione si verifica un commit durante il processo di fusione, le cose possono incasinarsi nella mia copia di lavoro. (Questo può essere risolto, ma non convenientemente.)

Queste limitazioni sembrano abbastanza semplici dal fatto che Eclipse non è a conoscenza della cartella radice, poiché esegue il controllo di singoli progetti da SVN.

La mia domanda è: mi manca qualcosa o è davvero impossibile utilizzare Eclipse in un modo simile a quello che farei dalla riga di comando? E se è davvero impossibile, allora come fanno gli altri a far fronte a questo? Tutti usano strumenti esterni come la riga di comando o TortoiseSVN?

+1

che SVN plug stai usando in Eclipse? –

+0

Attualmente sto usando Subversive con SVNKit 1.3, ma non penso che questi problemi abbiano a che fare con il plugin, o con SVN stesso. O c'è un miglior supporto per, diciamo, Mercurial o forse CVS? –

risposta

3

L'osservazione è corretta. Eclipse gestisce solo le operazioni di "squadra" come svn a livello di progetto. Quindi, non ti manca nulla ;-)

Sì, devi usare strumenti esterni per fondere interi rami. La tartaruga lo fa bene.

0

Quello che citi è davvero un limite. Normalmente eseguo il checkout dell'intera struttura delle cartelle e poi importa i singoli progetti in eclissi. Quando devo eseguire un'operazione sull'intero repository, lo faccio fuori da eclipse usando la riga di comando o Tortoise SVN.

È anche doloroso che quando qualcuno aggiunge un nuovo plug-in (sto sviluppando un'applicazione Eclipse RCP), devo aggiungerlo manualmente all'elenco dei progetti poiché Eclipse non conosce la radice di tutti progetti.

0

In Eclipse, la ramificazione SVN e la fusione funzionano bene per singoli progetti, non ho avuto alcun problema quando si tratta di singoli progetti che sono stati ramificati e devono essere uniti.

Tuttavia, se più progetti devono essere gestiti con una singola unità, non sembra possibile trattare direttamente in eclissi, ogni progetto dovrebbe essere trattato individualmente.

3

La fusione di più progetti può essere eseguita con il plug-in Eclipse CollabNet Subversion Merge Client. Puoi trovarlo a com.collabnet.subversion.Unisci.

abilitarlo nelle preferenze:

Eclipse Preferences > Team > SVN > Diff/Merge 

e là: Merge Implementation: CollabNet Desktop

Problemi correlati