2010-04-16 21 views
5

Esto es lo que estoy tratando de hacer. Tengo un proyecto en/var/www/project. Me gustaría usar svn para este proyecto. He instalado SVN en mi servidor Debian para este propósito, pero no entiendo cómo usarlo y la búsqueda en Google me confundió aún más. Me gustaría crear un repositorio/var/svn/project y usarlo. Después de que ocurran algunos cambios, me gustaría exportar todo el código nuevamente a/var/www/project. Ahora esto es lo que he hecho:Subversion (svn) preguntas del principiante

  • He creado un repositorio: svnadmin create/var/svn/proyecto
  • He importado el código: svn archivo de importación/var/www/proyecto:/// var/svn/proyecto -m "importación inicial"
  • he comprobado el código con "Versiones" cliente

Todo parece funcionar bien, pero ... Si voy a/var/svn/project, no hay archivos fuente de mi proyecto allí ni en ningún subdirectorio. Aunque el cliente svn puede verificar todos esos archivos. Así que he leído que en svn, los archivos no se almacenan por separado ni en berkley db ni en los sistemas de archivos fsfs. Entonces la pregunta es ... ¿cómo exportar la fuente de nuevo a/var/www/project? Si hago un comando svn export en el directorio/var/svn/project, dice que no estoy en una copia de trabajo :(

+2

usted puede considerar esto fuera de tema, pero les sugieren fuertemente, a menos que tenga algún requisito estricto, evitar el uso de svn como sistema de control de versiones y trate de utilizar distribuidos uno (GIT, darks, mercurial .. .). Esto probablemente simplifica mucho su vida, ya que no tiene que meterse con los servidores svn. – Dacav

+1

no hay nada de malo con SVN para un principiante. Es mucho más fácil de aprender que cualquier sistema distribuido que haya encontrado. – rmeador

Respuesta

3

En primer lugar, tiene razón en que SVN usa una estructura de base de datos para almacenar (los cambios en) sus archivos, por lo que no debe esperar ver los archivos sin formato en la carpeta del repositorio.

Una vez que haya creado un repositorio, casi nunca tendrá que hacer nada más en ese directorio, excepto por cuestiones de configuración (autorización del usuario, por ejemplo).

Todo su trabajo debe continuar en los directorios de copia de trabajo.

Para obtener el código en su tipo www carpeta:

cd /var/www/project 
svn checkout /var/svn/project 

Ahora puede editar código en ese directorio de trabajo (/var/www/project) como desee. Cuando se quiere cometer estos cambios de tipo

svm commit -m "Commit message" 

Y los cambios entrarán de nuevo en el repositorio.

+0

+1 jaja, el primero en mostrar el comando de pago (que me parece la respuesta correcta) – jrsconfitto

0

se ejecutaría el comando svn export desde el lado del cliente para exportar un árbol limpio a . alguna otra ruta en su cuadro de cliente o de otro repositorio suena como/var/svn/proyecto es su repositorio (servidor)

si se refiere a exportar directamente desde su repositorio, archivo de exportación svn uso: /// tmp/repositorio mi-exportación

0

Asegúrese de que no puso los archivos en lugar /var/www/project/project.

0

Verifique la fuente (al cree un directorio de trabajo), luego use svn export dentro de su copia registrada para exportarlo a otro lugar.

1

En primer lugar, recomiendo http://svnbook.red-bean.com/ como referencia.

Desea exportar de su repositorio a su ubicación. Todo esto es posible a través de:

svn export file:///var/svn/project /var/www/project

También hay que resaltar, como estoy seguro de que han dado cuenta ahora, es que no se puede simplemente ir a su directorio de repositorio y ver sus archivos ya que se almacenan en una base de datos en ese lugar, no como archivos sueltos.

+0

Gracias, Dan. Finalmente logré que funcione el comando de exportación. Tal vez estaba haciendo algo mal la primera vez;] – Marius

0

Svn guarda los archivos en su propio sistema de base de datos. Si desea reemplazar el código en/var/www/project con una versión exportada, debe llamar a exportar en una copia de trabajo. Debería considerar eliminar/var/www/project (¡la copia de seguridad primero!) Y reemplazarlo con una copia de wokring.

0

Podría considerar el uso de un sistema de control de versiones distribuidas como Mercurial.

Es tan fácil de usar como la subversión. De hecho, puede ser mejor cuando el repositorio está en un sistema de archivos local (a diferencia de un servidor) porque uno de mis colegas dijo que svn está desaprobando el almacenamiento de FSFS (no puedo encontrar una referencia para esto).

Para obtener información sobre mercurial, consulte este enlace a continuación. Ojalá nunca me molestara con svn.

http://hgbook.red-bean.com/read/

Cuestiones relacionadas