¿Cómo agregar una carpeta existente con archivos a SVN?

84

¿Cómo se agrega una carpeta sin control de versiones a una ubicación SVN específica? A menudo comienzo a escribir código y solo después de tener algunas carpetas que contienen archivos de código, lo agrego a SVN.

Lo que suelo hacer es:

  1. svn co el directorio principal donde quiero crear una nueva carpeta para almacenar mi código.
  2. svn mkdir para crear el directorio en el que quiero poner mi código.
  3. Copia y pega mi código.
  4. svn commit .
  5. Eliminar mi directorio de código de trabajo actual.
  6. Vuelva a crear mi directorio de código de trabajo usando svn co .
Siecje
fuente
2
Posible duplicado en stackoverflow.com/questions/2431389/…
pmod

Respuestas:

134

Digamos que tengo código en el directorio ~/local_dir/myNewAppy quiero ponerlo en ' https://svn.host/existing_path/myNewApp ' (mientras puedo ignorar algunos binarios, bibliotecas de proveedores, etc.).

  1. Crea una carpeta vacía en el repositorio svn mkdir https://svn.host/existing_path/myNewApp
  2. Vaya al directorio principal del proyecto, cd ~/local_dir
  3. Consulte el directorio vacío sobre su carpeta local. No tenga miedo, los archivos que tiene localmente no se eliminarán. svn co https://svn.host/existing_path/myNewApp. Si su carpeta tiene un nombre diferente localmente que en el repositorio, debe especificarlo como un argumento adicional.
  4. Puede ver que svn stahora se mostrarán todos sus archivos como ?, lo que significa que actualmente no están bajo control de revisión.
  5. Realice svn addel trabajo con los archivos que desee agregar al repositorio y agregue otros svn:ignore. Puede encontrar algunas opciones útiles con svn help add, por ejemplo , --parentso --depth empty, cuando desee agregar selectivamente solo algunos archivos / carpetas.
  6. Comprometerse con svn ci
qbolec
fuente
En el punto 5: puede agregar todos los archivos / directorios de su directorio de trabajo de esta manera en bash: find . -name .svn -prune -o -print0|xargs -0 svn add
Nicolas M
1
El mejor tutorial que he visto para introducir cosas nuevas en svn.
Colin 't Hart
cómo se hace esto: "Si su carpeta tiene un nombre diferente localmente que en el repositorio, debe especificarlo como argumento adicional"
Kristof Pal
1
@KristofPal:svn co https://svn.host/existing_path/myNewApp ~/local_dir/localNameOfFolder
qbolec
1
Gracias @qbolec, por "no tengas miedo". +1 en todas las "mejor respuesta". Como una pista para aquellos que todavía pueden tener miedo: puede respaldar su trabajo si todavía tiene miedo.
Stephan Samuel
55

Si entendí correctamente su caso de uso, le sugiero que intente usar svn add para colocar la nueva carpeta en la versión, consulte aquí . Lo siguiente agregará la nueva carpeta con archivos de forma recursiva bajo el control de versiones (si está dentro de una copia de trabajo válida):

svn add new_folder
svn commit -m "Add New folder to the project"

Si no está en una copia de trabajo , créela con svn checkout , copie new_folder allí y siga los pasos anteriores.

O

Pruebe svn import , vea aquí ; lo siguiente creará una nueva carpeta y cargará archivos al repositorio:

svn import -m "Import new folder to the project" new_folder \
        http://SVN_REPO/repos/trunk/new_folder

También tenga en cuenta que:

Después de importar los datos, tenga en cuenta que el árbol original no está bajo control de versiones. Para comenzar a trabajar, aún necesita svn checkout una copia de trabajo nueva del árbol

pmod
fuente
Pero la carpeta principal no está bajo control de versiones. ¿Cómo sabe dónde ponerlo en el repositorio svn?
Siecje
No tengo claro dónde están tus carpetas, ¿no estás trabajando en la "copia de trabajo"?
pmod
Ya tengo un repositorio svn con carpetas. Creo archivos y carpetas que no son svn y me gustaría agregarlos al repositorio. La forma en que lo hago ahora es verificar un directorio arriba donde quiero poner mi proyecto. Luego copio y pego en la ubicación de pago y agrego svn allí.
Siecje
@Siecje Creo que ahora entiendo lo que quieres decir
pmod
así que tengo que hacer un pago, lo que significa que tengo que eliminar los archivos y volver a descargarlos de SVN. Entonces, para los archivos del sitio web, ¿el sitio debería desactivarse por un segundo mientras hago esto?
Siecje
9

