2009-05-28 12 views

risposta

21

Prendere un ramo è un'operazione di copia (che è molto economica in svn) e sembra evidente nei registri che è quello che è successo, da qui la linea. È ovvio (a svn/tortioiseSVN) perché non è possibile creare un ramo senza prendere ogni singolo artefatto dal tronco alla revisione che si è scelto. Ecco perché viene sempre visualizzata una riga: è garantito che un ramo prende tutti i file dal trunk nel ramo. La fusione di nuovo è diversa, puoi fondersi in modo selettivo in qualsiasi cosa desideri.

Unire di nuovo in non è una copia ma un commit dei tuoi diff dalla testa (corrente ultimo tronco) per la propria copia di lavoro (la filiale). Per SVN, sembra che qualcuno abbia preso l'ultimo trunk e modificato un carico di file contemporaneamente e li abbia impegnati in.

IMO, una linea che torna al trunk sarebbe fuorviante perché è possibile unire e scegliere la versione tronchi su il tuo per ogni singolo file - la linea implicherebbe che tu avessi apportato tutte le tue modifiche, ma in realtà non vi è alcuna garanzia che tu abbia inserito.

+0

grazie ... mi piace la tua spiegazione. – sivabudh

+0

Sono contento che tu l'abbia fatto! Spero che funzioni per te. –

+25

Non sarei d'accordo con forza; anche un "segno come unito" senza modifiche effettive al codice rappresenta uno sviluppatore che intraprende un'azione esplicita - e dovrebbe apparire sul grafico – STW

2

Dalla mia esperienza la risposta è no, ma perché non ci provi e dicci. Sono sicuro che non annullerai la tua unione perché la tartaruga svn potrebbe o meno rappresentarla graficamente.

Aggiornamento in base alla risposta TSVN è solo uno strumento per rappresentare ciò che è in SVN, in modo da avere la massima libertà di cambiare il modo in cui essi rappresentano senza avere alcun impatto mondo reale :) Non sto dicendo che la tua idea è una brutta, ma in realtà le informazioni sull'unione sono ancora lì se hai aggiunto ai commenti.

+0

hai ragione .. ho appena finito di provarlo (dopo una dolorosa unione). così .. come mai TSVN mostra una linea per la diramazione ... ma nessuna linea per l'unione? Qual è la logica dietro a questo? – sivabudh

0

Dopo aver provato da solo, la risposta è no.

Queste sono le mie impostazioni.

TortoiseSVN 1.6.2, Build 16.344-64 Bit Subversion 1.6.2

Anche se questo non ha senso a tutti ...

Se TSVN mostra una linea per la diramazione, come mai non c'è nessuna linea per l'unione? Qual è la logica dietro a questo?

3

Si potrebbe desiderare di guardare Subclipse Revision Graph.

Supporta la visualizzazione delle informazioni di unione a condizione che le unioni siano eseguite da client e server 1.5.xe superiori. (A partire dalla riga 1.5 di SVN, il tracciamento delle informazioni di unione è stato aggiunto tramite i metadati allegati alle cartelle)

Lo strumento Sottoclip tenta di mostrare queste informazioni, ma ho riscontrato che funziona anche in modo grave. Non è molto lucido ma mostra una promessa estrema. Soprattutto se questo può essere riportato a TortoiseSVN ad un certo punto.

Si può anche desiderare di guardare Subversion's notes on it's merge implementation.

14

Parlando da scenario "mondo reale", aiuta molto se c'è una linea per la fusione, proprio come si aiuta una linea per ramo. Se i registri devono essere guardati, perché anche aggiungere una linea per barnch ... tutte le informazioni sono lì nel registro.

Ma quando devi mantenere più filiali per clienti diversi e unire le modifiche in trunk ... diventa quasi ingestibile senza una rappresentazione grafica (voglio dire, abbiamo gli strumenti per semplificare la vita ... perché usarli se hai sedersi per ore a leggere i registri).

Quindi, anche se SVN/Tortoise non può decidere quando fare una linea, ma se l'utente può forzare una linea, penso che sarà di grande aiuto.

E 'vero che alcune delle differenze non potrebbero essere stati fusi o il processo di unione in sé non è stato eseguito correttamente, ma che dovrebbe essere lasciato per l'utente di accedere :-)

2

Questo non è ancora implementato con TortoiseSVN (Gen 2014), ma è possibile con il plugin Subversive di eclipse http://www.eclipse.org/subversive/documentation/teamSupport/revision_graph.php (così come il plugin Subclipse che è stato precedentemente menzionato).

Sfortunatamente è necessario fare clic su ciascun nodo per visualizzarlo piuttosto che essere in grado di visualizzarlo su tutti i nodi per impostazione predefinita.

Se si è selezionato di mostrare le informazioni di unione e ci sono stati unioni, le informazioni di unione vengono visualizzate nel grafico. Ogni nodo di revisione può avere fusioni in entrata e (o) in uscita che vengono mostrate sul nodo di revisione mediante frecce blu corrispondenti dirette a sinistra oa destra. Per ogni tipo di unione è presente un numero vicino alla freccia che indica il numero di unioni, per le unioni in entrata vengono visualizzati anche i numeri di revisione (tra parentesi) interessati dalle unioni. Per impostazione predefinita, le connessioni tra i nodi non vengono visualizzate, poiché possono esserci molte connessioni di unione che possono complicare significativamente la presentazione e la comprensione del grafico. Se si desidera vedere unire le connessioni per il nodo di revisione, è possibile fare clic sulla freccia di unione blu sul nodo di revisione o richiamare l'azione corrispondente dal menu di scelta rapida del nodo, ad esempio "Mostra fusioni in uscita" o "Mostra fusioni in entrata".

Problemi correlati