• package: tis-git
  • name: Git
  • version: 2.47.0.1-16
  • categories: Development,Utilities
  • maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ
  • editor: Software Freedom Conservancy
  • licence: opensource_free,cpe:/a:gnu:gpl_v2,wapt_public
  • locale: all
  • target_os: windows
  • impacted_process: git,git-askpass,git-askyesno,git-bash,git-cmd,git-credential-helper-selector,git-credential-manager,git-credential-manager-core,git-credential-manager-ui,git-credential-wincred,git-daemon,git-gui,git-http-backend,git-http-fetch,git-http-push,git-imap-send,git-lfs,git-receive-pack,git-remote-ftp,git-remote-ftps,git-remote-http,git-remote-https,git-sh-i18n--envsubst,git-upload-archive,git-upload-pack,git-wrapper,gitk
  • architecture: x86
  • signature_date:
  • size: 63.30 Mo
  • installed_size: 368.10 Mo
  • homepage : https://git-scm.com/
  • conflicts :

package           : tis-git
version           : 2.47.0.1-16
architecture      : x86
section           : base
priority          : optional
name              : Git
categories        : Development,Utilities
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ
description       : Git is a free, open-source, decentralized version control system designed to quickly and efficiently manage all projects, from the smallest to the largest
depends           : 
conflicts         : tis-git-lfs
maturity          : PROD
locale            : all
target_os         : windows
min_wapt_version  : 2.3
sources           : https://github.com/git-for-windows/git/releases
installed_size    : 368096729
impacted_process  : git,git-askpass,git-askyesno,git-bash,git-cmd,git-credential-helper-selector,git-credential-manager,git-credential-manager-core,git-credential-manager-ui,git-credential-wincred,git-daemon,git-gui,git-http-backend,git-http-fetch,git-http-push,git-imap-send,git-lfs,git-receive-pack,git-remote-ftp,git-remote-ftps,git-remote-http,git-remote-https,git-sh-i18n--envsubst,git-upload-archive,git-upload-pack,git-wrapper,gitk
description_fr    : Git est un système de contrôle de version libre, gratuit et décentralisé, conçu pour gérer rapidement et efficacement tous les projets, des plus petits aux plus grands
description_pl    : Git to darmowy, zdecentralizowany system kontroli wersji o otwartym kodzie źródłowym, zaprojektowany do szybkiego i wydajnego zarządzania wszystkimi projektami, od najmniejszych do największych
description_de    : Git ist ein kostenloses, dezentralisiertes Open-Source-Versionskontrollsystem, das für die schnelle und effiziente Verwaltung aller Projekte, von den kleinsten bis zu den größten, entwickelt wurde
description_es    : Git es un sistema de control de versiones descentralizado, gratuito y de código abierto diseñado para gestionar de forma rápida y eficaz todos los proyectos, desde los más pequeños a los más grandes
description_pt    : O Git é um sistema de controlo de versões gratuito, de código aberto e descentralizado, concebido para gerir rápida e eficientemente todos os projectos, desde os mais pequenos aos maiores
description_it    : Git è un sistema di controllo delle versioni gratuito, open-source e decentralizzato, progettato per gestire in modo rapido ed efficiente tutti i progetti, dai più piccoli ai più grandi
description_nl    : Git is een gratis, open-source, gedecentraliseerd versiebeheersysteem dat is ontworpen om snel en efficiënt alle projecten te beheren, van de kleinste tot de grootste
description_ru    : Git - это бесплатная децентрализованная система контроля версий с открытым исходным кодом, предназначенная для быстрого и эффективного управления всеми проектами, от самых маленьких до самых больших
audit_schedule    : 
editor            : Software Freedom Conservancy
keywords          : git,project,projects,version,control,system
licence           : opensource_free,cpe:/a:gnu:gpl_v2,wapt_public
homepage          : https://git-scm.com/
package_uuid      : f02bbed9-80c9-4c43-8bab-d7ac7a89d52a
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://github.com/git/git/blob/master/Documentation/RelNotes
min_os_version    : 6.1.7601
max_os_version    : 
icon_sha256sum    : 4a6e5031edc6e22a06cb5f12e89dea8738b88839c2cb99e2e7e0d9df345e2252
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date    : 2024-10-13T11:01:08.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature         : suir2APctZ3TjPHNFLaTLfZNL0YBiqb91uVg0PmdcnSaT7Q29D/eBi4OtR791HP4Ufflv5VVih26v2iT8dA1SRK2EqBEt6OjbEWRY4QaM1G7MHKxylwucORiLZqzbqHwBgIaameuMrrLFkYz4fPpRVgK/KFKB8aQVW4oCv7sLlSDYQH0IPfcFILgD1+/wITT4h4NIE1TdgArrwAOfa8gn480Q7euQDfKDX9OBrIoTQsMrLINEFc9uG9uUF3uqcmrocFCkAOuWFazwoiK3fykoKHctEE597N+fWtLwbErfDhgcJJM8ozH+A3PWTk0Q0PxFU+2u5aNotH/38TbDI7ySg==

