Tengo algunos usuarios que utilizan Mercurial sobre recursos compartidos de Linux Samba, montados en sus Mac.
El servidor Samba tiene las siguientes reglas de veto (bien discutidas aquí en este sitio y en otros lugares) para evitar que las Mac creen bifurcaciones de recursos, que causan estragos en todo tipo de cosas, especialmente en los directorios de desarrolladores:
veto files = /._*/.DS_Store/
delete veto files = yes
El problema es que a veces, de forma aleatoria, Mercurial se ahoga con este error:
$ hg ci
trouble committing stylesheets/custom.css!
transaction abort!
rollback completed
abort: Permission denied: '/Volumes/xxx/yyy/.hg/store/data/stylesheets/._custom.css.i-JdxA5R'
¿Por qué Mercurial intenta crear una bifurcación de recursos dentro de su propio almacén de datos?
Si comento la regla de veto, la confirmación se realiza correctamente, pero no deja dicha bifurcación de recursos en el servidor. Entonces parece ser una bifurcación de recursos temporal, o la de un archivo temporal.
¿Cómo puedo evitar que hg lo cree, ignorar el error o hacer que Samba se lo trague en silencio?
Editar: Supongo (pero no estoy seguro) que hg está creando un archivo temporal llamado custom.css.i-JdxA5R y por alguna razón OS X intenta adjuntarle una bifurcación de recursos. Cuando eso falla, ya que Samba lo veta, OS X devuelve un error para toda la operación del archivo temporal.
Respuesta1
No entendiste la sintaxis de veto files
(enlace del documento) opción. En /
realidad, separa dos reglas y no tiene el significado del separador de directorios como en las rutas de Unix.
Esencialmente, tienes dos reglas allí, la primera que bloquea ._*
, que coincide ._custom.css.i-JdxA5R
.