Git 🌙
Français â–Ÿ Topics â–Ÿ Latest version â–Ÿ git-repack last updated in 2.43.0

NOM

git-repack - EmpaquÚte les objets non empaquetés dans le dépÎt

SYNOPSIS

git repack [-a] [-A] [-d] [-f] [-F] [-l] [-n] [-q] [-b] [-m] [--window=<n>] [--depth=<n>] [--threads=<n>] [--keep-pack=<nom-de-pack>] [--write-midx]

DESCRIPTION

Cette commande est utilisĂ©e pour combiner tous les objets qui ne rĂ©sident pas actuellement dans un "pack", dans un pack. Elle peut Ă©galement ĂȘtre utilisĂ©e pour rĂ©organiser les packs existants en un seul pack plus efficace.

Un paquet est une collection d’objets, compressĂ©s individuellement, avec une compression de delta appliquĂ©e, stockĂ©s dans un seul fichier avec un fichier d’index associĂ©.

Les paquets sont utilisés pour réduire la charge sur les systÚmes de miroir, les moteurs de sauvegarde, le stockage de disque, etc.

OPTIONS

-a

Au lieu empaqueter progressivement les objets non empaquetĂ©s, empaqueter tout ce qui est rĂ©fĂ©rencĂ© dans un seul paquet. ParticuliĂšrement utile lors de l’empaquetage d’un dĂ©pĂŽt utilisĂ© pour un dĂ©veloppement privĂ©. À utilliser avec -d. Cela nettoie les objets que git prune a laissĂ©, mais que git fsck --full --dangling montre comme en suspens.

Notez que les utilisateurs qui rĂ©cupĂšrent via des protocoles idiots devront rĂ©cupĂ©rer le nouveau pack complet pour obtenir tout objet contenu, peu importe le nombre d’autres objets dans ce pack qu’ils ont dĂ©jĂ  localement.

Les fichiers de paquet prometteurs sont rĂ©emballĂ©s sĂ©parĂ©ment : s’il y a des fichiers paquets qui ont un fichier associĂ© ".promisor", ces paquets seront rĂ©emballĂ©s dans un autre paquet sĂ©parĂ©, et un fichier ".promisor" vide correspondant au nouveau paquet sĂ©parĂ© sera Ă©crit.

-A

MĂȘme que -a, sauf si -d est utilisĂ©. Ensuite, tous les objets inaccessibles dans un paquet prĂ©cĂ©dent deviennent des objets libres, non empaquetĂ©s, au lieu d’ĂȘtre laissĂ©s dans l’ancien paquet. Les objets inaccessibles ne sont jamais intentionnellement ajoutĂ©s Ă  un paquet, mĂȘme en rempaquetant. Cette option empĂȘche les objets inaccessibles d’ĂȘtre immĂ©diatement supprimĂ©s parce qu’ils sont laissĂ©s dans l’ancien paquet et ensuite enlevĂ©s. Au lieu de cela, les objets non joignables libres seront Ă©laguĂ©s selon les rĂšgles d’expiration normales avec la prochaine invocation de git gc. Voir git-gc[1].

-d

AprĂšs l’empaquetage, si les paquets nouvellement crĂ©Ă©s rendent quelques paquets existants redondants, retirer les paquets redondants. Lancer Ă©galement git prune-packed pour supprimer les fichiers d’objets libres redondants.

--cruft

Identique Ă  -a, sauf si -d est utilisĂ©. Ensuite, tous les objets inaccessibles sont empaquetĂ©s dans un paquet dĂ©chet sĂ©parĂ©. Les objets inaccessibles peuvent ĂȘtre Ă©laguĂ©s selon les rĂšgles d’expiration normales avec l’invocation suivante de git gc (voir git-gc[1]). Incompatible avec -k.

--cruft-expiration=<approxi-date>

Expirer les objets inaccessibles plus ĂągĂ©s que <date-approx> immĂ©diatement au lieu d’attendre la prochaine invocation git gc. Seulement utile avec --cruft -d.

--max-cruft-size=<n>

Rempaqueter les objets en paquets d’au plus <n> octets avant de crĂ©er de nouveaux paquets. Tant qu’il y a assez de paquets dĂ©chets plus petits que <n>, le rempaquetage crĂ©era un nouveau paquet dĂ©chet contenant les objets de tous les paquets dĂ©chets combinĂ©s, en plus de tous les nouveaux objets inaccessibles. Les paquets dĂ©chets plus grands que <n> ne seront pas modifiĂ©s. Lorsqu’un nouveau paquet dĂ©chet est plus grand que les <n>_octets, il est divisĂ© en plusieurs paquets, qui sont tous garantis d’avoir une taille d’au plus _<n> octets. Seulement utile avec --cruft -d.

--expire-to=<rép.>

Écrire un paquet dĂ©chet contenant des objets Ă©laguĂ©s (le cas Ă©chĂ©ant) dans le rĂ©pertoire <rĂ©p>. Cette option est utile pour conserver une copie de tous les objets Ă©laguĂ©s dans un rĂ©pertoire sĂ©parĂ© comme sauvegarde. Seulement utile avec --cruft -d.

