"No es posible extraer un solo archivo. El mejor nivel de pago que puedes hacer es en el nivel de directorio".
¿Cómo puedo solucionar este problema cuando uso Subversion?
Tenemos esta carpeta en Subversion donde guardamos todas nuestras imágenes. Solo quiero ver un archivo (imagen) de eso. Esta carpeta es realmente grande y tiene muchas otras cosas que no necesito ahora.
svn
version-control
bluegene
fuente
fuente
svn up
en su directorio local en su computadora.Respuestas:
La respuesta simple es que usted
svn export
el archivo en lugar de verificarlo.Pero eso podría no ser lo que quieres. Es posible que desee trabajar en el archivo y volver a ingresarlo, sin tener que descargar GB de basura que no necesita.
Si tiene Subversion 1.5+, haga un pago escaso:
Para una versión anterior de SVN, puede beneficiarse de lo siguiente:
Una alternativa (por ejemplo, si el directorio tiene demasiada basura desde la revisión en la que se creó) es hacer una copia de URL-> URL del archivo que desea en un nuevo lugar en el repositorio (efectivamente, esta es una rama de trabajo del archivo). Echa un vistazo a ese directorio y haz tus modificaciones.
No estoy seguro de si puede fusionar su copia modificada por completo en el repositorio sin una copia de trabajo del destino; nunca lo he necesitado. Si es así, haz eso.
Si no es así, desafortunadamente puede que tenga que encontrar a otra persona que tenga todo el directorio desprotegido y hacer que lo hagan. O tal vez para cuando haya hecho sus modificaciones, el resto habrá terminado de descargar ...
fuente
svn export
que usar la interfaz web, si sé qué archivo quiero. El interrogador ya usa SVN, así que supongo que depende de qué cliente y si ese cliente lo hace fácil de usarsvn export
. Sinsvn ls
embargo, encuentro la interfaz web mejor para navegar que :-)Intenta en
svn export
lugar desvn checkout
. Eso funciona para archivos individuales.La razón de la limitación es que
checkout
crea una copia de trabajo, que contiene metainformación sobre repositorio, revisión, atributos, etc. Esos metadatos se almacenan en subdirectorios llamados '.svn'. Y los archivos individuales no tienen subdirectorios.fuente
svn
no harán exportaciones de archivos individuales.svn cat $url_to_file_in_repo > $local_file_name
.Use
svn cat
osvn export
.Para eso, no necesita buscar el directorio de trabajo, pero no podrá confirmar los cambios que realice. Si necesita hacer cambios y confirmarlos, necesita un directorio de trabajo, pero no tiene que buscarlo por completo. Verifique la revisión donde el directorio todavía estaba / casi vacío, y luego use 'svn cat' para extraer el archivo de HEAD.
fuente
svn cat svn://.../my_file.txt
era exactamente lo que estaba buscando. Trabajo en unsvn://
único (nohttp://
) repositorio, y parece que las interfaces websvn más nuevas no proporcionan una descarga de archivos sin formato (o tenemos una configuración incorrecta o estoy ciego). Es más fácil hacerlo de esta manera quecheckout
+up
solo para descargar un archivo.Fuente
fuente
curl
owget
.A continuación, se presenta una solución equivalente a TortoiseSVN de la respuesta aceptada (lo había escrito en un documento interno para mi empresa, ya que estamos adoptando SVN recientemente). Pensé que sería útil compartir aquí también:
Extracción de un solo archivo: Subversion no admite la extracción de un solo archivo, solo admite la extracción de estructuras de directorios. (Referencia: http://subversion.tigris.org/faq.html#single-file-checkout ). Esto se debe a que con cada directorio que se extrae como una copia de trabajo, los metadatos relacionados con modificaciones / revisiones de archivos se almacenan como una carpeta interna oculta (.svn / _svn). Actualmente, esto no es compatible (v1.6) para archivos individuales.
Estrategia alternativa recomendada: deberá realizar la parte del directorio de pago solo una vez, luego podrá ir directamente a sus archivos individuales. Haga un pago escaso de la carpeta principal y la estructura del directorio. Básicamente, un proceso de pago escaso es verificar solo la estructura de carpetas sin llenar los archivos de contenido. Por lo tanto, solo revisa las estructuras de directorio y no necesita revisar TODOS los archivos como era la preocupación. Referencia: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-checkout.html
Paso 1 : proceder al navegador del repositorio
Paso 2 : haga clic derecho en la carpeta principal dentro del repositorio que contiene todos los archivos en los que desea trabajar y seleccione Finalizar compra.
Paso 3 : dentro de una nueva ventana emergente, asegúrese de que el directorio de pago apunte a la ubicación correcta en su PC local. También habrá un menú desplegable con la etiqueta "profundidad de pago". Elija "Solo este elemento" o "Niños inmediatos, incluidas las carpetas", según sus requisitos. Se recomienda la segunda opción ya que, si desea trabajar en una carpeta anidada, puede continuar directamente la próxima vez, de lo contrario deberá seguir todo este procedimiento nuevamente para la carpeta anidada.
Paso 4 : las carpetas principales ahora deberían estar disponibles dentro de la carpeta elegida localmente y ahora se está monitoreando con SVN (una carpeta oculta ".svn" o "_svn" ahora debería estar presente). Dentro del repositorio ahora, haga clic con el botón derecho en el archivo único que desea extraer solo y seleccione la opción "Actualizar elemento a revisión". El archivo único ahora se puede trabajar y volver a registrar en el repositorio.
Espero que esto ayude.
fuente
Puedes hacerlo en dos pasos:
Verifique un repositorio SVN vacío solo con metainformación:
Ejecutar
svn up
para actualizar el archivo especificado:fuente
Una actualización en caso de que lo que realmente necesita pueda cubrirse al incluir el archivo en el pago de otra carpeta.
Desde SVN 1.6 puede crear archivos externos , una especie de enlaces svn. Significa que puede tener otra carpeta versionada que incluya un solo archivo. También es posible realizar cambios en el archivo en el pago de esta carpeta.
Es muy simple, verifique la carpeta en la que desea incluir el archivo y simplemente agregue una propiedad a la carpeta
con contenido como este:
Después de confirmar esto, el archivo aparecerá en futuros pagos de la carpeta. Básicamente funciona, pero hay algunas limitaciones como se describe en la documentación vinculada anteriormente.
fuente
Vaya al navegador de repositorios, haga clic con el botón derecho en el archivo y use 'Guardar como', aunque estoy usando TortoiseSVN.
fuente
(Editar nombredearchivo.log)
fuente
La respuesta de Steve Jessop no funcionó para mí. Leí los archivos de ayuda para SVN y si solo tienes una imagen, probablemente no quieras volver a ingresarla a menos que estés haciendo Photoshop, así que exporta es un comando mejor que pagar ya que no está versionado (pero eso es menor).
Y --depth ARG no debe estar vacío, sino archivos para obtener los archivos en el directorio inmediato. Entonces obtendrá todos los campos, no solo el uno, pero vacío no devuelve nada del repositorio.
o
En cuanto a las otras respuestas, cat le permite leer el contenido que es bueno solo para texto, no imágenes de todas las cosas.
fuente
--depth empty
era que los otros archivos no deberían ser desprotegidos, y luego puede obtener un solo archivo consvn up <source/file>
. Consvn export
, no hay necesidad de hacer esto, solo especifique el archivo.Simplemente lo examinaría y exportaría el archivo único. Si tiene acceso HTTP, simplemente use el navegador web para encontrar el archivo y agarrarlo.
Si necesita recuperarlo después de editarlo, eso podría ser un poco más tedioso, pero estoy seguro de que podría haber una
svn import
función ...fuente
Haz algo como esto:
Básicamente, la idea es crear el directorio donde desea obtener el archivo de SVN. Use el
svn cat
comando y redirija la salida al mismo archivo con nombre. Por defecto, el gato volcará la información en stdio.fuente
Si solo desea un archivo sin información de revisión, use
fuente
Con Subversion 1.5, es posible extraer (todos) los archivos de un directorio sin verificar ningún subdirectorio (los diversos indicadores --depth). No es exactamente lo que pediste, sino una forma de "menos que todo".
fuente
Usando la técnica de verificación escasa, PUEDES revisar un archivo en particular que ya está desprotegido o existe ... con un simple truco:
Después de pagar el nivel superior de su repositorio utilizando la opción 'solo este elemento', en el explorador de Windows, primero DEBE hacer clic derecho en el archivo que necesita actualizar; elija Repo Browser en el menú contextual; encuentre ese archivo OTRA VEZ en el navegador del repositorio y haga clic con el botón derecho. Ahora debería ver el "elemento de actualización a revisión" en el menú contextual.
No estoy seguro de si es una característica no documentada o simplemente un error. Me tomó muchas horas después del trabajo encontrar finalmente este truco. Estoy usando TortoiseSVN 1.6.2.
fuente
Quería retirar un solo archivo a un directorio, que no era parte de una copia de trabajo.
Consigamos el archivo en la siguiente URL: http: //subversion.repository.server/repository/module/directory/myfile
Así que verifiqué el directorio dado que contiene el archivo de destino que quería acceder a un directorio ficticio (por ejemplo, etc. para la URL que termina con
/etc
).Luego vacié el archivo .svn / Entradas de todos los archivos del directorio de destino que no necesitaba, para dejar solo el archivo que quería. En este .svn / entradas archivo , tiene un registro para cada archivo con sus atributos, así que deje solo el registro relativo al archivo que desea obtener y guardar.
Ahora solo necesita copiar y luego '' .svn '' en el directorio que será una nueva "copia de trabajo". Entonces solo necesitas:
Ahora el directorio del directorio está bajo control de versiones. No olvide eliminar el directorio directoriob que era solo una "copia de trabajo temporal".
fuente
Como ninguna de las otras respuestas funcionó para mí, lo hice usando este truco:
Esto creará una nueva carpeta local que solo tiene los archivos de la ruta remota. Luego puede hacer un enlace simbólico a los archivos que desea tener aquí.
fuente
svn co
de un archivo para evitar un directorio completo lleno de archivos de imagen. Además, agregar un enlace simbólico solo puede aumentar la complejidad, moverse de un directorio temporal podría funcionar, pero aún así debe revisar todo el directorio de imágenes para una sola imagen. @ steve-jessop tuvo la idea correctaEste problema está cubierto por:
http://subversion.tigris.org/issues/show_bug.cgi?id=823
Hay un script adjunto que le permite verificar un solo archivo desde svn, realizar cambios y confirmar los cambios en el repositorio, pero no puede ejecutar "svn up" para verificar el resto del directorio. Ha sido probado con svn-1.3, 1.4 y 1.6.
fuente
Si solo desea exportar el archivo, y no necesitará actualizarlo más tarde, puede hacerlo sin tener que usar comandos SVN.
Usando TortoiseSVN Repository Browser , seleccione el archivo, haga clic derecho y luego seleccione " Copiar URL al portapapeles ". Pegue esa URL en su navegador y, después de iniciar sesión, se le pedirá que descargue el archivo.
De esta manera, también puede seleccionar la revisión deseada y descargar una versión anterior del archivo.
Tenga en cuenta que esto es válido si su servidor SVN tiene una interfaz web.
fuente