Giulio@770: Giulio@770: Giulio@770: Guida di riferimento di Mercurial Queues Giulio@770: Giulio@770: Giulio@770: Guida di riferimento dei comandi MQ Giulio@770: Giulio@770: Per un'introduzione ai comandi forniti da MQ, usate il comando hg help mq. Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qapplied</command>&emdash;stampa le patch applicate Giulio@770: Giulio@770: Il comando qapplied stampa la pila corrente delle patch applicate. Le patch vengono stampate nell'ordine dalla più vecchia alla più recente, così l'ultima patch nella lista è quella in cima alla pila. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qcommit</command>&emdash;registra i cambiamenti nel repository della coda Giulio@770: Giulio@770: Il comando qcommit registra qualsiasi cambiamento in sospeso nel repository .hg/patches. Questo comando funziona solo se la directory .hg/patches è un repository, i.e. se avete creato la directory usando hg qinit o avete invocato hg init nella directory dopo aver eseguito qinit. Giulio@770: Giulio@770: Questo comando è un'abbreviazione di hg commit --cwd .hg/patches. Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qdelete</command>&emdash;elimina una patch dal file <filename role="special">series</filename> Giulio@770: Giulio@770: Il comando qdelete rimuove la voce relativa a una patch dal file series nella directory .hg/patches. Non estrae la patch se la patch è già applicata. Di default, non cancella il file della patch; usate l'opzione per fare questo. Giulio@770: Giulio@770: Opzioni: Giulio@770: Giulio@770: : cancella il file della patch. Giulio@770: Giulio@770: Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qdiff</command>&emdash;stampa un diff della patch applicata in cima alla pila Giulio@770: Giulio@770: Il comando qdiff stampa un diff della patch applicata in cima alla pila. È equivalente al comando hg diff -r-2:-1. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qfinish</command>&emdash;sposta le patch applicate nella cronologia del repository Giulio@770: Giulio@770: Il comando hg qfinish converte le patch applicate specificate in modifiche permanenti spostandole fuori dal controllo di MQ in modo che siano trattate come normale cronologia del repository. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qfold</command>&emdash;unisce (<quote>include</quote>) diverse patch in una Giulio@770: Giulio@770: Il comando qfold unisce più patch con la patch applicata in cima alla pila, in modo che la patch applicata in cima alla pila rappresenti l'unione di tutti i cambiamenti delle patch in questione. Giulio@770: Giulio@770: Le patch da includere non devono essere applicate; qfold terminerà con un errore se una qualsiasi lo è. L'ordine in cui le patch vengono incluse è significativo; hg qfold a b significa applica la patch corrente in cima alla pila, seguita da a, seguita da b. Giulio@770: Giulio@770: I commenti dalle patch incluse vengono aggiunti alla fine dei commenti della patch di destinazione, separando ogni blocco di commenti con tre caratteri di asterisco (*). Usate l'opzione per modificare il messaggio di commit della patch/changeset combinata dopo che l'inclusione è stata completata. Giulio@770: Giulio@770: Opzioni: Giulio@770: Giulio@770: : modifica il messaggio di commit e la descrizione di patch per la nuova patch combinata. Giulio@770: Giulio@770: : usa i contenuti del file dato come il nuovo messaggio di commit e descrizione di patch per la patch combinata. Giulio@770: Giulio@770: : usa il testo dato come il nuovo messaggio di commit e descrizione di patch per la patch combinata. Giulio@770: Giulio@770: Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qheader</command>&emdash;mostra l'intestazione/descrizione di una patch Giulio@770: Giulio@770: Il comando qheader stampa l'intestazione, o descrizione, di una patch. Di default, stampa l'intestazione della patch applicata in cima alla pila. Dato un argomento, stampa l'intestazione della patch nominata. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qimport</command>&emdash;importa una patch di terze parti nella coda Giulio@770: Giulio@770: Il comando qimport aggiunge una voce per una patch esterna al file series e copia la patch nella directory .hg/patches. Aggiunge la voce immediatamente dopo la patch applicata in cima alla pila, ma non inserisce la patch. Giulio@770: Giulio@770: Se la directory .hg/patches è un repository, qimport usa hg add per aggiungere automaticamente la patch importata. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qinit</command>&emdash;prepara un repository per lavorare con MQ Giulio@770: Giulio@770: Il comando qinit prepara un repository per lavorare con MQ. Crea una directory chiamata .hg/patches. Giulio@770: Giulio@770: Opzioni: Giulio@770: Giulio@770: : Crea .hg/patches sotto forma di un repository. Crea anche un file .hgignore che ignorerà il file status. Giulio@770: Giulio@770: Giulio@770: Giulio@770: Quando la directory .hg/patches è un repository, i comandi qimport e qnew useranno automaticamente hg add per aggiungere nuove patch. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qnew</command>&emdash;crea una nuova patch Giulio@770: Giulio@770: Il comando qnew crea una nuova patch. Prende un argomento obbligatorio, il nome da usare per il file di patch. La patch appena creata viene creata vuota di default, viene aggiunta al file series dopo la patch applicata correntemente in cima alla pila e viene immediatamente inserita sopra quella patch. Giulio@770: Giulio@770: Se qnew trova qualche file modificato nella directory di lavoro, si rifiuterà di creare una nuova patch a meno che non usiate l'opzione (vedete più avanti). Questo comportamento vi permette di aggiornare la patch applicata in cima alla pila tramite qrefresh prima di applicare una nuova patch sopra di essa. Giulio@770: Giulio@770: Opzioni: Giulio@770: Giulio@770: : crea una nuova patch se il contenuto della directory di lavoro è stato modificato. Ogni cambiamento in sospeso viene aggiunto alla patch appena creata in modo che, dopo che l'esecuzione del comando è terminata, la directory di lavoro non conterrò più alcuna modifica. Giulio@770: Giulio@770: : usa il testo dato come messaggio di commit. Il testo verrà memorizzato all'inizio del file di patch, prima dei dati di patch. Giulio@770: Giulio@770: Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qnext</command>&emdash;stampa il nome della patch successiva Giulio@770: Giulio@770: Il comando qnext stampa il nome della prossima patch nel file series dopo la patch applicata in cima alla pila. Quella patch diventerà la patch applicata in cima alla pila se invocate qpush. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qpop</command>&emdash;estrae le patch dalla pila Giulio@770: Giulio@770: Il comando qpop rimuove patch applicate dalla cima della pila delle patch applicate. Di default, rimuove solo una patch. Giulio@770: Giulio@770: Questo comando rimuove dal repository i changeset che rappresentano le patch estratte e aggiorna la directory di lavoro per annullare gli effetti delle patch. Giulio@770: Giulio@770: Questo comando accetta un argomento opzionale che viene usato come ilnome o l'indice numerico della patch da estrarre. Se viene dato un nome, il comando continuerà a estrarre patch fino a quando la patch nominata sarà in cima alla pila delle patch applicate. Se viene dato un numero, qpop tratterà il numero come un indice d'accesso alle voci nel file della serie, partendo da zero (le righe vuote e le righe contenenti solo commenti non vengono contate). Il comando continuerà a estrarre patch fino a quando la patch identificata dall'indice dato sarà in cima alla pila delle patch applicate. Giulio@770: Giulio@770: Il comando qpop non legge e non scrive né le patch né il file series. Perciò, potete tranquillamente usare qpop su una patch che avete rimosso dal file series, o su una patch che avete rinominato o cancellato interamente. Negli ultimi due casi, usate il nome che la patch aveva quando l'avete applicata. Giulio@770: Giulio@770: Di default, il comando qpop non estrarrà alcuna patch se la directory di lavoro è stata modificata. Potete aggirare questo comportamento usando l'opzione , che annulla tutte le modifiche nella directory di lavoro. Giulio@770: Giulio@770: Opzioni: Giulio@770: Giulio@770: : estrae tutte le patch applicate. Questo riporta il repository allo stato in cui era prima che applicaste qualunque patch. Giulio@770: Giulio@770: : annulla forzatamente qualsiasi modifica alla directory di lavoro al momento dell'estrazione. Giulio@770: Giulio@770: : estrae una patch dalla coda nominata. Giulio@770: Giulio@770: Giulio@770: Giulio@770: Il comando qpop rimuove una riga dalla fine del file status per ogni patch che ha estratto. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qprev</command>&emdash;stampa il nome della patch precedente Giulio@770: Giulio@770: Il comando qprev stampa il nome della patch nel file series che viene prima della patch applicata in cima alla pila. Quella patch diventerà la patch applicata in cima alla pila se invocate qpop. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qpush</command>&emdash;inserisce le patch in cima alla pila Giulio@770: Giulio@770: Il comandoqpush aggiunge le patch in cima alla pila delle patch applicate. Di default, aggiunge solo una patch. Giulio@770: Giulio@770: Questo comando crea un nuovo changeset per rappresentare ogni patch applicata e aggiorna la directory di lavoro per applicare gli effetti delle patch. Giulio@770: Giulio@770: I dati predefiniti usati per creare un changeset sono i seguenti. Giulio@770: Giulio@770: La data e la zona temporale del commit sono la data e la zona temporale corrente. Dato che questi dati vengono usati per computare l'identità di un changeset, questo significa che se invocate qpop su una patch e poi invocate qpush sulla stessa patch, il changeset che inserite avrà una identità diversa dal changeset che avete estratto. Giulio@770: Giulio@770: L'autore è quello predefinito usato dal comando hg commit. Giulio@770: Giulio@770: Il messaggio di commit è il testo proveniente dal file di patch che si trova prima della prima intestazione del diff. Se questo testo non è presente, viene usato un messaggio di commit predefinito che identifichi il nome della patch. Giulio@770: Giulio@770: Giulio@770: Se una patch contiene un'intestazione di patch Mercurial, i dati nell'intestazione di patch sostituiscono quelli predefiniti. Giulio@770: Giulio@770: Opzioni: Giulio@770: Giulio@770: : inserisce tutte le patch non applicate nel file series fino a quando non ne rimane nessuna da inserire. Giulio@770: Giulio@770: : aggiunge il nome della patch alla fine del messaggio di commit. Giulio@770: Giulio@770: : se una patch non riesce a venire applicata in maniera pulita, usa la voce per la patch in un'altra coda salvata per computare i parametri di un'unione a tre vie ed effettua un'unione a tre vie usando il normale meccanismo di unione di Mercurial. Usa il risultato dell'unione come nuovo contenuto della patch. Giulio@770: Giulio@770: : usa la coda nominata se effettua un'unione durante l'inserimento. Giulio@770: Giulio@770: Giulio@770: Giulio@770: Il comando qpush legge, ma non modifica, il file series. Aggiunge una riga alla fine del file status per ogni patch inserita. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command Giulio@770: role="hg-ext-mq">qrefresh</command>&emdash;aggiorna la patch applicata in cima alla pila Giulio@770: Giulio@770: Il comando qrefresh aggiorna la patch applicata in cima alla pila. Modifica la patch, rimuove il vecchio changeset che rappresentava la patch e crea un nuovo changeset per rappresentare la patch modificata. Giulio@770: Giulio@770: Il comando qrefresh si occupa delle seguenti modifiche. Giulio@770: Giulio@770: I cambiamenti al messaggio di commit, i.e. il testo prima della prima intestazione di diff nel file di patch, vengono riflessi nel nuovo changeset che rappresenta la patch. Giulio@770: Giulio@770: Le modifiche ai file registrati nella directory di lavoro vengono aggiunte alla patch. Giulio@770: Giulio@770: Per quanto riguarda i cambiamenti ai file registrati apportati tramite hg add, hg copy, hg remove, o hg rename, i file aggiunti e i file destinazione di copie e cambiamenti di nome vengono aggiunti alla patch, mentre i file rimossi e i file sorgente dei cambiamenti di nome vengono rimossi. Giulio@770: Giulio@770: Giulio@770: Giulio@770: Anche se qrefresh non scopre alcun cambiamento, ricrea comunque il changeset che rappresenta la patch. Questo produce una differenza tra l'identità del changeset e il changeset precedente che identificava la patch. Giulio@770: Giulio@770: Opzioni: Giulio@770: Giulio@770: : modifica il messaggio di commit e la descrizione della patch, usando l'editor di testo preferito. Giulio@770: Giulio@770: : modifica il messaggio di commit e la descrizione della patch, usando il testo dato. Giulio@770: Giulio@770: : modifica il messaggio di commit e la descrizione della patch, usando il testo dal file dato. Giulio@770: Giulio@770: Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qrename</command>&emdash;rinomina una patch Giulio@770: Giulio@770: Il comando qrename rinomina una patch e modifica la voce della patch nel file series. Giulio@770: Giulio@770: Con un singolo argomento, qrename rinomina la patch applicata in cima alla pila. Con due argomenti, cambia il nome del primo argomento al secondo argomento. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qseries</command>&emdash;stampa l'intera serie di patch Giulio@770: Giulio@770: Il comando qseries stampa l'intera serie di patch contenuta nel file series. Stampa solo i nomi delle patch, saltando le righe vuote e i commenti. Stampa le patch nell'ordine dalla prima a essere applicata all'ultima. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-ext-mq">qtop</command>&emdash;stampa il nome della patch corrente Giulio@770: Giulio@770: Il comando qtop stampa il nome della patch applicata correntemente in cima alla pila. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command Giulio@770: role="hg-ext-mq">qunapplied</command>&emdash;stampa le patch non ancora applicate Giulio@770: Giulio@770: Il comando qunapplied stampa i nomi delle patch contenute nel file series che non sono ancora state applicate. Le stampa in ordine dalla successiva patch che verrà inserita all'ultima. Giulio@770: Giulio@770: Giulio@770: Giulio@770: <command role="hg-cmd">hg strip</command>&emdash;rimuove una revisione e i suoi discendenti Giulio@770: Giulio@770: Il comando hg strip rimuove una revisione e tutti i suoi discendenti dal repository. Annulla gli effetti delle revisioni rimosse dal repository e aggiorna la directory di lavoro al primo genitore della revisione rimossa. Giulio@770: Giulio@770: Il comando hg strip salva una copia di backup dei changeset rimossi in un bundle, in modo che possano essere riapplicati se sono stati rimossi per errore. Giulio@770: Giulio@770: Opzioni: Giulio@770: Giulio@770: : salva i changeset non correlati che sono mischiati con i changeset eliminati nel bundle di backup. Giulio@770: Giulio@770: : se un ramo ha più teste, rimuove tutte le teste. Giulio@770: Giulio@770: : evita di salvare un bundle di backup. Giulio@770: Giulio@770: Giulio@770: Giulio@770: Giulio@770: Giulio@770: Guida di riferimento ai file di MQ Giulio@770: Giulio@770: Giulio@770: Il file <filename role="special">series</filename> Giulio@770: Giulio@770: Il file series contiene una lista dei nomi di tutte le patch che MQ può applicare. Viene rappresentato come una lista di nomi, con un nome salvato per riga. Lo spazio bianco all'inizo e alla fine di ogni riga viene ignorato. Giulio@770: Giulio@770: Le righe possono contenere commenti. Un commento comincia con il carattere # character e si estende fino alla fine della riga. Le righe vuote e le righe che contengono solo commenti vengono ignorate. Giulio@770: Giulio@770: Avrete spesso bisogno di modificare il file series a mano, da cui il supporto per i commenti e le righe vuote appena notato. Per esempio, potete commentare temporaneamente una patch in modo che qpush la salti quando applica le patch. Potete anche cambiare l'ordine in cui le patch vengono applicate riordinando le loro voci nel file series. Giulio@770: Giulio@770: Viene anche supportata la possibilità di piazzare il file series sotto controllo di revisione. È una buona idea piazzare sotto controllo di revisione anche tutte le patch a cui il file si riferisce. Se create una directory di patch usando l'opzione del comando qinit, questo verrà fatto per voi automaticamente. Giulio@770: Giulio@770: Giulio@770: Giulio@770: Il file <filename role="special">status</filename> Giulio@770: Giulio@770: Il flie status contiene i nomi e gli hash di changeset per tutte le patch che MQ ha correntemente applicato. A differenza del file series, questo file non è destinato a essere modificato. Non dovreste piazzare questo file sotto controllo di revisione, né modificarlo in alcun modo. Viene usato da MQ per mantenere traccia di informazioni strettamente private. Giulio@770: Giulio@770: Giulio@770: Giulio@770: