Nous sommes une équipe de plus de 60 développeurs travaillant sur le même produit et passons de SVN à Git et GitHub. Nous avons un processus dans SVN dans lequel des fichiers individuels sont verrouillés et chaque développeur qui souhaite valider du code doit le faire déverrouiller par le propriétaire du fichier. Trois d'entre nous sont les propriétaires de plus de 150 fichiers. Le déverrouillage est précédé d'une révision du code.
Dans Github, nous prévoyons d’utiliser le modèle Fork-Clone - chaque projet sur lequel un groupe de développeurs travaille travaille fera un fork, chaque développeur créera un clone du fork, écrira le code et s’engagera dans Origin, le chef du projet. fonctionnalité fera une demande de tirer en amont.
Bien que cela semble correct, le problème est que lorsqu'un grand projet est livré, il apporte beaucoup de modifications à la révision et augmente donc la charge pour les propriétaires de fichiers. En outre, cela pourrait se produire au cours des derniers cycles de développement, ce qui pourrait compromettre le projet.
Une méthode qui, selon nous, pourrait fonctionner consiste à avoir des crochets lorsque le git Push est effectué sur l’origine (fork). Il peut y avoir une dernière critique à tirer en amont.
Cependant, nous n'avons pu trouver aucune extension github ni aucun crochet pour le même. Existe-t-il un moyen rapide (lire, extension existante) de faire cela avec Github ou devrions-nous utiliser les mêmes hooks que ceux que nous utiliserions avec git?
Aucune chance, si le fichier n'est pas fusionnable et que vous devez le verrouiller, utilisez une solution centralisée au lieu de GIT, c'est-à-dire SVN ou ClearCase.
Si vous utilisez git LFS
(qui est pris en charge par certains fournisseurs d’hébergement git, tels que GitHub), vous pouvez utiliser File Locking .
Marquez un type de fichier comme étant verrouillable en modifiant le fichier .gitattributes
fichier:
*.docx lockable
# Make MS Word files lockable
Et verrouillez-le avec:
$ git lfs lock example.docx
Vous pouvez déverrouiller vos fichiers avec git lfs unlock example.docx
et ceux de quelqu'un d'autre en ajoutant --force
.
Git ne fournit aucune fonctionnalité de verrouillage, car elle est décentralisée. Cependant, si vous hébergez votre code sur GitLab Enterprise Edition Premium , vous pouvez tilisez l'interface Web pour verrouiller des fichiers ou des dossiers individuels , réalisez exactement ce que vous souhaitez faire.
Si vous ne souhaitez pas héberger votre projet sur le serveur de quelqu'un d'autre (leur site Web), vous pouvez également télécharger GitLab et l'héberger sur votre propre serveur Web.
Pas exactement verrouillable, mais Github a introduit un concept appelé " Code Owners ". Vous permet de limiter une partie de votre base de code pour autoriser uniquement les validations après révision par les propriétaires de code
c'est possible. git-lfs 2.0 introduit la possibilité de verrouiller les fichiers: voir ces liens: https://github.com/git-lfs/git-lfs/wiki/File-Locking . La prise en charge de cette fonctionnalité est disponible à partir de TFS 2017.2: https://docs.Microsoft.com/en-us/vsts/release-notes/ .