Ho iniziato a usare il bazar dopo un lungo campeggio nel campo svn. Ho avuto anche esperienze precedenti con cvs e ho usato tag occasionalmente.Qual è il punto di tag nel bazar?
Con svn, una volta rilasciata una versione, si esegue una copia svn del trunk in tag, ad esempio svn copy trunk tag/1.2.0. Nel bazar ho creato la stessa struttura del repository, ma l'assenza di un'opzione di copia bzr e la presenza del tag bzr mi hanno fatto riflettere.
Il fatto è che trovo i tag difficili da usare o inutili. Se uso i tag, fondamentalmente ho il mio trunk come unica directory e quando raggiungo un traguardo, lo taggano. Continuo quindi a sviluppare e taggare nuovamente quando viene raggiunto un nuovo traguardo. Questo complica le seguenti attività:
- confrontando una nuova versione contro una vecchia versione in modo ricorsivo (con la svn simile approccio: diff --brief -r)
- fix dei bug una vecchia versione, e creare nuova versione con la sua patchversion è aumentato (con l'approccio svn-like: svn copia 2.0.0 2.0.1, quindi aggiungi la correzione alla 2.0.1 e la commit)
- ottenendo la versione desiderata senza doverla controllare (se si controlla l'intero albero in svn-like, hai tutte le versioni e rami, e lo fai solo una volta)
Di conseguenza, uso la stessa struttura di svn repo in bzr e eseguo una copia fisica del trunk ogni volta. Ciò significa che non vedo alcun reale utilizzo del comando di tag bzr in questo accordo. perché dovrei taggare l'intera revisione del repository con un numero di versione, se ne contiene tutti per ogni revisione?
Qualcuno potrebbe indicarmi cosa sto facendo male nell'utilizzare e capire i tag per un repo bzr?
Modifica
Quindi, per quanto vedo il concetto è quello di avere diversi rami bzr (rami indipendenti, provenienti dal tronco tramite ramo bzr) per ogni release. È come svn, solo che non inserisci la directory root nel repository. Io ancora non vedo un motivo particolare per i tag, a parte il fatto che, se si dispone di dire foo-1.0.0 foo-1.0.1 foo-2.0.0 foo-2.1.0 tronco
e presumendo di aver sempre taggato i rilasci prima della ramificazione, il trunk avrà i tag per tutti loro, mentre foo-2.0.0 avrà foo-1.0.0 tra i suoi tag, ma non foo-1.0.1 perché è derivato da foo-1.0.0.
Ancora non vedo la necessità di avere e utilizzare i tag. Il mio tag è implicito nel nome della directory che ho scelto per quel ramo. Non mi interessa davvero un particolare numero di versione, mi interessa solo che si trovi in una directory specifica.
Sì, ma non vedo alcun senso facilmente ricordare una revisione specifica, se non ho motivo di averne bisogno. le revisioni sono incrementali, ma l'unico fatto particolare che hanno è che sono ordinate in tempo. Ordinare in rilascio è diverso, dato che posso rilasciare 2.0.1 dopo che 3.0.0 è uscito. –
I tuoi tag sembrano quasi GUID. :) – Luke
Sì, hanno freddo solo 1.0, 2.0, ecc. Sono stato portato via con segmenti di versione significativi, e mi piace usare foo ogni volta che ne ho la possibilità, così l'ho buttato dentro;; o) – vezult