Cómo configurar su propio servidor svnserver Linux
Los materiales de referencia son los siguientes.
Primero, cree e inicialice el repositorio
1. Cree un nuevo repositorio de código
# svnadmin create /home/myrepos
Por lo tanto , creamos un nuevo repositorio myrepos en el directorio /home.
2. Inicialice el repositorio de código
# mkdir -p code/{branches,tags,trunk}
De acuerdo con las recomendaciones del manual de svn, Diseñe el repositorio. Hay tres directorios: rama/etiqueta/tronco. El código se puede copiar directamente al directorio troncal o agregarlo más tarde usando svn add.
#svn import code file:///home/myrepos
Confirma el diseño de nuestro repositorio creado (y el código, si se copia al tronco) en el repositorio. Como hacemos esto localmente, podemos confirmar directamente usando el protocolo de archivo. El formato es: file:// + ruta absoluta al repositorio
Bien, hemos creado un repositorio local y podemos usar el método svn ci para obtener una copia del repositorio localmente. Si antes solo envió el diseño del repositorio pero no el código, puede usar el siguiente comando para enviar el código de la versión:
#svn co file:///home/myrepos/trunk repos
Normalmente, solo se toma el código fuente del directorio principal y se coloca en el directorio de repositorios recién creado. Luego, el código fuente se puede copiar en el directorio de repositorios.
Ejecute los siguientes dos comandos para agregar el código al repositorio.
#svn add *
#svn ci * -m "Códigos confirmados"
Primero debe agregar el código copiado a la copia actual y luego enviar el código al repositorio.
II. Configurar e iniciar svnserve
1. Configurar svnserve
Este paso es principalmente para completar la configuración de permisos para que los usuarios remotos accedan al repositorio.
Hay un directorio conf en el directorio del repositorio: home/myrepos/conf, que contiene tres archivos: authz, passwd y svnserve.conf. conf:
Este archivo se utiliza principalmente para las siguientes configuraciones:
anon-access = lectura
auth-access = escritura
contraseña- db = passwd
authz-db = authz
Entre ellos, anon-access s y auth-access significan configurar permisos de acceso de forma anónima, leer significa solo lectura, escribir significa leer -escribir, y ninguno significa Sin acceso.
contraseña-db es el nombre de usuario y la contraseña del repositorio, normalmente el archivo passwd en el directorio conf.
authz-db apunta a un archivo que se utiliza para agrupar usuarios y otorgar diferentes permisos a diferentes grupos. Por ejemplo, si tiene varios directorios, puede configurar los usuarios de un grupo para que solo tengan acceso a esos directorios.
(2) passwd
Como se mencionó anteriormente, el contenido principal de este archivo es el siguiente
[usuarios]
harry = harrysecret
sally = sallyssecret
Las dos líneas anteriores son el nombre de usuario y la contraseña que se pueden utilizar para acceder al repositorio. Las dos líneas anteriores son el nombre de usuario y la contraseña que se pueden utilizar para acceder al repositorio. El formato es: usuario = contraseña.
(3) authz
[grupos]
# harry_and_sally = harry,sally
# [/foo/bar] p>
# harry = rw
# * =
# [repositorio:/baz/fuz]
# @harry_and_sally = rw
# * = r
Lo anterior es el formato del archivo de autenticación. Primero agrupe los usuarios y luego configure el directorio de trabajo y los permisos para cada grupo por separado.
Este artículo no utiliza la configuración de autenticación.
2. Inicie svnserve
#svnserve -d -r /home/
Svnserve se ejecutará como un proceso demonio. Además, también necesita usar la opción -r para especificar el directorio del repositorio. Este directorio puede ser el directorio principal del repositorio (/home) o el directorio del repositorio (/home/myrepos). Las diferencias específicas se introducirán más adelante. Por supuesto, no es necesario especificar -r.
En tercer lugar, acceda a svnserve de forma remota.
Suponiendo que la dirección del servidor de la versión es 10.1.1.1, el usuario puede ingresar el siguiente comando:
#svn checkout svn://10.1.1.1/myrepos myrepos p>
De esta manera, todo el contenido del repositorio será extraído y almacenado en el directorio actual myrepos. Esto equivale a utilizar el protocolo svn sin compilar mit.
2. Importar o enviar tipos de archivos
El cliente svn se puede configurar para ignorar ciertos archivos, por ejemplo, no queremos enviar archivos *.o. Luego, puede configurar svn:ignore o global-ignore para filtrar archivos relacionados. Normalmente, la configuración predeterminada filtra *.o, *.so, *.a y otros archivos que svn trata como archivos intermedios. Los clientes WIN y Linux que uso personalmente tienen esta configuración predeterminada.
Sin embargo, si necesita importar algunos archivos *.so, *.a que deben conservarse, o importar un proyecto que otros han mantenido antes, ¿qué sucede si los importa todos durante la primera importación? Le pregunté a algunos amigos y les dije que svn add o svn import pueden importar directamente estos archivos al repositorio. Pero lo probé personalmente y descubrí que no funcionará a menos que primero agregue el archivo usando svn y luego lo envíe.
¿Qué hacer si hay más archivos como este y están dispersos? Consulte la ayuda para los comandos svn import y svn add, los cuales tienen la opción --no-ignore. El objetivo de esta opción es realizar la operación correspondiente sin ignorar ningún archivo. Ejecute los siguientes dos comandos:
svn import [fuente] [repositorio] --no-ignore
o
svn add [fuente] --no- ignore
tomará automáticamente todo lo que esté en el directorio de origen y lo importará o agregará.
3. Cuando un repositorio creado con una versión anterior de svnadmin se copia directamente a otra PC usando una versión superior de svn, se le indicará que la versión de la base de datos no coincide.
Solución:
(1) Exporte el contenido de la versión anterior del repositorio, incluida la información de la versión.
El comando específico es svnadmin dump. Para un uso detallado, consulte el manual de referencia. El formato de este comando es:
svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental]