2011-07-29 16 views
28

Tengo SVN configurado en Linux en una ubicación diferente y necesito registrar un script de shell en SVN con el atributo ejecutable ON de Windows. Yo uso Bamboo como CI, que comprueba las fuentes de SVN y hace la compilación periódica. Lanza un error que el script de shell no es ejecutable. (Bamboo run como root).¿Cómo configurar el atributo "ejecutar" en un archivo y verificarlo en SVN desde Windows?

¿Cuál es la mejor manera de establecer el permiso ejecutable?

No uso ningún cliente SVN y uso eclipse para el check-in y check-out. Si el cliente SVN es el único, ¿cómo puedo encontrar una versión que sea compatible con el complemento SVN que uso en eclipse? Tuve un problema de compatibilidad antes. Cuando registré un archivo de Tortoise, no pude verificar ese archivo desde Eclipse.

+0

¿Ayuda algo de esta pregunta? http://stackoverflow.com/questions/56149/storing-file-permissions-in-subversion-repository – Chris

+2

No veo por qué esto tiene tantos votos cercanos para "de tema" como SVN es claramente una herramienta de programación. –

+1

Gracias phasetwenty, ayuda a entender el problema con claridad. – Mark

Respuesta

27

SVN ignora los permisos de archivo UNIX cuando commiting. La forma en que establece permisos de ejecución en un archivo es cambiar las propiedades de svn para ese archivo. Si está en Windows, la forma más fácil de hacerlo es instalar Tortoise SVN. Luego, después de haberse comprometido, use Tortoise para abrir el repo-navegador. Busque un archivo que necesite ser ejecutable y haga clic con el botón derecho para abrir las propiedades.

El cuadro de diálogo que aparece es el de las propiedades SVN. Haga clic en Nuevo para agregar una nueva propiedad, seleccione svn: ejecutable en la lista desplegable y establezca el valor de la propiedad en *.

Eso es todo. Cuando hace clic en Aceptar, se confirma en el repositorio SVN. La próxima vez que usted, o la máquina de compilación, haga un svn update, ese archivo tendrá permisos ejecutables en Unix/Linux.

+0

Gracias Michael, está funcionando. El mismo proceso que hice la última vez, pero cambié el atributo y luego lo revisé con el cliente de Tortoise, así que tuve un problema de compatibilidad. – Mark

+0

Michael, creo que su primera frase, "SVN ignora los permisos de archivos de UNIX al comprometerse" debería ser "SVN ignora los cambios en los permisos de archivos UNIX una vez que se ha agregado un archivo". –

41

svn propset svn:executable "*" someScript

La sintaxis es tan propset key valuesvn:executable es la clave y "*" es el valor

someScript es el nombre del archivo

Cuestiones relacionadas