¿Hay alguna manera de realizar un checkout de SVN (o exportar), que obtendría solo la estructura de directorios; es decir, ¿no hay archivos?SVN: Pagar/exportar solo la estructura de directorios
Respuesta
No puedo ver que hay una manera de hacerlo desde una breve mirada al svn help co
. Algo que he hecho antes de actualizar un repositorio de una nueva versión de una biblioteca descargado (es decir, una rama de proveedor) es eliminar todo lo que no es una carpeta .svn:
#!/bin/sh
find ./ -type f | grep -v .svn | xargs rm -f
No es particularmente eficaz si estábamos tratando de evitar tener que verificar esos archivos en primer lugar, pero debería tener el mismo resultado.
SVN no puede hacer eso per se, pero si solo desea exportar la estructura de directorios, intente obtener svn ls -R --xml
para obtener una lista XML de la estructura de directorios y luego vuelva a crearla a mano.
No hay forma de hacer esto, y de hecho es algo un poco extraño querer hacer, ¡así que ahora tengo curiosidad!
esto puede no ser relevante, pero se puede prevenir los archivos que se comitted en primer lugar mediante la adición de un svn: ignore property en los directorios correspondientes. Esto es particularmente útil para evitar artefactos generados, como documentación o archivos de caché.
Quiero replicar la estructura del directorio del repositorio en mi disco local y luego procesar más con otras herramientas (NAnt/MSBuild). svn: ignorar no es relevante. –
Hay un python script in the contrib tools of subversion, que crea la estructura del directorio con archivos vacíos. Con un poco de conocimiento de Python, no debería ser difícil omitir la creación de archivos en absoluto.
svn ls -R {svnrepo} | grep "/$" | xargs -n 1 mkdir -p
Exportar, no pago.
[Actualizado]
Con la caja:
env REPO={repo} sh -c 'svn ls -R $REPO | grep "/\$" | xargs -n 1 svn co --depth=empty $REPO'
Ésta será bastante lento para nada demasiado grande.
¿Es posible hacer esto con un pago de SVN real? Quiero tener una copia de todos los directorios que están bajo el control de la versión (es decir: tengo una subcarpeta .svn en cada directorio, como si fuera a realizar "svn co --non-recursive" en cada carpeta). – DevNull
Use esto en su lugar si tiene espacios en los nombres de las carpetas: svn ls -R {svnrepo} | grep "/ $" | xargs -I {} mkdir -p "{}" – architectonic
funcionó bien para que yo pudiera comenzar con una copia de trabajo vacía: https://resbook.wordpress.com/2011/01/06/check-out-directory-in -svn-without-checking-out-the-content-of-directory/ –
Puede especificar - no recursivo al comando de finalización de la compra, puede ayudarlo a obtener lo que desea.
No veo cómo esto podría ayudar. '--non-recursive', hace lo que dice: no se repite en el árbol. Así que esto solo le daría objetos de nivel superior, que no es lo que quiere el OP, a menos que tenga una estructura de directorio plana (un arbusto en lugar de un árbol). – SQB
Un uso para verificar solo la estructura del directorio es una solución parcial para no poder excluir la extracción de uno o más directorios. Se supone que el costo de simplemente consultar el árbol de directorios es insignificante en comparación con la verificación de la fuente completa. Con una estructura de directorios versionada desprotegida, podría usar la actualización de Subversion y sparse directories para seleccionar selectivamente qué árbol de directorios debería tener archivos.
en windows y con TortoiseSVN que puedes hacer Pago -> profundidad de la caja: solo este artículo. de esta manera puede obtener carpetas/archivos individuales. podrías reconstruir tu estructura de esta manera (usando el repobrowser). un poco engorroso, pero factible si la estructura de su directorio no es demasiado complicada. preferí esto en lugar de revisar miles de pequeños archivos (varios gigabytes) en una red lenta ...
O en la misma pantalla, puede dejar 'Profundidad de comprobación 'como' Completamente recursivo' y en el botón de la derecha debajo del cuadro combinado, llamado 'Elegir elementos', puede desmarcar los archivos que no desea capturar. – Canella
Puede usar este script que listará los repos y creará la estructura en un directorio.
uso:perl checkout-structure.pl repos destdir
cesiones temporales no deben ser la raíz de los acuerdos de recompra, sino que también puede precisa un directorio.
No se pueden crear directorios que contengan caracteres acentuados (àéîùç ...), pero funciona bien con espacios. Para aquellos que tienen tiempo para eso, creo que es un problema de codificación.
checkout-structure.pl: forma
#!perl
my @dirs;
my $repos = shift;
my $dest = shift;
@dirs = grep { /\/$/ && /^[^\.]/ } `svn list -R $repos`;
foreach(@dirs) {
s/\/$//;
chomp;
mkdir("$dest/$_") or warn $!." trying to create $dest/$_";
}
Mi DotNet (LINQ) para hacer esto:
primer lugar, ejecute el comando svn list. Y empuje la salida a un archivo .xml.
"svn.exe" list "https://myserver.com:8443/svn/DotNet/src/v40Base/v40/" --recursive --username %USERNAME% --xml >>myfile.xml
Y a continuación, ejecute algunos código LINQ contra el archivo .xml.
private static void FindSVNDirectories()
{
string fileName = @"C:\temp\myfile.xml";
XDocument xDoc = XDocument.Load(fileName);
//XNamespace ns = XNamespace.Get("http://schemas.microsoft.com/developer/msbuild/2003");
string ns = string.Empty;
//List of directories
var list1 = from list in xDoc.Descendants(ns + "list")
from item in list.Elements(ns + "entry")
where item.Attribute("kind").Value=="dir"
select new
{
mykind = item.Attribute("kind").Value,
myname = (item.Element(ns + "name").Value)
};
StringBuilder sb = new StringBuilder();
foreach (var v in list1)
{
sb.Append(v.ToString() + System.Environment.NewLine);
}
Console.WriteLine(sb.ToString());
}
Esto funciona perfectamente
svn ls | xargs svn up -N
Y entonces, si usted quiere conseguir algunos de esos directorios totalmente desprotegido, ir dentro de ellos y utilizar
svn ls | xargs svn up
sólo quería añadir, si necesita hacer esto desde el servidor (es decir, no revisar primero el repositorio), el equivalente a svn ls
es svnlook tree --full-paths
. Tuve que crear una copia de la estructura de carpetas de un repositorio de 50 GB y utilizar las sugerencias que encontré aquí para hacerlo sin tener que crear una copia de trabajo de todo el conjunto.
Mi código era:
svnlook tree /path/to/repo --full-paths | grep "/$" | grep -v "^/$" | xargs -I {} mkdir -p "{}"
El grep -v "^/$"
porque la salida contenía un único (es decir, carpeta raíz del sistema de archivos)/y yo no quería perder el tiempo con eso.
- 1. Agregar estructura de directorios a SVN Repo
- 2. SVN -Cambiar estructura de directorios en un repositorio existente
- 3. Maven estructura de directorios
- 4. Estructura de datos utilizada para la estructura de directorios?
- 5. java.util.zip - Recreando la estructura de directorios
- 6. Tar solo la estructura de Directorio
- 7. Fusionar la estructura de directorios no versionada en el repositorio SVN
- 8. maven artifact repository estructura de directorios especificaciones
- 9. Estructura de directorios de trabajo para el repositorio SVN Visual Studio
- 10. Estructura de directorios para una biblioteca C++
- 11. crear cremallera - ignorar estructura de directorios
- 12. proyecto Java convención estructura de directorios
- 13. SVN: Ignorar algunos directorios de manera recursiva
- 14. Extracción Svn archivos de todos los directorios
- 15. ¿Es posible cambiar la estructura de directorios de Yeoman?
- 16. ¿Cómo puedo personalizar la estructura de directorios de Jasmine?
- 17. git-filter-branch: salir de la estructura de directorios
- 18. Filtro de subdirectorios Git con la estructura de directorios existente
- 19. SVN - ¿Cómo cargar un solo archivo?
- 20. cómo consolidar múltiples directorios ocultos Svn de subversión 1.7+
- 21. Directorios "Phantom" en un repositorio SVN
- 22. ¿Cómo guardo la estructura de directorios al compilar CoffeeScript?
- 23. Cómo excluir directorios .svn de la búsqueda en Eclipse?
- 24. ¿Cómo puedo evitar el pago de determinados directorios en SVN?
- 25. ¿Puedo anular svn: ignorar para directorios individuales?
- 26. ¿Cómo importo las ramas svn enraizadas en diferentes directorios en git usando git-svn?
- 27. copiar la estructura de la carpeta sin las carpetas .svn
- 28. Estructura de directorios para proyecto de fajo de plataforma multiplataforma
- 29. ¿Cuál es la mejor estructura para un proyecto Android SVN?
- 30. Cómo prevenir git rebase svn para crear directorios vacíos
Simplemente curioso, ¿por qué querrías hacer esto? – Tim
@Tim: parece una buena forma de configurar la estructura de directorios para un nuevo proyecto, basado en un proyecto existente. – onnodb
@onnodb: Sí, pero es por eso que debe tener plantillas listas para sus nuevos proyectos, solo exporte una plantilla y ya está listo. – mbillard