Mantenimento della cronologia SVN per un file quando l'unione viene eseguita dal ramo dev al trunk?

7

Nella mia organizzazione, usiamo SVN per il controllo della versione Quindi per ogni build (fatto periodicamente), uniamo il codice al trunk dal ramo di sviluppo (tutti gli sviluppatori eseguono il check in in questo ramo). Quindi, quando vogliamo che un nuovo ramo dica una nuova versione, creiamo dal tronco una copia svn.

Ora nel nuovo ramo abbiamo la cronologia solo dal tronco e non da i precedenti rami di sviluppo .

C'è un modo per mantenere la cronologia quando l'unione viene eseguita dal ramo dev al trunk?

Aggiornamento:

Per cronologia intendevo la revisione della cronologia di ogni singolo file. Chi l'ha creato e chi lo modifica.

Purtroppo stiamo usando svn 1.6 in questo momento

    
posta Sam 25.07.2013 - 10:47
fonte

3 risposte

8

Purtroppo questo non è supportato direttamente da Subversion prima di Subversion 1.8. I file nel ramo e i file nel trunk sono copie e Subversion tiene traccia con svn log solo per file specifici, non tra rami.

Quindi l'unica opzione è filtrare il tuo log SVN. Lo svantaggio principale di questo è che nel caso in cui si filtri il nome del file, i file che vengono spostati o copiati in un altro nome non corrispondono.

Subversion 1.7 e precedenti

Per mantenerlo pratico otterrei la cronologia del file che ti interessa per il tuo trunk

svn log http://www.your.org/svn/repo/trunk/path/to/file.txt -g

Questo include il mergeinfo per il tuo file in questo modo:

Commit message
Merged via: r6504, r6493, r6451, r6429

Ora puoi vedere da dove proviene il file e poi cercare quelle revisioni sulla root del repository con

svn log http://www.your.org/svn/repo -r 6504

Subversion 1.8 e versioni successive

La versione 1.8 di Subversion contiene un paio di miglioramenti al client della riga di comando che rendono sopra più facile. Per trovare tutte le voci di registro per un file specifico, puoi semplicemente cercarlo direttamente:

 svn log -v --search "src/foo.c" http://svn.example.com/svn/
    
risposta data 25.07.2013 - 11:10
fonte
0

In caso di SVN 1.8

>svn log -v REPO-ROOT --search FILENAME

    
risposta data 25.07.2013 - 12:16
fonte
0

Uso entrambi SVN (dettato dal business) e Mercurial (solo repo locale).

Netbeans gestisce bene questa situazione - non è sicuro di come si integrerebbe con altri IDE.

Questo mi dà molti vantaggi. Un aggiornamento da SVN spesso apporta modifiche di cui non sono a conoscenza, ma Mercurial le preleva immediatamente. Posso prendere un nuovo Clone e copiare la vecchia cartella .hg e vedere immediatamente tutte le modifiche.

Meglio di tutto, Mercurial funziona molto più facilmente con patch e trap di Diff.

    
risposta data 25.07.2013 - 17:43
fonte

Leggi altre domande sui tag