Copier des fichiers dans Git

La commande snow git copy copie les fichiers d’un état donné du référentiel (branche spécifique, balise ou validation) dans une autre zone de préparation ou dans le système de fichiers local.

snow git copy <REPO_PATH> <DEST_PATH> [--parallel INT]
Copy

où :

  • <REPO_PATH> est un chemin de zone de préparation avec un scope spécifique où la valeur est le nom du référentiel suivi d’un suffixe spécifiant la branche, la balise ou la validation à copier. Voici différents types de valeurs :

    • @snowcli_git/branches/main/ fait référence à la dernière validation de la branche « principale »

    • @snowcli_git/tags/v2.1.0/ fait référence à une validation libellée v2.1.0.

    • @snowcli_git/commits/1e939d69ca6fd0f89074e7e97c9fd1/ fait référence à une validation spécifique. Les hachages de validation comprennent entre 6 et 40 caractères.

    Un chemin de référentiel peut également être un sous-répertoire ou un fichier du référentiel, mais il doit toujours être précédé d’un préfixe de scope.

  • <DEST_PATH> est un chemin vers un répertoire local ou vers un répertoire distant sur la zone de préparation de Snowflake.

  • --parallel spécifie le nombre de threads à utiliser lors du téléchargement de fichiers.

Lorsque <DEST_PATH> spécifie une zone de préparation, la commande fonctionne différemment en fonction du format de son suffixe, comme suit :

  • Si la source se termine par un /, tel que @my_snow_git/branches/main/tests/plugin/, la commande copie le contenu du répertoire plugin dans la destination.

  • Si la source ne se termine pas par /, comme @my_snow_git/branches/main/tests/plugin, la commande copie l’intégralité du répertoire plugin.

Exemple : copier des fichiers d’une validation vers un répertoire dans une zone de préparation

Cet exemple crée un répertoire snowcli2.0/ sur la zone de préparation @public et copie dans ce répertoire tous les fichiers de la validation marqués par la balise v2.0.0 :

snow git copy @my_snow_git/tags/v2.0.0/ @public/snowcli2.0/
Copy

Exemple : copier des fichiers de l’intérieur d’un répertoire vers un répertoire dans une zone de préparation

L’exemple suivant crée un répertoire plugin_tests sur la zone de préparation test_stage et y copie le contenu du répertoire tests/plugin/.

snow git copy @my_snow_git/branches/main/tests/plugin/ @test_stage/plugin_tests/
Copy

Exemple : copier un répertoire entier dans un répertoire d’une zone de préparation

Cet exemple crée un répertoire plugin_tests sur la zone de préparation test_stage et y copie l’intégralité du répertoire tests/plugin. Comme tests/plugin ne se termine pas par un /, la commande copie tous les fichiers dans @test_stage/plugin_tests/plugin.

snow git copy @snowcli_git/branches/main/tests/plugin @test_stage/plugin_tests
Copy

Exemple : copier des fichiers d’un répertoire dans une zone de préparation vers le système de fichiers local

L’exemple suivant crée un répertoire plugin_tests dans le système de fichiers local et y télécharge le contenu du répertoire tests/plugin.

snow git copy @snowcli_git/branches/main/tests/plugin plugin_tests/
Copy