# -*- coding: utf-8 -*-
from setuphelpers import *


app_path = r"C:\Program Files\Git\cmd\git.exe"


def get_soft_version(key):
    return get_file_properties(app_path)["FileVersion"]


def install():
    app_uninstallkey = "Git_is1"
    bin_name = glob.glob("Git-*.exe")[0]
    install_exe_if_needed(
        bin_name,
        silentflags='/LOADINF="git.inf" /VERYSILENT /SUPPRESSMSGBOXES /CLOSEAPPLICATIONS /NORESTART',
        key=app_uninstallkey,
        min_version=control.get_software_version(),
        get_version=get_soft_version,
        timeout=900,
    )

    # Disable credential provider web detection
    run(f'"{app_path}" config --global credential.provider generic')

# -*- coding: utf-8 -*-
from setuphelpers import *


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    api_url = "https://api.github.com/repos/git-for-windows/git/releases/latest"
    download_dict = {
        "windows-x64": "64-bit.exe",
        "windows-x86": "32-bit.exe",
    }

    # Getting latest version information from official sources
    print("API used is: %s" % api_url)
    json_load = wgets(api_url, proxies=proxies, as_json=True)
    version = json_load["tag_name"].replace("v", "").replace(".windows", "")
    for to_download in json_load["assets"]:
        if to_download["name"].endswith(download_dict[control.target_os + "-" + ensure_list(control.architecture)[0]]):
            latest_bin = to_download["name"]
            download_url = to_download["browser_download_url"]
            break

    # Downloading latest binaries
    print("Latest %s version is: %s" % (control.name, version))
    print("Download URL is: %s" % download_url)
    if not isfile(latest_bin):
        print("Downloading: %s" % latest_bin)
        wget(download_url, latest_bin, proxies=proxies)
    else:
        print("Binary is present: %s" % latest_bin)

    # Deleting outdated binaries
    remove_outdated_binaries(latest_bin)
    # arch_list = ensure_list(control.architecture)
    # remove_outdated_binaries(version, filename_contains=("x64" if "x64" in arch_list else "x86" if "x86" in arch_list else []))

    # Checking version from file
    if get_os_name() == "Windows" and "windows" in control.target_os.lower():
        version_from_file = get_version_from_binary(latest_bin, "FileVersion")
        if Version(version_from_file, 4) == Version(version, 4):
            print(f"INFO: Binary file version ({version_from_file}) corresponds to online version ({version})")
        else:
            error(f"ERROR: Binary file version ({version_from_file}) do NOT corresponds to online version ({version})")

    # Changing version of the package
    if Version(version, 4) > Version(control.get_software_version(), 4):
        print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
        package_updated = True
    else:
        print("Software version up-to-date (%s)" % Version(version))
    control.set_software_version(version)
    control.save_control_to_wapt()

    # Validating or not update-package-sources
    return package_updated

    # # Changing version of the package and validating update-package-sources
    # return complete_control_version(control, version)

082fccce46d7d5b34a0fd146dbc21ef2c7597f468a0e9a41c3814536a04d6668 : Git-2.47.0-32-bit.exe
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
e76c1e2ef2403c51034ad13d5db7877fd9086c4a8726c4ec97d96b1ca9b3ed7c : WAPT/changelog.txt
09885a0de5f1f6703355c99409ebffc955fdcb0f2f33d046033af1f9e4ccdc8e : WAPT/control
4a6e5031edc6e22a06cb5f12e89dea8738b88839c2cb99e2e7e0d9df345e2252 : WAPT/icon.png
423eba630776ba8a9a9922ffec8fa681472560d3511dbbc304529e5d667bcc5d : git.inf
730c0f90707733f5a56a884363f0426573d30b33fd93cca4b4a36f5d6bc0cd0b : luti.json
f534be241eb92afd197d02e69a5e0f77c4b5dcd1f1c1711f492f72d9cc8a968e : setup.py
9941f8b65b7192e16cbd1239388e38e0dd4bc76fb51280bfa37984c649023b57 : update_package.py

https://github.com/git/git/blob/master/Documentation/RelNotes
2.42.0.1-16
===
full version is now 4 digits