Come posso utilizzare un hook di commit iniziale in TortoiseSVN per impostare una voce di registro personalizzata?

StackOverflow https://stackoverflow.com/questions/59007

  •  09-06-2019
  •  | 
  •  

Domanda

Mi piacerebbe automatizzare TortoiseSVN come parte di un processo di commit.In particolare, vorrei creare dinamicamente una voce di registro per la finestra di dialogo di commit.

So che posso avviare la finestra di dialogo di commit dalla riga di comando o facendo clic con il pulsante destro del mouse su una cartella e selezionando svncommit.

Vorrei utilizzare l'hook start commit per impostare una voce di registro.Pensavo che funzionasse passando il nome di un file di voce nella variabile MESSAGEFILE ma quando aggiungo uno script di hook non può vedere questa variabile (hook avviato con successo dopo aver fatto clic con il tasto destro e scelto svncommit).

Quando provo a utilizzare la riga di comando, utilizzo il parametro /logmsgfile ma sembra non avere alcun effetto.

Sto usando tortoisesvn 1.5.3.

È stato utile?

Soluzione

Sembra che sia stato un mio malinteso sull'API a causare un problema.

Soluzione:
1) Ho aggiunto uno script di hook di commit iniziale a TortoiseSVN utilizzando la GUI degli hook nell'area delle impostazioni del menu contestuale.

2) Lo script riceve 3 informazioni:PERCORSO FILE MESSAGGI CWD
Per i dettagli vedere: Manuale
Questi vengono passati come argomenti da riga di comando allo script: per qualche motivo avevo pensato che fossero impostati come variabili ambientali temporanee.

Il mio script quindi apre semplicemente il file specificato dal secondo argomento e aggiunge il testo personalizzato.

Quando viene visualizzata la finestra di dialogo di commit, è presente il testo personalizzato.

3) Meglio ancora se tortoisesvn viene lanciato da uno script direttamente nella finestra di dialogo di commit:
per esempio.[ tortoiseproc /comando:commit /percorso:./closeonend:1]
I ganci sono ancora chiamati.

Altri suggerimenti

Se hai solo bisogno di un modello statico, imposta la proprietà tsvn:logtemplate.

Per la generazione dinamica, il parametro /logmsgfile funziona, ma sembra che sia necessario il percorso completo.Un file batch simile al seguente potrebbe funzionare per te.

GenerateLogMsg.exe > tmp.msg
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:. /logmsgfile:"C:\Documents and Settings\User\My Documents\Visual Studio Projects\Project\tmp.msg"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top