J'ai vu qu'il est mentionné que mercurial stocke le bit exécutable sur les fichiers, mais ne peut pas savoir comment le faire. Je suis à la recherche de fonctionnalités analogues à svn ps svn:executable '' TARGET
.Définition du bit exécutable sur les fichiers dans Mercurial
6
A
Répondre
15
Définissez (ou désactivez) le bit exécutable sur le fichier, puis hg le marquera comme modifié. Engagez-le.
Vous devrez activer les différences de style git pour voir les modes dans la sortie diff, mais il est toujours présent.
0
Pour Linux ou Unix, vous pouvez utiliser chmod +x filename
.
Pour Windows, vous devez créer un fichier de correctif, puis l'appliquer en utilisant l'argument --bypass
à hg import
. Cela pourrait se faire en créant un fichier de script Powershell appelé SetFileExecutable.ps1
, avec le texte ci-dessous
param (
[String]$comment = "+execbit",
[Parameter(Mandatory=$true)][string]$fileRelativePath,
[Parameter(Mandatory=$true)][string]$repositoryRoot
)
$fileRelativePath = $fileRelativePath.Replace('\', '/')
$diff = "$comment" + [System.Environment]::NewLine +
[System.Environment]::NewLine +
"diff --git a/$fileRelativePath b/$fileRelativePath" + [System.Environment]::NewLine +
"old mode 100644" + [System.Environment]::NewLine +
"new mode 100755"
Push-Location
cd $repositoryRoot
$diff | Out-File -Encoding 'utf8' $env:tmp\exebit.diff
hg import --bypass -m "$comment" $env:tmp\exebit.diff
Pop-Location
exécuter comme suit:
.\SetFileExecutable.ps1" -comment "Marking file as executable" -fileRelativePath mvnw -repositoryRoot "c:\myrepo"
L'utilise la solution fournie par Matt Harbison in Mercurial's Bugzilla
Questions connexes
- 1. Définition du bit d'exécution de Mercurial sous Windows
- 2. Mercurial: informations sur les fichiers modifiés
- 3. mercurial ignorer les fichiers
- 4. SML comparant les fichiers au niveau du bit
- 5. diffing uniquement les fichiers modifiés dans Mercurial
- 6. Mercurial - Ignorer les fichiers volumineux
- 7. Réparer les liens entre les fichiers déplacés dans Mercurial
- 8. mercurial .hgignore - n'ignore pas les fichiers
- 9. Quelques questions sur les opérateurs bit à bit
- 10. Définition de l'encodage dans les fichiers XML
- 11. Exécution du serveur Mercurial sur Google AppEngine
- 12. fichiers Enveloppez dans un seul paquet exécutable
- 13. Comment compresser les fichiers mercurial dans le dépôt?
- 14. Définition de classes dans les fichiers Java
- 15. Définition d'une variable à partir d'un exécutable
- 16. exclure les répertoires du contrôle mercurial
- 17. Fichiers objets dans un exécutable sous Linux
- 18. Branche du passé dans mercurial
- 19. Fichiers Mercurial (Hg) et binaires
- 20. Mercurial - tous les fichiers modifiés dans un ensemble de modifications?
- 21. Validation de certains fichiers dans Mercurial
- 22. Remplacer un bit de texte spécifique dans tous les fichiers php sur un serveur?
- 23. opérations Bit sur Enum
- 24. En savoir plus sur les bibliothèques partagées d'un fichier exécutable
- 25. Erreur d'opération au niveau du bit?
- 26. Comment faire pour oublier tous les fichiers supprimés avec Mercurial
- 27. Définition du bit "execute" SVN dans un référentiel Subversion à l'aide de TortiseSVN ou de la ligne de commande SVN
- 28. Définition du chemin d'accès aux fichiers de configuration du module
- 29. Comment "rétablir" les fichiers non modifiés avec mercurial?
- 30. sous condition SQL sur Bit
Je n'ai pas cette même expérience avec Mercurial 2.7.1. Pour moi, changer le drapeau exécutable sur le fichier ne change pas le statut de ce fichier. –
Cela ne fonctionne pas sur Windows, qui n'a pas cette notion - voir https://stackoverflow.com/questions/2702825/setting-mercurials-execute-bit-on-windows –