entre ¿Cómo puedo obtener la funcionalidad de svn: externals de forma solo de lectura?




merge branches subversion (4)

svn: los externos pueden ser geniales para absorber bibliotecas centrales o IP en un proyecto, de modo que puedan mantenerse en una ubicación accesible para todos.

Pero si le pregunto a las personas por etiquetas externas de IP común (para que no cambie en ellas), se abre la posibilidad de que, inadvertidamente, realicen cambios en la etiqueta.

¿Cómo puedo hacer que svn: externals sea de solo lectura? Es aceptable si hay algún argumento adicional o alguna forma de hacer que el externo pueda ser agregado al procedimiento para que todos lo sigan.


Answer #1

En realidad, TortoiseSVN detecta que está intentando comprometerse con una etiqueta a través del enlace de confirmación y advierte al usuario de esto, lo que básicamente satisface mis requisitos para un aumento de velocidad. Entonces ya estamos bien.


Answer #2

Haga que los repositorios externos sean de solo lectura para todos excepto para sus mantenedores.


Answer #3

Haga que los repositorios externos sean de solo lectura para todos excepto para sus mantenedores.

Estoy totalmente de acuerdo con la respuesta de J. John más arriba. Crear un gancho de precompromiso es excesivo. svn: externals (es simplemente una referencia a un repositorio externo, de ahí el nombre) y por lo tanto todavía está en un repositorio separado (puede verificarlo yendo al exterior extraído y hacer 'svn info | grep URL') así que solo pon el permiso necesario en ese repositorio externo. Algo como:

[external_repo]
@maintainer = rw
@others = r

Y desde el repositorio (llamémoslo repoA) donde esto se define como "externo" (llamemos al repositorio externo como repoB), no necesita hacer nada. Cuando alguien (que no sea la persona que forma parte de @maintainers) intenta comprometerse con el repositorio externo a través del código que él / ella prestó de repoA, la confirmación se dirigirá al repoB externo y, por lo tanto, el permiso establece algo así como arriba en ese repositorio se iniciará y bloqueará el compromiso.

Espero que esto ayude a aclarar las cosas.

Ismael Casimpan :)


Answer #4

Usar los ganchos de repositorio svn para evitar la comunicación a directorios especiales, por ejemplo, etiquetas

Si está utilizando la convención de nomenclatura ttb (troncales, etiquetas, ramas) y el código para svn de solo lectura: el acceso externo reside en etiquetas-directorios, puede usar el gancho precompromiso para evitar comprometerse en esos directorios.

Aquí están los detalles: enlace de precompilación SVN para evitar cambios en los subdirectorios de etiquetas







svn