Git-2.46.0

Introduction à Git

Git est un système de contrôle de versions distribué librement et open-source, conçu pour gérer du plus petit au plus gros projet rapidement et efficacement. Chaque clonage Git est un dépôt complet avec l'historique et les possibilités de poursuite des révisions, indépendamment de l'accès réseau ou d'un serveur central. Le système de branches et de synchronisation est rapide et facile à utiliser. Git est utilisé pour le contrôle de la version de fichiers, un peu comme de nombreux outils comme Mercurial-6.8.1, Bazaar, Subversion-1.14.3, CVS, Perforce et Team Foundation Server.

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.2.

Informations sur le paquet

  • Téléchargement (HTTP) : https://www.kernel.org/pub/software/scm/git/git-2.46.0.tar.xz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : 2309cd803a02378380f24c50667d9bfb

  • Taille du téléchargement : 7,2 Mo

  • Estimation de l'espace disque requis : 441 Mo (avec la documentation téléchargée, plus 19 Mo si vous construisez la documentation, plus 21 Mo pour les tests)

  • Estimation du temps de construction : 0,3 SBU (avec parallélisme = 4 ; plus 0,4 SBU pour construire la documentation et jusqu'à 7 SBU pour les tests (en fonction de la vitesse du disque))

Téléchargements supplémentaires

Dépendances de Git

Recommandées

Facultatives

Apache-2.4.62 (pour certains tests), Fcron-3.2.1 (à l'exécution, pour planifier les tâches de git maintenance), GnuPG-2.4.5 (à l'exécution, peut être utilisé pour signer les commits ou les tags Git, ou vérifier ces signatures), OpenSSH-9.8p1 (à l'exécution, requis pour utiliser Git via ssh), pcre2-10.44, Subversion-1.14.3 avec les liaisons Perl (à l'exécution, pour git svn), Tk-8.6.14 (gitk, une visionneuse de dépôt Git, utilise Tk à l'exécution), Valgrind-3.23.0, Authen::SASL et MIME::Base64 (tous deux à l'exécution, pour git send-email), IO-Socket-SSL-2.088 (à l'exécution, pour que git send-email se connecte à un serveur SMTP avec le chiffrement SSL) et Systemd-256.4 (à l'exécution, reconstruit avec Linux-PAM-1.6.1, pour planifier les tâches de git maintenance)

Facultatives (pour créer les pages de man, les docs html et les autres docs)

xmlto-0.0.29 et asciidoc-10.2.1 et aussi dblatex (pour la version PDF du manuel utilisateur) et docbook2x pour créer les pages d'info

Installation de Git

Installez Git en exécutant les commandes suivantes :

./configure --prefix=/usr \
            --with-gitconfig=/etc/gitconfig \
            --with-python=python3 &&
make

Vous pouvez construire les pages de manuel ou les docs html, ou utiliser les versions téléchargées. Si vous choisissez de les construire, utilisez les deux instructions suivantes.

Si vous avez installé asciidoc-10.2.1 vous pouvez créer la version html des pages de manuel et des autres docs :

make html

Si vous avez installé asciidoc-10.2.1 et xmlto-0.0.29 vous pouvez créer les pages de man :

make man

La suite de tests peut être lancée en parallèle. Pour lancer la suite de tests, lancez : make test -k |& tee test.log. Si certains tests échouent, la liste de tests échoués se trouve avec grep '^not ok' test.log | grep -v TODO.

Maintenant, en tant qu'utilisateur root :

make perllibdir=/usr/lib/perl5/5.40/site_perl install

Si vous créez les pages de man ou les docs html

Installez les pages de manuel en tant qu'utilisateur root :

make install-man

Installez les docs html en tant qu'utilisateur root :

make htmldir=/usr/share/doc/git-2.46.0 install-html

Si vous avez téléchargé les pages de man ou les docs html

Si vous avez téléchargé les pages de manuel déballez les en tant qu'utilisateur root :

tar -xf ../git-manpages-2.46.0.tar.xz \
    -C /usr/share/man --no-same-owner --no-overwrite-dir

Si vous avez téléchargé les documentations HTML déballez les en tant qu'utilisateur root :

mkdir -vp   /usr/share/doc/git-2.46.0 &&
tar   -xf   ../git-htmldocs-2.46.0.tar.xz \
      -C    /usr/share/doc/git-2.46.0 --no-same-owner --no-overwrite-dir &&

find        /usr/share/doc/git-2.46.0 -type d -exec chmod 755 {} \; &&
find        /usr/share/doc/git-2.46.0 -type f -exec chmod 644 {} \;

Réorganisez les versions texte et html dans html-docs (pour les deux méthodes)

Pour les deux méthodes, html-docs inclut beaucoup de fichiers en texte brut. Réorganisez les fichiers, en tant qu'utilisateur root :

mkdir -vp /usr/share/doc/git-2.46.0/man-pages/{html,text}         &&
mv        /usr/share/doc/git-2.46.0/{git*.txt,man-pages/text}     &&
mv        /usr/share/doc/git-2.46.0/{git*.,index.,man-pages/}html &&

mkdir -vp /usr/share/doc/git-2.46.0/technical/{html,text}         &&
mv        /usr/share/doc/git-2.46.0/technical/{*.txt,text}        &&
mv        /usr/share/doc/git-2.46.0/technical/{*.,}html           &&

mkdir -vp /usr/share/doc/git-2.46.0/howto/{html,text}             &&
mv        /usr/share/doc/git-2.46.0/howto/{*.txt,text}            &&
mv        /usr/share/doc/git-2.46.0/howto/{*.,}html               &&

sed -i '/^<a href=/s|howto/|&html/|' /usr/share/doc/git-2.46.0/howto-index.html &&
sed -i '/^\* link:/s|howto/|&html/|' /usr/share/doc/git-2.46.0/howto-index.txt

Explication des commandes

--with-gitconfig=/etc/gitconfig : cela initialise /etc/gitconfig comme le fichier où sont enregistrées les valeurs par défaut de Git au niveau du système.

--with-python=python3 : Utilisez ce paramètre pour permettre l'utilisation de Python 3 au lieu de Python 2 en fin de vie. Python est utilisé pour l'interface git p4 pour les dépôt perforce, et aussi pour certains tests.

--with-libpcre2 : utilisez ce paramètre si PCRE2 est installé.

tar -xf ../git-manpages-2.46.0.tar.gz -C /usr/share/man --no-same-owner : Cela va déballer git-manpages-2.46.0.tar.gz. L'option -C fait que tar change de répertoire pour /usr/share/man avant de commencer à décompresser les docs. L'option --no-same-owner arrête tar pour préserver les informations d'utilisateur et de groupe des fichiers. Cela est utile quand l'utilisateur ou le groupe n'existe pas sur votre système; Cela peut être (potentiellement) une faille de sécurité.

mv /usr/share/doc/git-2.46.0 ... : Ces commandes déplacent certains des fichiers dans des sous-répertoires pour rendre plus facile le tri des docs et trouver plus facilement ce que vous cherchez.

find ... chmod ... : Ces commandes corrigent les permissions dans les fichiers tar de la documentation fournie.

Configurer Git

Fichiers de configuration

~/.gitconfig et /etc/gitconfig

Contenu

Programmes installés: git, git-receive-pack, git-upload-archive et git-upload-pack (liés en dur les uns aux autres), git-cvsserver, git-shell, gitk et scalar
Bibliothèques installées: Aucune
Répertoires installés: /usr/libexec/git-core, /usr/lib/perl5/5.40/site_perl/Git et /usr/share/{doc/git-2.46.0,git-core,git-gui,gitk,gitweb}

Descriptions courtes

git

est un stupide pourchasseur de contenu

git-cvsserver

est un émulateur de serveur CVS pour Git

gitk

est un navigateur graphique de dépôt Git (exige Tk-8.6.14)

git-receive-pack

est appelé par git send-pack et met à jour le dépôt avec les informations issue du dépôt distant

git-shell

est un shell de connexion pour que des comptes SSH donnent des accès Git restreints

git-upload-archive

est appelé par git archive --remote et envoie une archive générée à l'autre bout du protocole git

git-upload-pack

est appelé par git fetch-pack, il détecte les objets manquant à l'autre bout et il les envoie ensuite en paquets

scalar

est un outil de gestion de dépôt qui optimise Git pour l'utilisation de gros dépôts