-l

Passer l’option --local Ă  git pack-objects. Voir git-pack-objects[1].

-f

Passer l’option --no-reuse-delta Ă  git-pack-objects. Voir git-pack-objects[1].

-F

Passer l’option --no-reuse-object Ă  git-pack-objects. Voir git-pack-objects[1].

-q
--quiet

N’afficher aucune progression sur le flux d’erreur standard et passer l’option -q Ă  git pack-objects. Voir git-pack-objects[1].

-n

Ne pas mettre à jour les informations du serveur avec git update-server-info. Cette option ignore la mise à jour des fichiers de catalogue locaux nécessaires pour publier ce dépÎt (ou une copie directe de celui-ci) sur HTTP ou FTP. Voir git-update-server-info[1].

--window=<n>
--depth=<n>

Ces deux options affectent la façon dont les objets contenus dans le paquet sont stockĂ©s Ă  l’aide de la compression delta. Les objets sont d’abord triĂ©s en interne par type, taille et optionnellement par noms et comparĂ©s aux autres objets dans --window pour voir si l’utilisation de compression de delta permet d’Ă©conomiser de l’espace. --depth limite la profondeur maximale du delta ; la rendre trop profonde affecte la performance du cĂŽtĂ© du dĂ©paqueteur, parce que les donnĂ©es de delta doivent ĂȘtre appliquĂ©es autant de fois pour arriver Ă  l’objet nĂ©cessaire.

La valeur par défaut pour --window est 10 et --depth est 50. La profondeur maximale est de 4095.

--threads=<n>

Cette option est passée à git pack-objects.

--window-memory=<n>

Cette option fournit une limite supplĂ©mentaire par dessus --window ; la taille de la fenĂȘtre s’Ă©tendra dynamiquement vers le bas afin de ne pas prendre plus que <n> octets en mĂ©moire. Ceci est utile dans les dĂ©pĂŽts avec un mĂ©lange de grands et petits objets afin de ne pas manquer de mĂ©moire avec une grande fenĂȘtre, mais encore ĂȘtre en mesure de profiter de la grande fenĂȘtre pour les petits objets. La taille peut ĂȘtre suffixĂ©e par "k", "m", ou "g". --window-memory=0 rend l’utilisation de la mĂ©moire illimitĂ©e. La valeur par dĂ©faut est tirĂ©e de la variable de configuration pack.windowMemory. Notez que l’utilisation rĂ©elle de la mĂ©moire sera la limite multipliĂ©e par le nombre de threads utilisĂ©s par git-pack-objects[1].

--max-pack-size=<n>

La taille maximum de chaque fichier paquet. La taille peut ĂȘtre suffixĂ©e avec "k", "m", ou "g". La taille minimale autorisĂ©e est limitĂ©e Ă  1 MiB. Si spĂ©cifiĂ©e, plusieurs fichiers paquets seront crĂ©Ă©s, ce qui empĂȘche la crĂ©ation d’un index de bitmap. La valeur par dĂ©faut est illimitĂ©e, sauf si la variable config pack.packSizeLimit est dĂ©finie. Notez que cette option peut entraĂźner un dĂ©pĂŽt plus gros et plus lent ; voir la discussion dans pack.packSizeLimit.

--filter=<spéc. du filtre>

Retirer les objets correspondant Ă  la spĂ©cification du filtre du fichier paquet rĂ©sultant et les mettre dans un fichier paquet sĂ©parĂ©. Notez que les objets utilisĂ©s dans le rĂ©pertoire de travail ne sont pas filtrĂ©s. Donc, pour que la sĂ©paration fonctionne pleinement, il est prĂ©fĂ©rable de l’exĂ©cuter dans un dĂ©pĂŽt nu et d’utiliser les options -a et -d avec cette option. --no-write-bitmap-index (ou l’option de config repack.writebitmaps Ă  false) devrait aussi ĂȘtre utilisĂ©s, sinon l’Ă©criture de l’index de bitmap Ă©chouera, vu que cela supposerait l’Ă©criture d’un seul fichier paquet contenant tous les objets. Voir git-rev-list[1] pour les forme valides de <spĂ©c-de-filtre>.

--filter-to=<rép.>

Écrire le paquet contenant des objets filtrĂ©s vers le rĂ©pertoire <rĂ©pertoire>. Seulement utile avec --filter. Ceci peut ĂȘtre utilisĂ© pour mettre le paquet dans un rĂ©pertoire d’objets sĂ©parĂ© qui est accessible par le mĂ©canisme alternatif de Git. ATTENTION : Si le fichier paquet contenant les objets filtrĂ©s n’est pas accessible, le dĂ©pĂŽt peut se corrompre car il pourrait ne pas ĂȘtre possible d’accĂ©der aux objets dans ce fichier. Voir les sections objects et objects/info/alternates de gitrepository-layout[5].

-b
--write-bitmap-index

