tortoise repositorio rama estructura desvincular crear carpeta svn sharpsvn pre-commit-hook

repositorio - Cómo acceder a la información del archivo en un enganche previo a la confirmación mediante SharpSVN



estructura svn (1)

Puedes hacer esto usando el SvnLookClient .

Para usar esto, antes que nada necesitas un SvnLookOrigin . SharpSvn contiene análisis estándar de argumentos que ''sabe'' qué argumentos se pasan a cada tipo de enlace. Esto le da acceso a este SvnLookOrigin :

SvnHookArguments ha; if (!SvnHookArguments.ParseHookArguments(args, SvnHookType.PreCommit, false, out ha)) { Console.Error.WriteLine("Invalid arguments"); Environment.Exit(1); }

Obtener los archivos modificados y el contenido de esos archivos en función de los argumentos analizados

using (SvnLookClient cl = new SvnLookClient()) { Collection<SvnChangedEventArgs> changedItems; cl.GetChanged(ha.LookOrigin, out changedItems); foreach(var item in changedItems) { if(!IsXmlFile(item)) continue; using(MemoryStream ms = new MemoryStream()) { cl.Write(ha.LookOrigin, item.Path, stream); VerifyXMLStream(stream); } } }

Editar : escribe en Console.Error y Environment.Exit(1) para informar errores (salir no nulo).

Soy nuevo en SharpSVN y SVN en general. Estoy tratando de implementar un gancho de precompromiso que cuando el usuario confía en un cierto tipo de archivo XML; Voy a tener que interceptar el archivo y analizarlo para asegurarme de que incluyan ciertos elementos antes de permitir el compromiso del archivo.

Dado que parece que SVN presenta dos argumentos; la ruta del repositorio y la transacción; Tendré que usar estos dos elementos para interceptar el archivo. ¿Alguien sabe lo que necesito usar en SharpSVN para obtener información de archivos basada en estos dos parámetros?

Gracias, pulga #