Domanda

Sto cercando un modo per eseguire le seguenti operazioni in pre-commit o post-commit o in qualsiasi altro modo.

Ecco cosa mi serve per funzionare

  1. L'utente commette il file
  2. Qualcosa funziona (hook o qualcos'altro)
  3. Che qualcos'altro dal n. 2 dovrebbe aggiungere testo statico al file sottoposto a commit

Sulla base di questo http://subversion.open. collab.net/ds/viewMessage.do?dsForumId=3&dsMessageId=296576 Vedo che non è raccomandato, ma deve esserci un modo per aggiungere testo a file su ogni commit.

Sistema operativo: Os inviati

Motivo per cui ne ho bisogno: proteggi tutti i file di codice inserendo note legali

È stato utile?

Soluzione 3

Finora l'unica soluzione possibile è usare ganci sul lato client di tortoiseSVN:

Inserimento automatico dei commenti usando TortoiseSVN?

Sfortunatamente, questo limita gli sviluppatori a usare solo TortoiseSVN. L'uso dei plugin di Visual Studio, ad esempio, non funzionerà :(

Se qualcuno trova un modo centralizzato su come farlo, per favore, pubblica qui.

Altri suggerimenti

Guarda la casella rossa alla fine di questo capitolo del libro SVN:

  

Mentre gli script hook possono fare praticamente qualsiasi cosa, esiste una dimensione in cui gli autori degli script hook dovrebbero mostrare moderazione: non modificare una transazione di commit usando gli script hook. Mentre potrebbe essere allettante utilizzare gli script hook per correggere automaticamente errori, carenze o violazioni dei criteri presenti nei file sottoposti a commit, ciò può causare problemi. Subversion mantiene le cache sul lato client di alcuni bit di dati del repository e, se si modifica una transazione di commit in questo modo, tali cache diventano irrimediabilmente obsolete. Questa incoerenza può portare a comportamenti sorprendenti e inaspettati. Invece di modificare la transazione, è necessario semplicemente convalidare la transazione nell'hook pre-commit e rifiutare il commit se non soddisfa i requisiti desiderati. Come bonus, i tuoi utenti impareranno il valore di abitudini di lavoro attente e attente alla conformità.

Sottoscrivo il POV che il testo nelle caselle rosse dovrebbe essere preso sul serio.

Secondo quel thread, potresti farlo in un hook pre-commit, ma sarebbe una cosa negativa ™ Se devi assolutamente avere del testo statico nel file, sarebbe meglio che gli sviluppatori inserissero il testo, e quindi utilizzare l'hook pre-commit per verificare che fosse lì. Se il testo statico non esiste o è errato, si rifiuta il commit.

Che ne dici di lavorare su questo in un altro modo - usa un robot. È un po 'più di lavoro, ma in sostanza: accetta il commit nel repository senza la sezione legale richiesta e attiva il robot per dare un'occhiata (o farlo periodicamente).

Il robot quindi effettua un checkout / aggiornamento dei file che si occupa, controlla la loro politica e le note legali, aggiunge automaticamente tutto ciò di cui ha bisogno e quindi controlla di nuovo le modifiche. In questo modo, le cache di Subversion sono felici e le note legali lo sono su tutti i file. Developerse abbatterà le modifiche al prossimo ciclo di aggiornamento / commit proprio come farebbero con qualsiasi altra modifica. Puoi anche fare in modo che il robot mantenga automaticamente aggiornata la sezione legale con l'ultima definizione, a seconda della complessità che desideri.

Potrebbe persino essere in grado di utilizzare qualcosa come Hudson per ospitare questo in un framework utilizzabile.

È possibile installare un hook sul server SVN che eseguirà uno script e può aggiungere informazioni al file ecc.

Ci sono un po 'di informazioni qui: http://svnbook.red-bean.com/en/1.4/svn.ref.reposhooks.post-commit.html

Detto questo, perché mai vorresti farlo?

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