Domanda

Sto cercando di unire il mio ramo di sviluppo di nuovo nel bagagliaio della mia repo. Passi che ho preso:

  1. Passa a tronco
  2. controllare che sia aggiornato, risolvere eventuali conflitti
  3. Vai a SQUADRA-> Unisci
  4. Seleziona URL: sviluppo ramo
  5. Avvia revisione: Revisione quando filiale è stato creato
  6. Fine Revisione: HEAD
  7. OK

Questo dovrebbe fare la magia - si apre la vista syncronize che va bene, mi mostra tutti i conflitti, ma c'è il problema che accade:

Nel confrontare l'editor vedo due file: File locale | File remoto (306)

Questo è davvero strano, il numero di revisione del file remoto è in realtà quello del file nella copia di lavoro (tronco) e così è il contenuto. Il file locale ha il contenuto del file nel ramo.

Ora la freccia indica correttamente che sto fondendo da sinistra a destra (ramo tronco). Questo avviene anche quando si fa clic su OK.

Ma posso muovere solo cambia da destra a sinistra !!! Che non è quello che voglio - io non voglio sovrascrivere i cambiamenti nei rami con il vecchio contenuto del tronco. Voglio spostare i contenuti da sinistra (ramo) a destra (tronco). Ma non posso nemmeno scrivere nel file giusto.

Non so il motivo per cui scrive file remoto lì ?? E 'chiaramente mostrando il file copia di lavoro nella finestra di file remoto, e il file dal ramo (per la fusione) viene mostrato in file locale.

Alcuni bug in Subversive?

Thx, Martin

È stato utile?

Soluzione

Unisce sono mai stato facile con i sovversivi (come accennato in questo vecchio domanda SO ), quindi potrebbe essere fare l'unione esternamente (o con subclipse) sarebbe più facile qui.

Se il client e il repository sono entrambi almeno in SVN1.5, sovversive nuove funzionalità di unione sono meglio, ma ancora pericoloso come illustrato da questa discussione .

  

Dal Subversive è stato modificato per SVN 1.5 l'intero comportamento di fusione è cambiato. Una cosa che mi è piaciuto molto è la capacità di scegliere ciò che le modifiche che volevo, che si applica alla mia copia di lavoro e quindi impegnarsi a tronco.
  Subversive ora non fa più che ma costringe tutti i cambiamenti sul vostro copia di lavoro e poi si sceglie cosa mettere nel bagagliaio.

     

Questo non è solo un comportamento indesiderato ma è anche pericoloso (se si ignora la possibilità di un revert comunque). Io preferisco di commettere cose che so di lavoro. Abbiamo un ramo di release che ottiene cambiamenti che può o non può avere bisogno di essere migrato al tronco.

Altri suggerimenti

Bene questo sembrava misterioso in un primo momento, ora mi deve presentare una pugnalata decente ad aggiornare questa risposta per tutti. Questo riguarda la fusione utilizzando il client Subversive SVN per Eclipse:

Si sta facendo la stampa in modo corretto, a partire dal tronco e poi indicando il file sotto la filiale locale. I vostri file si aprono nella finestra "Testo Confronta" nella scheda squadra Sincronizzazione. Se non vedi i conflitti sopra nella colonna di navigazione a sinistra, quindi la stampa è appena accaduto. Sì, questo è confusa e non intuitivo.

Quello che il testo Confronta finestra vi offre è la possibilità di annullare la modifica (o tutti gli altri che può avere ottenuto nelle vostre file unito alla sprovvista) prima di impegnarsi esso. Ricorda che si sta tirando nel file da Branch, quindi l'idea è che il file Branch è in tronco, ma in una sorta di limbo virtuale fino a quando finalmente ha commesso, e la modifica o l'annullamento cambiamenti indesiderati qui fa riferimento al file nel ramo (ovviamente). Questo è il motivo per cui hai solo un tubo a senso unico (Trunk a Branch) per sovrascrivere quelli cambiato fuse in Tronco tramite copia di lavoro. La stampa ha avuto luogo, ma non è ancora del tutto ufficiale.

Se tutto sembra come dovrebbe, fare clic destro sul file nella finestra di navigazione (riquadro a sinistra nel mio Eclipse Helios installare) e scegliere Accetta dal menu a discesa. Quindi fare clic su indietro sopra alla scheda codice-visualizzazione principale (in mia installazione è PHP, ma potrebbe essere quello che si utilizza) e quindi eseguire il commit il file da Trunk.

Se si desidera verificare questo, sei una vista del file "così come sono" in tronco prima di commettere e si dovrebbe vedere le modifiche riflesse lì se avete fatto la stampa in modo corretto. Questo sembra essere il modo in cui si sta lavorando per me su un OSX Snow Leopard Macbook Pro. Non so se è lo stesso per le persone Windows o Linux. Presumo che è essenzialmente lo stesso processo / simile.

è facile

controllare tronco con check-out, come ... dare un nome di progetto diverso.

Ora avete sia a livello locale, come copia di lavoro, il tronco si vuole impegnarsi per il ramo e si sta lavorando e la cui modifiche commesso al repository. Ora fare clic destro il progetto del tronco (e mi riferisco al progetto, i file non singoli) - merge - selezionare il progetto ramo (di nuovo, PROGETTO) accettare tutte le modifiche alla copia locale commettere ciò che è necessario tronco utilizzato per tutto bene, cancellare di nuovo tronco e continuare a lavorare sul ramo

specialmente con rami questo sembra super facile e ha lavorato come un fascino per me

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top