2010-04-21 12 views
6

C'è un modo per configurare hg com in modo che nel file di messaggi di commit che si apre nell'editor esterno, invece di mostrare solo quali file sono stati modificati (nelle linee HG:) in realtà mostra il diff completo? Preferirei visualizzare l'output e comporre il mio messaggio di commit simultaneamente dalla comodità del mio editor di testo invece di fare hg diff sulla riga di comando separatamente in anticipo.Come posso ottenere mercurial per mostrare il diff durante `hg com`?

+0

solo per aggiungere alla domanda: OP sta cercando un equivalente a '$ git commit -v' –

risposta

1

TortoiseHg fa questo fuori dalla scatola: un pannello superiore per il messaggio di commit e sotto, un pannello di sinistra che elenca i file interessati e un pannello di destra che mostra le differenze, una dopo l'altra.

2

Mercurial non ha questa funzione incorporata, ma è facile da simulare nell'editor (come lanciato da commit).

Ecco un esempio utilizzando VIM: https://www.mercurial-scm.org/wiki/DiffsInCommitMessageInVIM

Lo script hgeditor https://www.mercurial-scm.org/hg/hg-stable/raw-file/tip/hgeditor fornisce ulteriori esempi.

Il jist di base è:

  1. a editor di lancio corsa hg diff reindirizzamento a un file temporaneo
  2. hanno il carico editore sia il file messaggio di commit e il diff
5

A partire dal 2016, è possibile farlo con l'opzione di configurazione committemplate. Aggiungendo quanto segue a un file hgrc includerà il diff nella finestra dell'editor in linea mentre si digita il messaggio di commit.

[committemplate] 
changeset = {desc}\n\n 
    HG: {extramsg} 
    HG: user: {author}\n{ifeq(p2rev, "-1", "", 
    "HG: branch merge\n") 
    }HG: branch '{branch}'\n{if(currentbookmark, 
    "HG: bookmark '{currentbookmark}'\n") }{subrepos % 
    "HG: subrepo {subrepo}\n"    } 
    {splitlines(diff()) % 'HG: {line}\n'} 

Vedi hg help hgrc e la ricerca di committemplate per ulteriori informazioni.

Problemi correlati