Ich arbeite an einem Mercurial-Repository, das auf einigen Unix-Dateisystemen wie ext3 ausgecheckt ist, und auf anderen mit FAT32.Einstellung von Mercurials Ausführungsbit unter Windows
In Subversion kann ich die svn: executable-Eigenschaft festlegen, um zu steuern, ob eine Datei als ausführbar markiert werden soll, wenn sie auf einer Plattform ausgecheckt wird, die ein solches Bit unterstützt. Ich kann dies unabhängig von der Plattform, auf der ich SVN aktiviere, oder dem Dateisystem, das meine Arbeitskopie enthält.
In Mercurial kann ich chmod + x, um den gleichen Effekt zu erhalten, wenn der Klon auf einem Unix-Dateisystem ist. Aber wie kann ich das ausführbare Bit in einer Datei auf einem FAT-Dateisystem setzen (oder entfernen)?
Ich habe versucht, diese Technik beim Hinzufügen einer Datei und es hat nicht funktioniert. Ich habe die Datei hinzugefügt, den Patch erstellt, den Repo zurückgesetzt, die Datei entfernt, den Patch bearbeitet, der 0644 durch 0755 ersetzt, und den Patch importiert. Beim Ziehen an einem Unix-System ist der Modus immer noch 0644. Mercurial 1.9.1. –
Der Pull erstellt nicht die Datei, das Update tut. Nachdem du gezogen hast und du ein 'hg log --git -p' machst siehst du die 100755 im Patch? Wenn Sie dieses Execute-Bit aktualisieren, kann es sein, dass es zurückgesetzt wird, wenn die Umask es verbietet, das Dateisystem No-Execute eingehängt ist oder ein paar andere unwahrscheinliche Dinge. –
Wenn Sie sich das Protokoll ansehen, wird der 0644-Modus angezeigt. Aus irgendeinem Grund hat er den Modus aus dem bearbeiteten Patch nicht akzeptiert. –