No uso comandos. Debería poder hacer esto usando la GUI:

  • Haga clic derecho en un espacio vacío en su carpeta Mis documentos, seleccione TortoiseSVN> Repo-browser.
  • Ingrese http: // subversion ... (su ruta URL a su servidor / directorio de Subversion en el que guardará) como su ruta y seleccione OK
  • Haga clic con el botón derecho en el directorio raíz en Repo y seleccione Agregar carpeta . Dale el nombre de tu proyecto y créalo.
  • Haga clic con el botón derecho en la carpeta del proyecto en el navegador de repositorios y seleccione Pago . El directorio de Checkout será su Visual Studio\Projects\{your project}carpeta. Seleccione Aceptar.
  • Recibirá una advertencia de que la carpeta no está vacía. Di para pagar / exportar a esa carpeta; no sobrescribirá los archivos de tu proyecto.
  • Abra la carpeta de su proyecto. Verá signos de interrogación en las carpetas que están asociadas con su proyecto VS que aún no se han agregado a Subversion. Seleccione esas carpetas usando Ctrl + Clic, luego haga clic derecho en uno de los elementos seleccionados y seleccione TortoiseSVN> Agregar
  • Seleccione Aceptar en el mensaje
  • Tus archivos deberían agregar. Seleccione Aceptar en Agregar terminado. diálogo
  • Haga clic con el botón derecho en un área vacía de la carpeta y seleccione Actualizar. Verás iconos "+" en las carpetas / archivos, ahora
  • Haga clic con el botón derecho en un área vacía en la carpeta una vez más y seleccione SVN Commit
  • Agregue un mensaje sobre lo que está cometiendo y haga clic en Aceptar
vapcguy
fuente
1

Si la intención es agregar la copia local / de trabajo a SVN, solía hacerlo de la siguiente manera.

Nota: Utilizo el cliente TortoiseSVN y estos pasos asumen que ya tiene instalado el cliente TortoiseSVN.

  1. Tengo un proyecto (Test-4.2.2) en mi local. Quiero cargarlo / agregarlo a un repositorio SVN.
  2. Usando el navegador de repositorios de TortoiseSVN, creé un directorio vacío, "Test-4.2.2"
  3. En mi local, cambié el nombre del directorio "Test-4.2.2" existente a "Test-4.2.2.1" (temporal)
  4. Consulte el "Test-4.2.2" vacío de SVN en su local
  5. Copie todos los subdirectorios en 4.2.2.1 a este directorio de pago 4.2.2
  6. Ahora, haga clic derecho en "Test-4.2.2" y confirme.
  7. Eliminar la carpeta temporal, "Test-4.2.2.1"
Purushothaman
fuente
1

En Windows 7 hice esto:

  1. ¿Ha instalado SVN y Tortoise SVN? Si no, búscalos en Google y hazlo ahora.
  2. Vaya a su carpeta SVN donde puede tener otros repositorios (abreviatura de repositorio) (o si está creando uno desde cero, elija una ubicación de unidad C, unidad D, etc. o ruta de red).
  3. Cree una nueva carpeta para almacenar su nuevo repositorio. Llámalo con el mismo nombre que el título de tu proyecto.
  4. Haga clic con el botón derecho en la carpeta y elija Tortoise SVN -> Crear repositorio aquí
  5. Di sí para crear una estructura de carpetas
  6. Haga clic en Aceptar. Debería ver un nuevo ícono que parece una "ola" junto a su nueva carpeta / repositorio
  7. Haga clic derecho en el nuevo repositorio y elija SVN Repo Browser
  8. Haga clic derecho en 'tronco'
  9. Elija AGREGAR carpeta ... y señale la estructura de carpetas de su proyecto en desarrollo.
  10. Haga clic en Aceptar y SVN AGREGARÁ la estructura de su carpeta. ¡Tenga paciencia! Parece que SVN se ha bloqueado / congelado. No se preocupe. Está haciendo su trabajo.

¡Hecho!

Fandango68
fuente
0

3 pasos:

  • Abra el "Navegador de repositorios" (utilice el enlace de la carpeta principal de su año).
  • Haga clic derecho en Elegir "Agregar carpeta".
  • Busque su carpeta.

ingrese la descripción de la imagen aquí

Arindam Roychowdhury
fuente
No puede agregar una carpeta que no existe, de esta manera. "Agregar carpeta" le dará una ventana del Explorador para que pueda apuntar a una carpeta existente, luego le dará una ventana de confirmación para que pueda agregarla a Subversion. No es para crear una nueva carpeta en el lado local; eso aún debería hacerse manualmente y completarse allí, luego esto podría usarse para enviar su contenido a Subversion. Esto solo da la mitad de la historia.
vapcguy
0

Probemos ... Me está funcionando ...

svn add * --force
Parthiban Soundram
fuente