Écrire un index de bitmap accessible dans le cadre du rempaquetage. Cela n’a de sens que lorsqu’utilisĂ© avec -a, -A ou -m, car les bitmaps doivent pouvoir se rĂ©fĂ©rer Ă  tous les objets accessibles. Cette option annule le rĂ©glage de repack.writeBitmaps. Cette option n’a aucun effet si plusieurs paquets sont crĂ©Ă©s, Ă  moins d’Ă©crire un MIDX (auquel cas un bitmap multi-pack est crĂ©Ă©).

--pack-kept-objects

Inclure des objets dans les fichiers .keep lors du rempaquetage. Notez que nous ne supprimons toujours pas les paquets .keep aprĂšs la fin de pack-objects . Cela signifie que nous pouvons dupliquer des objets, mais cela rend l’option sĂ»re lorsqu’il y a des poussĂ©es ou des rĂ©cupĂ©rations simultanĂ©es. Cette option n’est gĂ©nĂ©ralement utile que si vous Ă©crivez des bitmaps avec -b ou repack.writeBitmaps, car elle garantit que le paquet gĂ©rĂ© par le bitmap a les objets nĂ©cessaires.

--keep-pack=<nom-de-paquet>

Exclure le paquet donnĂ© du rĂ©empaquetage. C’est Ă©quivalent Ă  avoir un fichier .keep sur le paquet.<nom-de-paquet> est le nom du fichier paquet sans rĂ©pertoire (par exemple pack-123.pack). L’option peut ĂȘtre spĂ©cifiĂ©e plusieurs fois pour garder plusieurs paquets.

--unpack-unreachable=<quand>

Lors de la libĂ©ration des objets inaccessibles, ne pas s’ennuyer Ă  relĂącher des objets plus anciens que <quand>. Cela peut ĂȘtre utilisĂ© pour optimiser l’Ă©criture de tous les objets qui seraient immĂ©diatement Ă©laguĂ©s par un `git prune`subsĂ©quent.

-k
--keep-unreachable

Lorsqu’utilisĂ© avec -ad, tous les objets inaccessibles des paquets existants seront annexĂ©s Ă  la fin du paquet au lieu d’ĂȘtre enlevĂ©s. De plus, tous les objets inaccessibles seront empaquetĂ©s (et leurs homologues libres enlevĂ©s).

-i
--delta-islands

Passer l’option --delta-islands Ă  git-pack-objects, voir git-pack-objects[1].

-g<facteur>
--geometric=<facteur>

Arranger la structure de paquets rĂ©sultant de sorte que chaque paquet successif contient au moins <facteur> fois le nombre d’objets que le plus grand paquet existant .

git repack assure cela en dĂ©terminant une "limite" de paquets qui doivent ĂȘtre rempaquetĂ©s en un paquet afin d’assurer une progression gĂ©omĂ©trique. Il choisit le plus petit ensemble de fichiers paquets tels que le plus grand nombre de paquets plus grands (en comptant des objets contenus dans ce paquet) peuvent ĂȘtre laissĂ©s intacts.

Contrairement Ă  d’autres modes de rempaquetage, l’ensemble des objets Ă  empaqueter est dĂ©terminĂ© de façon unique par l’ensemble de paquets "enroulĂ©s" ; en d’autres termes, les paquets identifiĂ©s Ă  ĂȘtre combinĂ©s pour restaurer une progression gĂ©omĂ©trique.

Les objets libres sont implicitement inclus dans cet "enroulage", indĂ©pendamment de leur accessibilitĂ©. Ceci est sujet Ă  changement dans l’avenir.

Lors de l’Ă©criture d’un bitmap multi-paquet, git repack choisit le plus grand paquet rĂ©sultant comme le paquet prĂ©fĂ©rĂ© pour la sĂ©lection d’objets par le MIDX (voir git-multi-pack-index[1]).

-m
--write-midx

Écrire un index multi-paquet (voir git-multi-pack-index[1]) contenant les paquets non redondants.

CONFIGURATION

Diverses variables de configuration affectent l’empaquetage, voir git-config[1] (recherchez "paquet" et "delta").

Par dĂ©faut, la commande passe l’option --delta-base-offset Ă  git pack-objects ; cela entraĂźne gĂ©nĂ©ralement des paquets lĂ©gĂšrement plus petits, mais les paquets gĂ©nĂ©rĂ©s sont incompatibles avec les versions de Git plus anciennes que la version 1.4.4. Si vous avez besoin de partager votre dĂ©pĂŽt avec ces anciennes versions Git, soit directement ou via le protocole http idiot, vous devez dĂ©finir la variable de configuration repack.UseDeltaBaseOffset Ă  false et rempaqueter. L’accĂšs depuis des anciennes versions de Git avec le protocole natif n’est pas affectĂ© par cette option puisque la conversion est effectuĂ©e Ă  la volĂ©e en cas de besoin.

La compression de delta n’est pas utilisĂ©e sur des objets plus grands que la variable de configuration core.bigFileThreshold et sur des fichiers dont l’attribut delta ` est rĂ©glĂ© Ă  `false.

GIT

Fait partie de la suite git[1]

TRADUCTION

Cette page de manuel a été traduite par Jean-Noël Avila <jn.avila AT free DOT fr> et les membres du projet git-manpages-l10n. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le site https://github.com/jnavila/git-manpages-l10n .

scroll-to-top