Publicado el :

Prueba de adición de archivos Git (mp_gitadd)

Este código también está disponible en: Deutsch English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
El script inicializa un directorio de trabajo, clona el repositorio `https://github.com/sasjs/core` en él. Luego, realiza una serie de operaciones en los archivos: creación de un nuevo archivo (`somefile.txt`), modificación del contenido de un archivo existente (`readme.md`), y eliminación de otro (`package.json`). Después de estas modificaciones, utiliza la macro `mp_gitstatus` para verificar que tres archivos están 'unstaged'. Luego, utiliza la macro `mp_gitadd` para staged esos cambios, y finalmente, verifica nuevamente el estado de Git para asegurarse de que los tres archivos están ahora 'staged', utilizando aserciones (`mp_assert`) para validar cada paso del proceso.
Análisis de datos

Type : MIXTE


El script interactúa con una fuente externa clonando el repositorio Git `https://github.com/sasjs/core`. También crea conjuntos de datos internos temporales (`work.gitstatus`, `work.gitstatus2`) para almacenar los resultados de los comandos Git y `work.test_results` para las aserciones de las pruebas unitarias.

1 Bloque de código
MACRO CALL / SYSCALL
Explicación :
Este bloque inicializa la macrovariable `dir` con la ruta de un subdirectorio 'core' creado en el directorio de trabajo de SAS. Luego, utiliza la función `GITFN_CLONE` para clonar el repositorio Git `https://github.com/sasjs/core` en este directorio especificado por `&dir`. Esta operación es una interacción directa con el sistema de archivos y un servicio externo de Git.
¡Copiado!
1%let dir = %sysfunc(pathname(work))/core;
2%put
3SOURCE clone rc=%sysfunc(GITFN_CLONE(https://github.com/sasjs/core,&dir));
4 
2 Bloque de código
MACRO CALL Data
Explicación :
Estas llamadas a macro SASJS simulan modificaciones en el repositorio clonado: `mf_writefile` se utiliza para crear un nuevo archivo (`somefile.txt`) con contenido y para modificar el contenido de un archivo existente (`readme.md`). La macro `mf_deletefile` elimina un archivo existente (`package.json`). Estas acciones son manipulaciones directas del sistema de archivos para preparar los cambios a probar con los comandos de Git.
¡Copiado!
1%mf_writefile(&dir/somefile.txt,l1=some content)
2%mf_writefile(&dir/readme.md,l1=new readme)
3%mf_deletefile(&dir/package.json)
3 Bloque de código
MACRO CALL / PROC SQL Data
¡Copiado!
1%mp_gitstatus(&dir,outds=work.gitstatus)
2 
3%let test1=0;
4PROC SQL noprint;
5select count(*) into: test1 from work.gitstatus where staged='FALSE';
6 
7%mp_assert(
8 iftrue=(&test1=3),
9 desc=3 changes are ready to add,
10 outds=work.test_results
11)
4 Bloque de código
MACRO CALL
¡Copiado!
1%mp_gitadd(&dir,inds=work.gitstatus,mdebug=&sasjs_mdebug)
5 Bloque de código
MACRO CALL / PROC SQL Data
¡Copiado!
1%mp_gitstatus(&dir,outds=work.gitstatus2)
2%let test2=0;
3PROC SQL noprint;
4select count(*) into: test2 from work.gitstatus2 where staged='TRUE';
5 
6%mp_assert(
7 iftrue=(&test2=3),
8 desc=3 changes were added,
9 outds=work.test_results
10)
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.