2015-02-19 20 views
7

Vogliamo che ogni persona che fa una spinta nel nostro repository git esegua "grunt" prima che ciò avvenga. Lo facciamo applicando un gancio pre-push in .git/hooks/pre-push e scrivendo npm install e grunt in quel file.È possibile aggiungere un "gancio di precommit" su TFS?

Abbiamo anche un repository TFS. Sto cercando una logica simile da utilizzare qui. Significa che vogliamo una sorta di "Gated check-in" quando qualcuno cerca di verificare qualcosa. Questo avvia solo PowerShell ed esegue npm install e gruntlocalmente.

Non vogliamo che TFS faccia altro (eseguire build, eseguire test ecc. (Tutto ciò viene eseguito nel task grunt)).

È possibile? Qualcuno sa come?

risposta

1

TFS non ha nulla a che fare con ciò che si fa localmente. Puoi aggiungere tutti gli hook pre-commit al tuo repository e inviarli a TFS. TFS memorizzerà felicemente questi script di hook. E quando usi un client che li supporta, quel client li eseguirà pre-commit.

Ma se si prevede che Visual Studio esegua questi hook prima del commit, probabilmente si è sfortunati. Non è disponibile il supporto "policy di check-in" per Visual Studio quando connesso a Git. Né in nessun altro client Git basato su LibGit2 al momento, per quanto posso dire.

È possibile impostare un criterio di diramazione collegato a un build CI, eseguendo in modo efficace le attività grunt su un build server, ma capisco che questo non è ciò che si desidera. .

C'è dello sfondo disponibile nella sezione di rilascio LibGit2, which is what Visual Studio uses to implement its git functionality. E questo corrispondente user voice item for Visual Studio. Come well as a discussion on the GitHub for Windows client che utilizza la stessa libreria sottostante.