Domanda

Jeff Atwood ha scritto su spazi e ha suggerito la creazione di commit hook che rimuove finale spazi alle estremità delle linee e dei file.

Ho cercato, ma non ho trovato un chiaro esempio di utilizzo di un gancio pre-commit di modificare i file di questo tipo. Avete uno script che si desideri condividere?

È stato utile?

Soluzione

Sono abbastanza sicuro che pre- commit ganci non possono essere utilizzati per modificare l'operazione in corso. Si può solo consentire o negare l'azione commettere. Nel tuo caso, che ci si vuole esaminare i file per vedere se soddisfano le vostre esigenze di spazio bianco e non riescono il commit con un messaggio di errore utile se non lo fanno. Si potrebbe utilizzare un gancio post-commit per fare ciò che si propone, ma si tratterebbe di fare una seconda commit dallo script gancio per fissare il cattivo spazi bianchi nella prima commettere. Credo che la pre-commit hook approccio è migliore.

Altri suggerimenti

Non si può davvero utilizzare impegnarsi ganci per fare questo in Subversion, perché se il file viene modificato dal server, non corrisponde alla versione sul client. Commit ganci sono per gli eventi di sola lettura, come la generazione di messaggi di notifica, o controllando i file per vedere se il commit deve essere bloccata.

la documentazione sul commettere ganci :

  

Un gancio è un programma innescata da un evento repository, come ad esempio la creazione di una nuova revisione o la modifica di una proprietà sotto controllo di versione. Alcuni ganci (i cosiddetti “pre ganci”) eseguiti in anticipo di un'operazione di repository e forniscono un mezzo attraverso il quale sia rapporto quello che sta per accadere e impedire che ciò accada a tutti . Altri ganci ( “post ganci”) eseguiti dopo il completamento di un evento di repository e sono utili per l'esecuzione di compiti che esaminano, ma non modificano-il repository . Ogni gancio viene consegnato informazioni sufficienti per dire che cosa tale evento è (o era), i cambiamenti specifici repository proposto (o completato), e il nome utente della persona che ha attivato l'evento.

Non sei sicuro di quale piattaforma ci si trova, ma si può fare questo con TortoiseSVN , utilizzando la sua ganci sul lato client .

In sostanza si può scrivere uno script che modificare i file utilizzando un pre-commit hook. Penso che questo è fatto più correttamente in uno script di build però: non si vuole veramente impegnarsi codice non hai nemmeno compilato o correre! Lo script che rimuove gli spazi potrebbero potenzialmente rompere qualcosa, a seconda del contesto / lingua.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top