2010-02-25 8 views
15

Non so se questo hook è out-of-box o se il mio è solo incasinato e ho solo bisogno di sostituirlo ma quando vado a provare a modificare un commento di registro su un commit viene visualizzato questo messaggio di errore:hook pre-revprop-change fallito

richiesta DAV non riuscita; è probabile che il gancio di modifica pre-revisore del repository sia guasto o inesistente
Almeno una modifica di proprietà non è riuscita; repository è invariato
Errore proprietà impostazione ‘log’

sto usando Tortoise v1.6.7, ma ho avuto questo problema per tutto il tempo da quando ho installato Tortoise, appena mai guardato dentro, ma è estremamente fastidioso.

So I found this article.

Tuttavia, dal momento che non riesco a capire come eseguire le chiamate a linea di comando svn con Tortoise, sono semplicemente entrato nel repository e ho aperto il modello pre-refprop-change e sotto c'è quello che c'è dentro.

REPOS="$1" 
REV="$2" 
USER="$3" 
PROPNAME="$4" 
ACTION="$5" 

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi 

echo "Changing revision properties other than svn:log is prohibited" >&2 
exit 1 

Così ancora cercando di capire come cambiare questo modo che Tortoise (la sovversione che è) mi permette di modificare i commenti. Perché si desidera modificare i commenti? Perché ci sono molte volte in cui mi sono dimenticato e ho dimenticato di aggiungere altri commenti dopo un commit dopo che mi sono reso conto di aver perso x, y, z che avrebbero dovuto essere nei commenti dopo il fatto. Succede a chiunque. Anche se è un rischio per la sicurezza di consentire agli sviluppatori di fare ciò, eseguiamo il backup del nostro repository ogni 2 ore, quindi se qualcuno li supera e li cancella, vabbè, sono disposto a correre questo rischio dato che abbiamo eseguito il backup. Tale rischio non dovrebbe oscurare la capacità di fissare i commenti a piacimento.

+0

[ciò che è un gancio pre-revprop-change in SVN e come si crearla?] (Http://stackoverflow.com/questions/197224/what-is-a-pre- revprop-change-hook-in-svn-e-how-do-i-create-it) –

risposta

24

se il repository è su una macchina Windows, è sufficiente creare un file denominato pre-revprop-change.bat e aggiungere la riga

exit 0 

in esso.

+1

Interessante, non sono un guru della linea di comando. Che cosa sta facendo, ignorando completamente il modello? – PositiveGuy

+0

forse potresti anche aiutarmi con un .bat che forza l'inserimento di x caratteri in ogni commento che fanno i miei sviluppatori? – PositiveGuy

+1

Questa è una soluzione leggermente ombreggiata: l'OP cercava principalmente di modificare i commenti, non cambiare gli autori, eliminare commenti, ecc. – Tao

24

Solo un piccolo follow-up a Stefan's excellent answer per quelli che utilizzano VisualSVN Server.

È possibile seguire questi passaggi:

1.) Avviare il VisualSVN Server Management Console.

2.) fare clic destro sul repository-of-scelta e selezionare "Proprietà":

enter image description here

3.) Selezionare il "Pre-revisione gancio cambio di proprietà" e fare clic sul pulsante Modifica :

enter image description here

4.) Inserire lo script, il più piccolo possibile, sarebbe la exit 0 che Stefan suggerisce:

enter image description here

5.) Chiudere tutte le finestre di dialogo con OK e poi si è fatto.

La prossima volta che si modifica il messaggio di registro, questo dovrebbe riuscire.

2

Se si utilizza un servizio di hosting svn online come assembla, quindi utilizzare le istruzioni fornite da Uwe Keim per guidare l'utente. Hai solo bisogno di trovare le tue impostazioni svn da qualche parte sul sito web di svn hosts.

Per assembla> vai al tuo progetto> scheda svn> impostazioni> ganci lato server nel menu a sinistra> guarda "Ganci pre-revprop-disponibili disponibili"> fai clic sul pulsante di installazione accanto ad esso> fai clic sulla scheda svn per tornare al tuo progetto.

+1

Funziona come un fascino! :-) –

0

Creare un file bat utilizzando solo "exit 0". Rimuovi tutte le altre righe rimosse. Salvalo nella cartella Path \ Repositories \ hooks come "pre-revprop-change.bat" e prova a rieseguire.

exit 0