2009-11-05 11 views
5

A intervalli regolari, ricevo una nuova versione del software di un fornitore, fornita come codice sorgente in un pacchetto compresso e non ho accesso all'origine del fornitore repository di codice. Apportiamo modifiche al codice sorgente del fornitore tra le loro versioni. Le nostre modifiche non vengono incorporate nelle loro versioni, ma devo unire le modifiche delle loro versioni alla mia linea principale.Subversion: Unione di versioni del codice sorgente di un fornitore in linea principale a intervalli regolari

mio layout repository si presenta così:

  • /rami/Venditore rilascio X 1.0
  • /rami/Venditore rilascio X 1.1
  • /trunk/

Il flusso di lavoro ho seguito era:

  1. Ho aggiunto Vendor X versione 1.0 come ramo e quindi copiato nel trunk.
  2. Abbiamo apportato alcune modifiche al codice sorgente sul trunk e quindi ricevuto Vendor X release 1.1.
  3. Ho aggiunto Fornitore X versione 1.1 a una filiale. Ora, vorrei unire Vendor X versione 1.1 nel bagagliaio.

Il problema che sto avendo è che, indipendentemente da come provo, ho finito con l'unione che non ha prodotto alcuna modifica al trunk, o ogni file che viene segnalato come un conflitto ad albero.

Penso che mi piacerebbe in qualche modo fare quanto segue: dire a Subversion di unire ogni file senza considerazione per il numero di revisione del file. Penso che Subversion stia segnalando un conflitto ad albero per ogni file, perché i file non hanno avuto origine dallo stesso punto nella cronologia delle revisioni. Tuttavia, in molti casi questi file sono identici.

Grazie in anticipo per qualsiasi aiuto.

+0

Potresti postare i comandi che stai eseguendo e i loro messaggi di errore risultanti? –

risposta

5

In termini non di sovversione, si desidera integrare le modifiche tra Vendor X release 1.0 e X di fornitore X nel trunk.

Vorrei creare solo un ramo di un fornitore X e utilizzare i tag per identificare i numeri di versione. Ogni volta che ricevi una nuova versione di X del venditore, controlla il ramo, copia i file della nuova versione nella tua directory di lavoro, applica svn add e svn delete come appropriato e commetti. Subversion ora ha le informazioni diff corrette per tutto ciò che il venditore X ha fatto durante le due release. Successivamente, è possibile unire le modifiche tra le ultime due versioni del fornitore (ovvero le ultime revisioni tweo nel ramo X del fornitore) con il trunk.

+0

Questo era quello che dovevo fare. Grazie per la guida. Elencherò i passaggi esatti che ho seguito di seguito. – RjOllos

2

IMHO è possibile evitare la fusione. Qui è:

  1. Creare 1.0 ramo
  2. Copia 1,0-1,1
  3. Eseguire tutte le modifiche necessarie a 1.1
  4. Copy 1.1 al tronco.

Se ancora insistere per unire poi:

  1. Creare 1.0
  2. Copy 1.0 al tronco
  3. Copy 1.0 a 1.1
  4. Effettuare le necessarie modifiche al 1,1
  5. Unire le modifiche fatte a 1.1 per il tronco. Le modifiche vanno dall'inizio di 1,1 alla fine.

This forse anche utile

+0

+1 per il collegamento alla documentazione –

1

La soluzione che ho seguito è stato:

  1. Creato un rilascio/linea per il fornitore di software.
  2. Aggiunto Versione 1.0 all'uscita/linea.
  3. Rilascio ramificato/per creare trunk/e quindi trunk sostituito/con una copia di lavoro contenente tutte le modifiche apportate dopo Release 1.0.
  4. Controllato una copia di lavoro della versione 1.0 e aggiunta nella versione 1.1. Committed.
  5. Sblocco unito/nel bagagliaio /. Nessun conflitto tra alberi o unione conflitto.
Problemi correlati