0s autopkgtest [22:10:05]: starting date and time: 2025-03-15 22:10:05+0000 0s autopkgtest [22:10:05]: git checkout: 325255d2 Merge branch 'pin-any-arch' into 'ubuntu/production' 0s autopkgtest [22:10:05]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.a5vri1s2/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:glibc --apt-upgrade r-cran-git2r --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=glibc/2.41-1ubuntu2 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor builder-cpu2-ram4-disk20 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@bos03-16.secgroup --name adt-plucky-amd64-r-cran-git2r-20250315-221005-juju-7f2275-prod-proposed-migration-environment-20-32b31230-86ab-48d1-b0ab-b7ad6fe8722d --image adt/ubuntu-plucky-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-proposed-migration-amd64 -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 57s autopkgtest [22:11:02]: testbed dpkg architecture: amd64 57s autopkgtest [22:11:02]: testbed apt version: 2.9.31ubuntu1 57s autopkgtest [22:11:02]: @@@@@@@@@@@@@@@@@@@@ test bed setup 58s autopkgtest [22:11:03]: testbed release detected to be: None 58s autopkgtest [22:11:03]: updating testbed package index (apt update) 59s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [126 kB] 59s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 59s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 59s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 59s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [14.5 kB] 59s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [44.1 kB] 59s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [369 kB] 59s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/main i386 Packages [67.4 kB] 59s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 Packages [85.7 kB] 59s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 c-n-f Metadata [1852 B] 59s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/restricted amd64 c-n-f Metadata [116 B] 59s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 Packages [342 kB] 59s Get:13 http://ftpmaster.internal/ubuntu plucky-proposed/universe i386 Packages [174 kB] 59s Get:14 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 c-n-f Metadata [15.3 kB] 59s Get:15 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse i386 Packages [8544 B] 59s Get:16 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse amd64 Packages [16.1 kB] 59s Get:17 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse amd64 c-n-f Metadata [628 B] 60s Fetched 1265 kB in 1s (1499 kB/s) 61s Reading package lists... 61s Reading package lists... 62s Building dependency tree... 62s Reading state information... 62s Calculating upgrade... 62s Calculating upgrade... 63s The following package was automatically installed and is no longer required: 63s libnl-genl-3-200 63s Use 'sudo apt autoremove' to remove it. 63s The following NEW packages will be installed: 63s bpftool libdebuginfod-common libdebuginfod1t64 linux-headers-6.14.0-10 63s linux-headers-6.14.0-10-generic linux-image-6.14.0-10-generic 63s linux-modules-6.14.0-10-generic linux-modules-extra-6.14.0-10-generic 63s linux-perf linux-tools-6.14.0-10 linux-tools-6.14.0-10-generic pnp.ids 63s The following packages will be upgraded: 63s apparmor apt apt-utils binutils binutils-common binutils-x86-64-linux-gnu 63s cloud-init cloud-init-base curl dosfstools exfatprogs fwupd gcc-15-base 63s gir1.2-girepository-2.0 gir1.2-glib-2.0 htop hwdata initramfs-tools 63s initramfs-tools-bin initramfs-tools-core libapparmor1 libapt-pkg7.0 63s libassuan9 libatomic1 libaudit-common libaudit1 libbinutils libbrotli1 63s libc-bin libc-dev-bin libc6 libc6-dev libcap-ng0 libctf-nobfd0 libctf0 63s libcurl3t64-gnutls libcurl4t64 libestr0 libftdi1-2 libfwupd3 libgcc-s1 63s libgirepository-1.0-1 libglib2.0-0t64 libglib2.0-data libgpgme11t64 63s libgprofng0 libjemalloc2 liblz4-1 liblzma5 libmm-glib0 libncurses6 63s libncursesw6 libnewt0.52 libnl-3-200 libnl-genl-3-200 libnl-route-3-200 63s libnss-systemd libpam-systemd libparted2t64 libpci3 libpython3-stdlib 63s libpython3.13 libpython3.13-minimal libpython3.13-stdlib libseccomp2 63s libselinux1 libsemanage-common libsemanage2 libsframe1 libsqlite3-0 63s libstdc++6 libsystemd-shared libsystemd0 libtinfo6 libudev1 libxml2 63s linux-firmware linux-generic linux-headers-generic linux-headers-virtual 63s linux-image-generic linux-image-virtual linux-libc-dev linux-tools-common 63s linux-virtual locales media-types ncurses-base ncurses-bin ncurses-term 63s parted pci.ids pciutils pinentry-curses python-apt-common python3 63s python3-apt python3-bcrypt python3-cffi-backend python3-dbus python3-gi 63s python3-jinja2 python3-lazr.uri python3-markupsafe python3-minimal 63s python3-newt python3-rpds-py python3-systemd python3-yaml python3.13 63s python3.13-gdbm python3.13-minimal rsync rsyslog strace systemd 63s systemd-cryptsetup systemd-resolved systemd-sysv systemd-timesyncd 63s ubuntu-kernel-accessories ubuntu-minimal ubuntu-standard udev whiptail 63s xz-utils 63s 126 upgraded, 12 newly installed, 0 to remove and 0 not upgraded. 63s Need to get 829 MB of archives. 63s After this operation, 325 MB of additional disk space will be used. 63s Get:1 http://ftpmaster.internal/ubuntu plucky/main amd64 ncurses-bin amd64 6.5+20250216-2 [194 kB] 63s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 libc-dev-bin amd64 2.41-1ubuntu1 [24.7 kB] 63s Get:3 http://ftpmaster.internal/ubuntu plucky/main amd64 libc6-dev amd64 2.41-1ubuntu1 [2182 kB] 64s Get:4 http://ftpmaster.internal/ubuntu plucky/main amd64 locales all 2.41-1ubuntu1 [4246 kB] 65s Get:5 http://ftpmaster.internal/ubuntu plucky/main amd64 libc6 amd64 2.41-1ubuntu1 [3327 kB] 66s Get:6 http://ftpmaster.internal/ubuntu plucky/main amd64 libc-bin amd64 2.41-1ubuntu1 [701 kB] 66s Get:7 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-libc-dev amd64 6.14.0-10.10 [1723 kB] 66s Get:8 http://ftpmaster.internal/ubuntu plucky/main amd64 libatomic1 amd64 15-20250222-0ubuntu1 [10.4 kB] 66s Get:9 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-15-base amd64 15-20250222-0ubuntu1 [53.4 kB] 66s Get:10 http://ftpmaster.internal/ubuntu plucky/main amd64 libgcc-s1 amd64 15-20250222-0ubuntu1 [77.8 kB] 66s Get:11 http://ftpmaster.internal/ubuntu plucky/main amd64 libstdc++6 amd64 15-20250222-0ubuntu1 [798 kB] 66s Get:12 http://ftpmaster.internal/ubuntu plucky/main amd64 ncurses-base all 6.5+20250216-2 [25.9 kB] 66s Get:13 http://ftpmaster.internal/ubuntu plucky/main amd64 ncurses-term all 6.5+20250216-2 [276 kB] 66s Get:14 http://ftpmaster.internal/ubuntu plucky/main amd64 liblz4-1 amd64 1.10.0-4 [66.4 kB] 66s Get:15 http://ftpmaster.internal/ubuntu plucky/main amd64 liblzma5 amd64 5.6.4-1 [157 kB] 66s Get:16 http://ftpmaster.internal/ubuntu plucky/main amd64 libsystemd0 amd64 257.3-1ubuntu3 [595 kB] 66s Get:17 http://ftpmaster.internal/ubuntu plucky/main amd64 libnss-systemd amd64 257.3-1ubuntu3 [199 kB] 66s Get:18 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd-sysv amd64 257.3-1ubuntu3 [11.9 kB] 66s Get:19 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd-resolved amd64 257.3-1ubuntu3 [345 kB] 66s Get:20 http://ftpmaster.internal/ubuntu plucky/main amd64 libpam-systemd amd64 257.3-1ubuntu3 [302 kB] 66s Get:21 http://ftpmaster.internal/ubuntu plucky/main amd64 libsystemd-shared amd64 257.3-1ubuntu3 [2371 kB] 67s Get:22 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd amd64 257.3-1ubuntu3 [3052 kB] 67s Get:23 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd-timesyncd amd64 257.3-1ubuntu3 [42.1 kB] 67s Get:24 http://ftpmaster.internal/ubuntu plucky/main amd64 systemd-cryptsetup amd64 257.3-1ubuntu3 [124 kB] 67s Get:25 http://ftpmaster.internal/ubuntu plucky/main amd64 udev amd64 257.3-1ubuntu3 [1404 kB] 67s Get:26 http://ftpmaster.internal/ubuntu plucky/main amd64 libudev1 amd64 257.3-1ubuntu3 [215 kB] 67s Get:27 http://ftpmaster.internal/ubuntu plucky/main amd64 libaudit-common all 1:4.0.2-2ubuntu2 [6628 B] 67s Get:28 http://ftpmaster.internal/ubuntu plucky/main amd64 libcap-ng0 amd64 0.8.5-4build1 [15.6 kB] 67s Get:29 http://ftpmaster.internal/ubuntu plucky/main amd64 libaudit1 amd64 1:4.0.2-2ubuntu2 [54.0 kB] 67s Get:30 http://ftpmaster.internal/ubuntu plucky/main amd64 libseccomp2 amd64 2.5.5-1ubuntu6 [53.5 kB] 67s Get:31 http://ftpmaster.internal/ubuntu plucky/main amd64 libselinux1 amd64 3.7-3ubuntu3 [87.3 kB] 67s Get:32 http://ftpmaster.internal/ubuntu plucky/main amd64 libapparmor1 amd64 4.1.0~beta5-0ubuntu8 [55.0 kB] 67s Get:33 http://ftpmaster.internal/ubuntu plucky/main amd64 libapt-pkg7.0 amd64 2.9.33 [1138 kB] 67s Get:34 http://ftpmaster.internal/ubuntu plucky/main amd64 apt amd64 2.9.33 [1439 kB] 67s Get:35 http://ftpmaster.internal/ubuntu plucky/main amd64 apt-utils amd64 2.9.33 [222 kB] 67s Get:36 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-minimal amd64 3.13.2-2 [27.7 kB] 67s Get:37 http://ftpmaster.internal/ubuntu plucky/main amd64 python3 amd64 3.13.2-2 [24.0 kB] 67s Get:38 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.13 amd64 3.13.2-2 [2341 kB] 67s Get:39 http://ftpmaster.internal/ubuntu plucky/main amd64 media-types all 13.0.0 [29.9 kB] 67s Get:40 http://ftpmaster.internal/ubuntu plucky/main amd64 libncurses6 amd64 6.5+20250216-2 [126 kB] 67s Get:41 http://ftpmaster.internal/ubuntu plucky/main amd64 libncursesw6 amd64 6.5+20250216-2 [165 kB] 67s Get:42 http://ftpmaster.internal/ubuntu plucky/main amd64 libtinfo6 amd64 6.5+20250216-2 [119 kB] 67s Get:43 http://ftpmaster.internal/ubuntu plucky/main amd64 libsqlite3-0 amd64 3.46.1-2 [715 kB] 67s Get:44 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.13 amd64 3.13.2-2 [735 kB] 67s Get:45 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.13-minimal amd64 3.13.2-2 [2365 kB] 67s Get:46 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.13-minimal amd64 3.13.2-2 [883 kB] 67s Get:47 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3.13-stdlib amd64 3.13.2-2 [2066 kB] 67s Get:48 http://ftpmaster.internal/ubuntu plucky/main amd64 libpython3-stdlib amd64 3.13.2-2 [10.4 kB] 67s Get:49 http://ftpmaster.internal/ubuntu plucky/main amd64 rsync amd64 3.4.1+ds1-3 [482 kB] 67s Get:50 http://ftpmaster.internal/ubuntu plucky/main amd64 libdebuginfod-common all 0.192-4 [15.4 kB] 67s Get:51 http://ftpmaster.internal/ubuntu plucky/main amd64 libsemanage-common all 3.7-2.1build1 [7268 B] 67s Get:52 http://ftpmaster.internal/ubuntu plucky/main amd64 libsemanage2 amd64 3.7-2.1build1 [106 kB] 67s Get:53 http://ftpmaster.internal/ubuntu plucky/main amd64 libassuan9 amd64 3.0.2-2 [43.1 kB] 67s Get:54 http://ftpmaster.internal/ubuntu plucky/main amd64 gir1.2-girepository-2.0 amd64 1.83.4-1 [25.3 kB] 67s Get:55 http://ftpmaster.internal/ubuntu plucky/main amd64 gir1.2-glib-2.0 amd64 2.84.0-1 [184 kB] 67s Get:56 http://ftpmaster.internal/ubuntu plucky/main amd64 libglib2.0-0t64 amd64 2.84.0-1 [1669 kB] 68s Get:57 http://ftpmaster.internal/ubuntu plucky/main amd64 libgirepository-1.0-1 amd64 1.83.4-1 [89.5 kB] 68s Get:58 http://ftpmaster.internal/ubuntu plucky/main amd64 libestr0 amd64 0.1.11-2 [8340 B] 68s Get:59 http://ftpmaster.internal/ubuntu plucky/main amd64 libglib2.0-data all 2.84.0-1 [53.0 kB] 68s Get:60 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-newt amd64 0.52.24-4ubuntu2 [21.1 kB] 68s Get:61 http://ftpmaster.internal/ubuntu plucky/main amd64 libnewt0.52 amd64 0.52.24-4ubuntu2 [55.7 kB] 68s Get:62 http://ftpmaster.internal/ubuntu plucky/main amd64 libxml2 amd64 2.12.7+dfsg+really2.9.14-0.2ubuntu5 [772 kB] 68s Get:63 http://ftpmaster.internal/ubuntu plucky/main amd64 python-apt-common all 2.9.9build1 [21.3 kB] 68s Get:64 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-apt amd64 2.9.9build1 [172 kB] 68s Get:65 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-cffi-backend amd64 1.17.1-2build2 [96.6 kB] 68s Get:66 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-dbus amd64 1.3.2-5build5 [102 kB] 68s Get:67 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-gi amd64 3.50.0-4build1 [252 kB] 68s Get:68 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-yaml amd64 6.0.2-1build2 [144 kB] 68s Get:69 http://ftpmaster.internal/ubuntu plucky/main amd64 rsyslog amd64 8.2412.0-2ubuntu2 [555 kB] 68s Get:70 http://ftpmaster.internal/ubuntu plucky/main amd64 whiptail amd64 0.52.24-4ubuntu2 [19.1 kB] 68s Get:71 http://ftpmaster.internal/ubuntu plucky/main amd64 ubuntu-minimal amd64 1.549 [11.5 kB] 68s Get:72 http://ftpmaster.internal/ubuntu plucky/main amd64 apparmor amd64 4.1.0~beta5-0ubuntu8 [701 kB] 68s Get:73 http://ftpmaster.internal/ubuntu plucky/main amd64 dosfstools amd64 4.2-1.2 [95.0 kB] 68s Get:74 http://ftpmaster.internal/ubuntu plucky/main amd64 libnl-genl-3-200 amd64 3.7.0-1 [12.2 kB] 68s Get:75 http://ftpmaster.internal/ubuntu plucky/main amd64 libnl-route-3-200 amd64 3.7.0-1 [191 kB] 68s Get:76 http://ftpmaster.internal/ubuntu plucky/main amd64 libnl-3-200 amd64 3.7.0-1 [64.9 kB] 68s Get:77 http://ftpmaster.internal/ubuntu plucky/main amd64 parted amd64 3.6-5 [53.9 kB] 68s Get:78 http://ftpmaster.internal/ubuntu plucky/main amd64 libparted2t64 amd64 3.6-5 [158 kB] 68s Get:79 http://ftpmaster.internal/ubuntu plucky/main amd64 pci.ids all 0.0~2025.03.09-1 [285 kB] 68s Get:80 http://ftpmaster.internal/ubuntu plucky/main amd64 pciutils amd64 1:3.13.0-2 [110 kB] 68s Get:81 http://ftpmaster.internal/ubuntu plucky/main amd64 libpci3 amd64 1:3.13.0-2 [39.8 kB] 68s Get:82 http://ftpmaster.internal/ubuntu plucky/main amd64 strace amd64 6.13+ds-1ubuntu1 [622 kB] 68s Get:83 http://ftpmaster.internal/ubuntu plucky/main amd64 xz-utils amd64 5.6.4-1 [278 kB] 68s Get:84 http://ftpmaster.internal/ubuntu plucky/main amd64 ubuntu-standard amd64 1.549 [11.5 kB] 68s Get:85 http://ftpmaster.internal/ubuntu plucky/main amd64 libgprofng0 amd64 2.44-3ubuntu1 [886 kB] 68s Get:86 http://ftpmaster.internal/ubuntu plucky/main amd64 libctf0 amd64 2.44-3ubuntu1 [96.5 kB] 68s Get:87 http://ftpmaster.internal/ubuntu plucky/main amd64 libctf-nobfd0 amd64 2.44-3ubuntu1 [98.9 kB] 68s Get:88 http://ftpmaster.internal/ubuntu plucky/main amd64 binutils-x86-64-linux-gnu amd64 2.44-3ubuntu1 [1108 kB] 68s Get:89 http://ftpmaster.internal/ubuntu plucky/main amd64 libbinutils amd64 2.44-3ubuntu1 [585 kB] 68s Get:90 http://ftpmaster.internal/ubuntu plucky/main amd64 binutils amd64 2.44-3ubuntu1 [208 kB] 68s Get:91 http://ftpmaster.internal/ubuntu plucky/main amd64 binutils-common amd64 2.44-3ubuntu1 [215 kB] 68s Get:92 http://ftpmaster.internal/ubuntu plucky/main amd64 libsframe1 amd64 2.44-3ubuntu1 [14.8 kB] 68s Get:93 http://ftpmaster.internal/ubuntu plucky/main amd64 hwdata all 0.393-3 [1562 B] 68s Get:94 http://ftpmaster.internal/ubuntu plucky/main amd64 pnp.ids all 0.393-3 [29.5 kB] 68s Get:95 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-tools-common all 6.14.0-10.10 [295 kB] 68s Get:96 http://ftpmaster.internal/ubuntu plucky/main amd64 bpftool amd64 7.6.0+6.14.0-10.10 [1147 kB] 68s Get:97 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-markupsafe amd64 2.1.5-1build4 [13.4 kB] 68s Get:98 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-jinja2 all 3.1.5-2ubuntu1 [109 kB] 68s Get:99 http://ftpmaster.internal/ubuntu plucky/main amd64 cloud-init-base all 25.1-0ubuntu3 [616 kB] 68s Get:100 http://ftpmaster.internal/ubuntu plucky/main amd64 libbrotli1 amd64 1.1.0-2build4 [365 kB] 68s Get:101 http://ftpmaster.internal/ubuntu plucky/main amd64 curl amd64 8.12.1-3ubuntu1 [258 kB] 68s Get:102 http://ftpmaster.internal/ubuntu plucky/main amd64 libcurl4t64 amd64 8.12.1-3ubuntu1 [437 kB] 69s Get:103 http://ftpmaster.internal/ubuntu plucky/main amd64 exfatprogs amd64 1.2.8-1 [76.3 kB] 69s Get:104 http://ftpmaster.internal/ubuntu plucky/main amd64 libcurl3t64-gnutls amd64 8.12.1-3ubuntu1 [432 kB] 69s Get:105 http://ftpmaster.internal/ubuntu plucky/main amd64 fwupd amd64 2.0.6-4 [5408 kB] 69s Get:106 http://ftpmaster.internal/ubuntu plucky/main amd64 libfwupd3 amd64 2.0.6-4 [136 kB] 69s Get:107 http://ftpmaster.internal/ubuntu plucky/main amd64 libmm-glib0 amd64 1.23.4-0ubuntu3 [251 kB] 69s Get:108 http://ftpmaster.internal/ubuntu plucky/main amd64 htop amd64 3.4.0-2 [195 kB] 69s Get:109 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-firmware amd64 20250310.git9e1370d3-0ubuntu1 [571 MB] 90s Get:110 http://ftpmaster.internal/ubuntu plucky/main amd64 initramfs-tools all 0.146ubuntu1 [7920 B] 90s Get:111 http://ftpmaster.internal/ubuntu plucky/main amd64 initramfs-tools-core all 0.146ubuntu1 [51.9 kB] 90s Get:112 http://ftpmaster.internal/ubuntu plucky/main amd64 initramfs-tools-bin amd64 0.146ubuntu1 [26.2 kB] 90s Get:113 http://ftpmaster.internal/ubuntu plucky/main amd64 libdebuginfod1t64 amd64 0.192-4 [21.0 kB] 90s Get:114 http://ftpmaster.internal/ubuntu plucky/main amd64 libftdi1-2 amd64 1.5-8build1 [30.2 kB] 90s Get:115 http://ftpmaster.internal/ubuntu plucky/main amd64 libgpgme11t64 amd64 1.24.2-1ubuntu2 [155 kB] 90s Get:116 http://ftpmaster.internal/ubuntu plucky/main amd64 libjemalloc2 amd64 5.3.0-3 [277 kB] 90s Get:117 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-modules-6.14.0-10-generic amd64 6.14.0-10.10 [41.2 MB] 91s Get:118 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-image-6.14.0-10-generic amd64 6.14.0-10.10 [15.3 MB] 92s Get:119 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-modules-extra-6.14.0-10-generic amd64 6.14.0-10.10 [120 MB] 96s Get:120 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-generic amd64 6.14.0-10.10 [1730 B] 96s Get:121 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-image-generic amd64 6.14.0-10.10 [11.1 kB] 96s Get:122 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-virtual amd64 6.14.0-10.10 [1722 B] 96s Get:123 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-image-virtual amd64 6.14.0-10.10 [11.1 kB] 96s Get:124 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-headers-virtual amd64 6.14.0-10.10 [1642 B] 96s Get:125 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-headers-6.14.0-10 all 6.14.0-10.10 [14.2 MB] 97s Get:126 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-headers-6.14.0-10-generic amd64 6.14.0-10.10 [3915 kB] 97s Get:127 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-headers-generic amd64 6.14.0-10.10 [11.0 kB] 97s Get:128 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-perf amd64 6.14.0-10.10 [4122 kB] 97s Get:129 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-tools-6.14.0-10 amd64 6.14.0-10.10 [1394 kB] 97s Get:130 http://ftpmaster.internal/ubuntu plucky/main amd64 linux-tools-6.14.0-10-generic amd64 6.14.0-10.10 [830 B] 97s Get:131 http://ftpmaster.internal/ubuntu plucky/main amd64 pinentry-curses amd64 1.3.1-2ubuntu3 [42.3 kB] 97s Get:132 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-lazr.uri all 1.0.6-6 [13.7 kB] 97s Get:133 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-rpds-py amd64 0.21.0-2ubuntu2 [278 kB] 97s Get:134 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-systemd amd64 235-1build6 [43.9 kB] 97s Get:135 http://ftpmaster.internal/ubuntu plucky/main amd64 python3.13-gdbm amd64 3.13.2-2 [31.9 kB] 97s Get:136 http://ftpmaster.internal/ubuntu plucky/main amd64 ubuntu-kernel-accessories amd64 1.549 [11.2 kB] 97s Get:137 http://ftpmaster.internal/ubuntu plucky/main amd64 cloud-init all 25.1-0ubuntu3 [2100 B] 97s Get:138 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-bcrypt amd64 4.2.0-2.1build1 [221 kB] 98s Preconfiguring packages ... 98s Fetched 829 MB in 34s (24.2 MB/s) 98s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109140 files and directories currently installed.) 98s Preparing to unpack .../ncurses-bin_6.5+20250216-2_amd64.deb ... 98s Unpacking ncurses-bin (6.5+20250216-2) over (6.5+20250216-1) ... 98s Setting up ncurses-bin (6.5+20250216-2) ... 98s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109140 files and directories currently installed.) 98s Preparing to unpack .../libc-dev-bin_2.41-1ubuntu1_amd64.deb ... 98s Unpacking libc-dev-bin (2.41-1ubuntu1) over (2.40-4ubuntu1) ... 98s Preparing to unpack .../libc6-dev_2.41-1ubuntu1_amd64.deb ... 98s Unpacking libc6-dev:amd64 (2.41-1ubuntu1) over (2.40-4ubuntu1) ... 98s Preparing to unpack .../locales_2.41-1ubuntu1_all.deb ... 98s Unpacking locales (2.41-1ubuntu1) over (2.40-4ubuntu1) ... 99s Preparing to unpack .../libc6_2.41-1ubuntu1_amd64.deb ... 99s Checking for services that may need to be restarted... 99s Checking init scripts... 99s Checking for services that may need to be restarted... 99s Checking init scripts... 99s Stopping some services possibly affected by the upgrade (will be restarted later): 99s cron: stopping...done. 99s 99s Unpacking libc6:amd64 (2.41-1ubuntu1) over (2.40-4ubuntu1) ... 99s Setting up libc6:amd64 (2.41-1ubuntu1) ... 99s Checking for services that may need to be restarted... 99s Checking init scripts... 99s Restarting services possibly affected by the upgrade: 99s cron: restarting...done. 99s 99s Services restarted successfully. 99s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109141 files and directories currently installed.) 99s Preparing to unpack .../libc-bin_2.41-1ubuntu1_amd64.deb ... 99s Unpacking libc-bin (2.41-1ubuntu1) over (2.40-4ubuntu1) ... 100s Setting up libc-bin (2.41-1ubuntu1) ... 100s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109141 files and directories currently installed.) 100s Preparing to unpack .../linux-libc-dev_6.14.0-10.10_amd64.deb ... 100s Unpacking linux-libc-dev:amd64 (6.14.0-10.10) over (6.12.0-16.16) ... 100s Preparing to unpack .../libatomic1_15-20250222-0ubuntu1_amd64.deb ... 100s Unpacking libatomic1:amd64 (15-20250222-0ubuntu1) over (15-20250213-1ubuntu1) ... 100s Preparing to unpack .../gcc-15-base_15-20250222-0ubuntu1_amd64.deb ... 100s Unpacking gcc-15-base:amd64 (15-20250222-0ubuntu1) over (15-20250213-1ubuntu1) ... 100s Setting up gcc-15-base:amd64 (15-20250222-0ubuntu1) ... 100s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 100s Preparing to unpack .../libgcc-s1_15-20250222-0ubuntu1_amd64.deb ... 100s Unpacking libgcc-s1:amd64 (15-20250222-0ubuntu1) over (15-20250213-1ubuntu1) ... 100s Setting up libgcc-s1:amd64 (15-20250222-0ubuntu1) ... 100s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 100s Preparing to unpack .../libstdc++6_15-20250222-0ubuntu1_amd64.deb ... 100s Unpacking libstdc++6:amd64 (15-20250222-0ubuntu1) over (15-20250213-1ubuntu1) ... 100s Setting up libstdc++6:amd64 (15-20250222-0ubuntu1) ... 100s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 100s Preparing to unpack .../ncurses-base_6.5+20250216-2_all.deb ... 100s Unpacking ncurses-base (6.5+20250216-2) over (6.5+20250216-1) ... 100s Setting up ncurses-base (6.5+20250216-2) ... 101s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 101s Preparing to unpack .../ncurses-term_6.5+20250216-2_all.deb ... 101s Unpacking ncurses-term (6.5+20250216-2) over (6.5+20250216-1) ... 101s Preparing to unpack .../liblz4-1_1.10.0-4_amd64.deb ... 101s Unpacking liblz4-1:amd64 (1.10.0-4) over (1.10.0-3) ... 101s Setting up liblz4-1:amd64 (1.10.0-4) ... 101s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 101s Preparing to unpack .../liblzma5_5.6.4-1_amd64.deb ... 101s Unpacking liblzma5:amd64 (5.6.4-1) over (5.6.3-1) ... 101s Setting up liblzma5:amd64 (5.6.4-1) ... 101s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 101s Preparing to unpack .../libsystemd0_257.3-1ubuntu3_amd64.deb ... 101s Unpacking libsystemd0:amd64 (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 101s Setting up libsystemd0:amd64 (257.3-1ubuntu3) ... 101s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 101s Preparing to unpack .../libnss-systemd_257.3-1ubuntu3_amd64.deb ... 101s Unpacking libnss-systemd:amd64 (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 101s Preparing to unpack .../systemd-sysv_257.3-1ubuntu3_amd64.deb ... 101s Unpacking systemd-sysv (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 102s Preparing to unpack .../systemd-resolved_257.3-1ubuntu3_amd64.deb ... 102s Unpacking systemd-resolved (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 102s Preparing to unpack .../libpam-systemd_257.3-1ubuntu3_amd64.deb ... 102s Unpacking libpam-systemd:amd64 (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 102s Preparing to unpack .../libsystemd-shared_257.3-1ubuntu3_amd64.deb ... 102s Unpacking libsystemd-shared:amd64 (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 102s Setting up libsystemd-shared:amd64 (257.3-1ubuntu3) ... 102s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 102s Preparing to unpack .../systemd_257.3-1ubuntu3_amd64.deb ... 102s Unpacking systemd (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 102s Preparing to unpack .../systemd-timesyncd_257.3-1ubuntu3_amd64.deb ... 102s Unpacking systemd-timesyncd (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 102s Preparing to unpack .../systemd-cryptsetup_257.3-1ubuntu3_amd64.deb ... 102s Unpacking systemd-cryptsetup (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 102s Preparing to unpack .../udev_257.3-1ubuntu3_amd64.deb ... 102s Unpacking udev (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 102s Preparing to unpack .../libudev1_257.3-1ubuntu3_amd64.deb ... 102s Unpacking libudev1:amd64 (257.3-1ubuntu3) over (257.2-3ubuntu1) ... 102s Setting up libudev1:amd64 (257.3-1ubuntu3) ... 102s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 102s Preparing to unpack .../libaudit-common_1%3a4.0.2-2ubuntu2_all.deb ... 102s Unpacking libaudit-common (1:4.0.2-2ubuntu2) over (1:4.0.2-2ubuntu1) ... 102s Setting up libaudit-common (1:4.0.2-2ubuntu2) ... 103s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 103s Preparing to unpack .../libcap-ng0_0.8.5-4build1_amd64.deb ... 103s Unpacking libcap-ng0:amd64 (0.8.5-4build1) over (0.8.5-4) ... 103s Setting up libcap-ng0:amd64 (0.8.5-4build1) ... 103s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 103s Preparing to unpack .../libaudit1_1%3a4.0.2-2ubuntu2_amd64.deb ... 103s Unpacking libaudit1:amd64 (1:4.0.2-2ubuntu2) over (1:4.0.2-2ubuntu1) ... 103s Setting up libaudit1:amd64 (1:4.0.2-2ubuntu2) ... 103s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 103s Preparing to unpack .../libseccomp2_2.5.5-1ubuntu6_amd64.deb ... 103s Unpacking libseccomp2:amd64 (2.5.5-1ubuntu6) over (2.5.5-1ubuntu5) ... 103s Setting up libseccomp2:amd64 (2.5.5-1ubuntu6) ... 103s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 103s Preparing to unpack .../libselinux1_3.7-3ubuntu3_amd64.deb ... 103s Unpacking libselinux1:amd64 (3.7-3ubuntu3) over (3.7-3ubuntu2) ... 103s Setting up libselinux1:amd64 (3.7-3ubuntu3) ... 103s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 103s Preparing to unpack .../libapparmor1_4.1.0~beta5-0ubuntu8_amd64.deb ... 103s Unpacking libapparmor1:amd64 (4.1.0~beta5-0ubuntu8) over (4.1.0~beta5-0ubuntu5) ... 103s Preparing to unpack .../libapt-pkg7.0_2.9.33_amd64.deb ... 103s Unpacking libapt-pkg7.0:amd64 (2.9.33) over (2.9.31ubuntu1) ... 103s Setting up libapt-pkg7.0:amd64 (2.9.33) ... 103s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 103s Preparing to unpack .../archives/apt_2.9.33_amd64.deb ... 103s Unpacking apt (2.9.33) over (2.9.31ubuntu1) ... 103s Setting up apt (2.9.33) ... 104s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 104s Preparing to unpack .../apt-utils_2.9.33_amd64.deb ... 104s Unpacking apt-utils (2.9.33) over (2.9.31ubuntu1) ... 104s Preparing to unpack .../python3-minimal_3.13.2-2_amd64.deb ... 104s Unpacking python3-minimal (3.13.2-2) over (3.13.2-1) ... 104s Setting up python3-minimal (3.13.2-2) ... 105s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 105s Preparing to unpack .../0-python3_3.13.2-2_amd64.deb ... 105s Unpacking python3 (3.13.2-2) over (3.13.2-1) ... 105s Preparing to unpack .../1-libpython3.13_3.13.2-2_amd64.deb ... 105s Unpacking libpython3.13:amd64 (3.13.2-2) over (3.13.2-1) ... 105s Preparing to unpack .../2-media-types_13.0.0_all.deb ... 105s Unpacking media-types (13.0.0) over (12.0.0) ... 105s Preparing to unpack .../3-libncurses6_6.5+20250216-2_amd64.deb ... 105s Unpacking libncurses6:amd64 (6.5+20250216-2) over (6.5+20250216-1) ... 105s Preparing to unpack .../4-libncursesw6_6.5+20250216-2_amd64.deb ... 105s Unpacking libncursesw6:amd64 (6.5+20250216-2) over (6.5+20250216-1) ... 105s Preparing to unpack .../5-libtinfo6_6.5+20250216-2_amd64.deb ... 105s Unpacking libtinfo6:amd64 (6.5+20250216-2) over (6.5+20250216-1) ... 105s Setting up libtinfo6:amd64 (6.5+20250216-2) ... 105s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109146 files and directories currently installed.) 105s Preparing to unpack .../0-libsqlite3-0_3.46.1-2_amd64.deb ... 105s Unpacking libsqlite3-0:amd64 (3.46.1-2) over (3.46.1-1) ... 105s Preparing to unpack .../1-python3.13_3.13.2-2_amd64.deb ... 105s Unpacking python3.13 (3.13.2-2) over (3.13.2-1) ... 105s Preparing to unpack .../2-python3.13-minimal_3.13.2-2_amd64.deb ... 105s Unpacking python3.13-minimal (3.13.2-2) over (3.13.2-1) ... 105s Preparing to unpack .../3-libpython3.13-minimal_3.13.2-2_amd64.deb ... 105s Unpacking libpython3.13-minimal:amd64 (3.13.2-2) over (3.13.2-1) ... 106s Preparing to unpack .../4-libpython3.13-stdlib_3.13.2-2_amd64.deb ... 106s Unpacking libpython3.13-stdlib:amd64 (3.13.2-2) over (3.13.2-1) ... 106s Preparing to unpack .../5-libpython3-stdlib_3.13.2-2_amd64.deb ... 106s Unpacking libpython3-stdlib:amd64 (3.13.2-2) over (3.13.2-1) ... 106s Preparing to unpack .../6-rsync_3.4.1+ds1-3_amd64.deb ... 106s Unpacking rsync (3.4.1+ds1-3) over (3.4.1-0syncable1) ... 106s Selecting previously unselected package libdebuginfod-common. 106s Preparing to unpack .../7-libdebuginfod-common_0.192-4_all.deb ... 106s Unpacking libdebuginfod-common (0.192-4) ... 106s Preparing to unpack .../8-libsemanage-common_3.7-2.1build1_all.deb ... 106s Unpacking libsemanage-common (3.7-2.1build1) over (3.7-2.1) ... 106s Setting up libsemanage-common (3.7-2.1build1) ... 106s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109155 files and directories currently installed.) 106s Preparing to unpack .../libsemanage2_3.7-2.1build1_amd64.deb ... 106s Unpacking libsemanage2:amd64 (3.7-2.1build1) over (3.7-2.1) ... 106s Setting up libsemanage2:amd64 (3.7-2.1build1) ... 106s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109155 files and directories currently installed.) 106s Preparing to unpack .../libassuan9_3.0.2-2_amd64.deb ... 106s Unpacking libassuan9:amd64 (3.0.2-2) over (3.0.1-2) ... 106s Setting up libassuan9:amd64 (3.0.2-2) ... 106s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 109155 files and directories currently installed.) 106s Preparing to unpack .../00-gir1.2-girepository-2.0_1.83.4-1_amd64.deb ... 106s Unpacking gir1.2-girepository-2.0:amd64 (1.83.4-1) over (1.82.0-4) ... 106s Preparing to unpack .../01-gir1.2-glib-2.0_2.84.0-1_amd64.deb ... 106s Unpacking gir1.2-glib-2.0:amd64 (2.84.0-1) over (2.83.5-1) ... 106s Preparing to unpack .../02-libglib2.0-0t64_2.84.0-1_amd64.deb ... 106s Unpacking libglib2.0-0t64:amd64 (2.84.0-1) over (2.83.5-1) ... 106s Preparing to unpack .../03-libgirepository-1.0-1_1.83.4-1_amd64.deb ... 106s Unpacking libgirepository-1.0-1:amd64 (1.83.4-1) over (1.82.0-4) ... 106s Preparing to unpack .../04-libestr0_0.1.11-2_amd64.deb ... 106s Unpacking libestr0:amd64 (0.1.11-2) over (0.1.11-1build1) ... 107s Preparing to unpack .../05-libglib2.0-data_2.84.0-1_all.deb ... 107s Unpacking libglib2.0-data (2.84.0-1) over (2.83.5-1) ... 107s Preparing to unpack .../06-python3-newt_0.52.24-4ubuntu2_amd64.deb ... 107s Unpacking python3-newt:amd64 (0.52.24-4ubuntu2) over (0.52.24-4ubuntu1) ... 107s Preparing to unpack .../07-libnewt0.52_0.52.24-4ubuntu2_amd64.deb ... 107s Unpacking libnewt0.52:amd64 (0.52.24-4ubuntu2) over (0.52.24-4ubuntu1) ... 107s Preparing to unpack .../08-libxml2_2.12.7+dfsg+really2.9.14-0.2ubuntu5_amd64.deb ... 107s Unpacking libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.2ubuntu5) over (2.12.7+dfsg+really2.9.14-0.2ubuntu4) ... 107s Preparing to unpack .../09-python-apt-common_2.9.9build1_all.deb ... 107s Unpacking python-apt-common (2.9.9build1) over (2.9.9) ... 107s Preparing to unpack .../10-python3-apt_2.9.9build1_amd64.deb ... 107s Unpacking python3-apt (2.9.9build1) over (2.9.9) ... 107s Preparing to unpack .../11-python3-cffi-backend_1.17.1-2build2_amd64.deb ... 107s Unpacking python3-cffi-backend:amd64 (1.17.1-2build2) over (1.17.1-2build1) ... 107s Preparing to unpack .../12-python3-dbus_1.3.2-5build5_amd64.deb ... 107s Unpacking python3-dbus (1.3.2-5build5) over (1.3.2-5build4) ... 107s Preparing to unpack .../13-python3-gi_3.50.0-4build1_amd64.deb ... 107s Unpacking python3-gi (3.50.0-4build1) over (3.50.0-4) ... 107s Preparing to unpack .../14-python3-yaml_6.0.2-1build2_amd64.deb ... 107s Unpacking python3-yaml (6.0.2-1build2) over (6.0.2-1build1) ... 108s Preparing to unpack .../15-rsyslog_8.2412.0-2ubuntu2_amd64.deb ... 108s Unpacking rsyslog (8.2412.0-2ubuntu2) over (8.2412.0-2ubuntu1) ... 108s Preparing to unpack .../16-whiptail_0.52.24-4ubuntu2_amd64.deb ... 108s Unpacking whiptail (0.52.24-4ubuntu2) over (0.52.24-4ubuntu1) ... 108s Preparing to unpack .../17-ubuntu-minimal_1.549_amd64.deb ... 108s Unpacking ubuntu-minimal (1.549) over (1.548) ... 108s Preparing to unpack .../18-apparmor_4.1.0~beta5-0ubuntu8_amd64.deb ... 108s Unpacking apparmor (4.1.0~beta5-0ubuntu8) over (4.1.0~beta5-0ubuntu5) ... 109s Preparing to unpack .../19-dosfstools_4.2-1.2_amd64.deb ... 109s Unpacking dosfstools (4.2-1.2) over (4.2-1.1build1) ... 109s Preparing to unpack .../20-libnl-genl-3-200_3.7.0-1_amd64.deb ... 109s Unpacking libnl-genl-3-200:amd64 (3.7.0-1) over (3.7.0-0.3build2) ... 109s Preparing to unpack .../21-libnl-route-3-200_3.7.0-1_amd64.deb ... 109s Unpacking libnl-route-3-200:amd64 (3.7.0-1) over (3.7.0-0.3build2) ... 109s Preparing to unpack .../22-libnl-3-200_3.7.0-1_amd64.deb ... 109s Unpacking libnl-3-200:amd64 (3.7.0-1) over (3.7.0-0.3build2) ... 109s Preparing to unpack .../23-parted_3.6-5_amd64.deb ... 109s Unpacking parted (3.6-5) over (3.6-4build1) ... 109s Preparing to unpack .../24-libparted2t64_3.6-5_amd64.deb ... 109s Adding 'diversion of /lib/x86_64-linux-gnu/libparted.so.2 to /lib/x86_64-linux-gnu/libparted.so.2.usr-is-merged by libparted2t64' 109s Adding 'diversion of /lib/x86_64-linux-gnu/libparted.so.2.0.5 to /lib/x86_64-linux-gnu/libparted.so.2.0.5.usr-is-merged by libparted2t64' 109s Unpacking libparted2t64:amd64 (3.6-5) over (3.6-4build1) ... 109s Preparing to unpack .../25-pci.ids_0.0~2025.03.09-1_all.deb ... 109s Unpacking pci.ids (0.0~2025.03.09-1) over (0.0~2025.02.12-1) ... 109s Preparing to unpack .../26-pciutils_1%3a3.13.0-2_amd64.deb ... 109s Unpacking pciutils (1:3.13.0-2) over (1:3.13.0-1) ... 109s Preparing to unpack .../27-libpci3_1%3a3.13.0-2_amd64.deb ... 109s Unpacking libpci3:amd64 (1:3.13.0-2) over (1:3.13.0-1) ... 109s Preparing to unpack .../28-strace_6.13+ds-1ubuntu1_amd64.deb ... 109s Unpacking strace (6.13+ds-1ubuntu1) over (6.11-0ubuntu1) ... 109s Preparing to unpack .../29-xz-utils_5.6.4-1_amd64.deb ... 109s Unpacking xz-utils (5.6.4-1) over (5.6.3-1) ... 109s Preparing to unpack .../30-ubuntu-standard_1.549_amd64.deb ... 109s Unpacking ubuntu-standard (1.549) over (1.548) ... 109s Preparing to unpack .../31-libgprofng0_2.44-3ubuntu1_amd64.deb ... 109s Unpacking libgprofng0:amd64 (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 109s Preparing to unpack .../32-libctf0_2.44-3ubuntu1_amd64.deb ... 109s Unpacking libctf0:amd64 (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 109s Preparing to unpack .../33-libctf-nobfd0_2.44-3ubuntu1_amd64.deb ... 109s Unpacking libctf-nobfd0:amd64 (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 110s Preparing to unpack .../34-binutils-x86-64-linux-gnu_2.44-3ubuntu1_amd64.deb ... 110s Unpacking binutils-x86-64-linux-gnu (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 110s Preparing to unpack .../35-libbinutils_2.44-3ubuntu1_amd64.deb ... 110s Unpacking libbinutils:amd64 (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 110s Preparing to unpack .../36-binutils_2.44-3ubuntu1_amd64.deb ... 110s Unpacking binutils (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 110s Preparing to unpack .../37-binutils-common_2.44-3ubuntu1_amd64.deb ... 110s Unpacking binutils-common:amd64 (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 110s Preparing to unpack .../38-libsframe1_2.44-3ubuntu1_amd64.deb ... 110s Unpacking libsframe1:amd64 (2.44-3ubuntu1) over (2.44-2ubuntu1) ... 110s Preparing to unpack .../39-hwdata_0.393-3_all.deb ... 110s Unpacking hwdata (0.393-3) over (0.392-1) ... 110s Selecting previously unselected package pnp.ids. 110s Preparing to unpack .../40-pnp.ids_0.393-3_all.deb ... 110s Unpacking pnp.ids (0.393-3) ... 110s Preparing to unpack .../41-linux-tools-common_6.14.0-10.10_all.deb ... 110s Unpacking linux-tools-common (6.14.0-10.10) over (6.12.0-16.16) ... 110s Selecting previously unselected package bpftool. 110s Preparing to unpack .../42-bpftool_7.6.0+6.14.0-10.10_amd64.deb ... 110s Unpacking bpftool (7.6.0+6.14.0-10.10) ... 110s Preparing to unpack .../43-python3-markupsafe_2.1.5-1build4_amd64.deb ... 110s Unpacking python3-markupsafe (2.1.5-1build4) over (2.1.5-1build3) ... 110s Preparing to unpack .../44-python3-jinja2_3.1.5-2ubuntu1_all.deb ... 110s Unpacking python3-jinja2 (3.1.5-2ubuntu1) over (3.1.5-2) ... 110s Preparing to unpack .../45-cloud-init-base_25.1-0ubuntu3_all.deb ... 110s Unpacking cloud-init-base (25.1-0ubuntu3) over (25.1-0ubuntu2) ... 111s Preparing to unpack .../46-libbrotli1_1.1.0-2build4_amd64.deb ... 111s Unpacking libbrotli1:amd64 (1.1.0-2build4) over (1.1.0-2build3) ... 111s Preparing to unpack .../47-curl_8.12.1-3ubuntu1_amd64.deb ... 111s Unpacking curl (8.12.1-3ubuntu1) over (8.12.1-2ubuntu1) ... 111s Preparing to unpack .../48-libcurl4t64_8.12.1-3ubuntu1_amd64.deb ... 111s Unpacking libcurl4t64:amd64 (8.12.1-3ubuntu1) over (8.12.1-2ubuntu1) ... 111s Preparing to unpack .../49-exfatprogs_1.2.8-1_amd64.deb ... 111s Unpacking exfatprogs (1.2.8-1) over (1.2.7-3) ... 111s Preparing to unpack .../50-libcurl3t64-gnutls_8.12.1-3ubuntu1_amd64.deb ... 111s Unpacking libcurl3t64-gnutls:amd64 (8.12.1-3ubuntu1) over (8.12.1-2ubuntu1) ... 111s Preparing to unpack .../51-fwupd_2.0.6-4_amd64.deb ... 111s Unpacking fwupd (2.0.6-4) over (2.0.6-3) ... 111s Preparing to unpack .../52-libfwupd3_2.0.6-4_amd64.deb ... 111s Unpacking libfwupd3:amd64 (2.0.6-4) over (2.0.6-3) ... 111s Preparing to unpack .../53-libmm-glib0_1.23.4-0ubuntu3_amd64.deb ... 111s Unpacking libmm-glib0:amd64 (1.23.4-0ubuntu3) over (1.23.4-0ubuntu2) ... 111s Preparing to unpack .../54-htop_3.4.0-2_amd64.deb ... 111s Unpacking htop (3.4.0-2) over (3.3.0-5) ... 111s Preparing to unpack .../55-linux-firmware_20250310.git9e1370d3-0ubuntu1_amd64.deb ... 111s Unpacking linux-firmware (20250310.git9e1370d3-0ubuntu1) over (20250204.git0fd450ee-0ubuntu1) ... 114s Preparing to unpack .../56-initramfs-tools_0.146ubuntu1_all.deb ... 114s Unpacking initramfs-tools (0.146ubuntu1) over (0.145ubuntu3) ... 114s Preparing to unpack .../57-initramfs-tools-core_0.146ubuntu1_all.deb ... 114s Unpacking initramfs-tools-core (0.146ubuntu1) over (0.145ubuntu3) ... 114s Preparing to unpack .../58-initramfs-tools-bin_0.146ubuntu1_amd64.deb ... 114s Unpacking initramfs-tools-bin (0.146ubuntu1) over (0.145ubuntu3) ... 114s Selecting previously unselected package libdebuginfod1t64:amd64. 114s Preparing to unpack .../59-libdebuginfod1t64_0.192-4_amd64.deb ... 114s Unpacking libdebuginfod1t64:amd64 (0.192-4) ... 114s Preparing to unpack .../60-libftdi1-2_1.5-8build1_amd64.deb ... 114s Unpacking libftdi1-2:amd64 (1.5-8build1) over (1.5-8) ... 114s Preparing to unpack .../61-libgpgme11t64_1.24.2-1ubuntu2_amd64.deb ... 114s Unpacking libgpgme11t64:amd64 (1.24.2-1ubuntu2) over (1.24.2-1ubuntu1) ... 114s Preparing to unpack .../62-libjemalloc2_5.3.0-3_amd64.deb ... 114s Unpacking libjemalloc2:amd64 (5.3.0-3) over (5.3.0-2build1) ... 114s Selecting previously unselected package linux-modules-6.14.0-10-generic. 114s Preparing to unpack .../63-linux-modules-6.14.0-10-generic_6.14.0-10.10_amd64.deb ... 114s Unpacking linux-modules-6.14.0-10-generic (6.14.0-10.10) ... 115s Selecting previously unselected package linux-image-6.14.0-10-generic. 115s Preparing to unpack .../64-linux-image-6.14.0-10-generic_6.14.0-10.10_amd64.deb ... 115s Unpacking linux-image-6.14.0-10-generic (6.14.0-10.10) ... 115s Selecting previously unselected package linux-modules-extra-6.14.0-10-generic. 115s Preparing to unpack .../65-linux-modules-extra-6.14.0-10-generic_6.14.0-10.10_amd64.deb ... 115s Unpacking linux-modules-extra-6.14.0-10-generic (6.14.0-10.10) ... 116s Preparing to unpack .../66-linux-generic_6.14.0-10.10_amd64.deb ... 116s Unpacking linux-generic (6.14.0-10.10) over (6.12.0-16.16+2) ... 116s Preparing to unpack .../67-linux-image-generic_6.14.0-10.10_amd64.deb ... 116s Unpacking linux-image-generic (6.14.0-10.10) over (6.12.0-16.16+2) ... 116s Preparing to unpack .../68-linux-virtual_6.14.0-10.10_amd64.deb ... 116s Unpacking linux-virtual (6.14.0-10.10) over (6.12.0-16.16+2) ... 116s Preparing to unpack .../69-linux-image-virtual_6.14.0-10.10_amd64.deb ... 116s Unpacking linux-image-virtual (6.14.0-10.10) over (6.12.0-16.16+2) ... 116s Preparing to unpack .../70-linux-headers-virtual_6.14.0-10.10_amd64.deb ... 116s Unpacking linux-headers-virtual (6.14.0-10.10) over (6.12.0-16.16+2) ... 116s Selecting previously unselected package linux-headers-6.14.0-10. 116s Preparing to unpack .../71-linux-headers-6.14.0-10_6.14.0-10.10_all.deb ... 116s Unpacking linux-headers-6.14.0-10 (6.14.0-10.10) ... 119s Selecting previously unselected package linux-headers-6.14.0-10-generic. 119s Preparing to unpack .../72-linux-headers-6.14.0-10-generic_6.14.0-10.10_amd64.deb ... 119s Unpacking linux-headers-6.14.0-10-generic (6.14.0-10.10) ... 120s Preparing to unpack .../73-linux-headers-generic_6.14.0-10.10_amd64.deb ... 120s Unpacking linux-headers-generic (6.14.0-10.10) over (6.12.0-16.16+2) ... 121s Selecting previously unselected package linux-perf. 121s Preparing to unpack .../74-linux-perf_6.14.0-10.10_amd64.deb ... 121s Unpacking linux-perf (6.14.0-10.10) ... 121s Selecting previously unselected package linux-tools-6.14.0-10. 121s Preparing to unpack .../75-linux-tools-6.14.0-10_6.14.0-10.10_amd64.deb ... 121s Unpacking linux-tools-6.14.0-10 (6.14.0-10.10) ... 121s Selecting previously unselected package linux-tools-6.14.0-10-generic. 121s Preparing to unpack .../76-linux-tools-6.14.0-10-generic_6.14.0-10.10_amd64.deb ... 121s Unpacking linux-tools-6.14.0-10-generic (6.14.0-10.10) ... 121s Preparing to unpack .../77-pinentry-curses_1.3.1-2ubuntu3_amd64.deb ... 121s Unpacking pinentry-curses (1.3.1-2ubuntu3) over (1.3.1-2ubuntu2) ... 121s Preparing to unpack .../78-python3-lazr.uri_1.0.6-6_all.deb ... 121s Unpacking python3-lazr.uri (1.0.6-6) over (1.0.6-5) ... 121s Preparing to unpack .../79-python3-rpds-py_0.21.0-2ubuntu2_amd64.deb ... 121s Unpacking python3-rpds-py (0.21.0-2ubuntu2) over (0.21.0-2ubuntu1) ... 121s Preparing to unpack .../80-python3-systemd_235-1build6_amd64.deb ... 121s Unpacking python3-systemd (235-1build6) over (235-1build5) ... 121s Preparing to unpack .../81-python3.13-gdbm_3.13.2-2_amd64.deb ... 121s Unpacking python3.13-gdbm (3.13.2-2) over (3.13.2-1) ... 121s Preparing to unpack .../82-ubuntu-kernel-accessories_1.549_amd64.deb ... 121s Unpacking ubuntu-kernel-accessories (1.549) over (1.548) ... 121s Preparing to unpack .../83-cloud-init_25.1-0ubuntu3_all.deb ... 121s Unpacking cloud-init (25.1-0ubuntu3) over (25.1-0ubuntu2) ... 121s Preparing to unpack .../84-python3-bcrypt_4.2.0-2.1build1_amd64.deb ... 121s Unpacking python3-bcrypt (4.2.0-2.1build1) over (4.2.0-2.1) ... 121s Setting up linux-headers-6.14.0-10 (6.14.0-10.10) ... 121s Setting up media-types (13.0.0) ... 121s Installing new version of config file /etc/mime.types ... 121s Setting up linux-headers-6.14.0-10-generic (6.14.0-10.10) ... 121s Setting up ubuntu-kernel-accessories (1.549) ... 121s Setting up libapparmor1:amd64 (4.1.0~beta5-0ubuntu8) ... 121s Setting up pci.ids (0.0~2025.03.09-1) ... 121s Setting up libnewt0.52:amd64 (0.52.24-4ubuntu2) ... 121s Setting up apt-utils (2.9.33) ... 121s Setting up libdebuginfod-common (0.192-4) ... 122s Setting up exfatprogs (1.2.8-1) ... 122s Setting up linux-firmware (20250310.git9e1370d3-0ubuntu1) ... 122s Setting up bpftool (7.6.0+6.14.0-10.10) ... 122s Setting up libestr0:amd64 (0.1.11-2) ... 122s Setting up libbrotli1:amd64 (1.1.0-2build4) ... 122s Setting up libsqlite3-0:amd64 (3.46.1-2) ... 122s Setting up dosfstools (4.2-1.2) ... 122s Setting up rsyslog (8.2412.0-2ubuntu2) ... 122s info: The user `syslog' is already a member of `adm'. 124s Setting up binutils-common:amd64 (2.44-3ubuntu1) ... 124s Setting up libcurl3t64-gnutls:amd64 (8.12.1-3ubuntu1) ... 124s Setting up linux-libc-dev:amd64 (6.14.0-10.10) ... 124s Setting up libctf-nobfd0:amd64 (2.44-3ubuntu1) ... 124s Setting up systemd (257.3-1ubuntu3) ... 124s /usr/lib/tmpfiles.d/legacy.conf:14: Duplicate line for path "/run/lock", ignoring. 124s Created symlink '/run/systemd/system/tmp.mount' → '/dev/null'. 124s /usr/lib/tmpfiles.d/legacy.conf:14: Duplicate line for path "/run/lock", ignoring. 124s Setting up libparted2t64:amd64 (3.6-5) ... 124s Removing 'diversion of /lib/x86_64-linux-gnu/libparted.so.2 to /lib/x86_64-linux-gnu/libparted.so.2.usr-is-merged by libparted2t64' 124s Removing 'diversion of /lib/x86_64-linux-gnu/libparted.so.2.0.5 to /lib/x86_64-linux-gnu/libparted.so.2.0.5.usr-is-merged by libparted2t64' 124s Setting up linux-headers-generic (6.14.0-10.10) ... 124s Setting up libjemalloc2:amd64 (5.3.0-3) ... 124s Setting up locales (2.41-1ubuntu1) ... 124s Installing new version of config file /etc/locale.alias ... 124s Generating locales (this might take a while)... 126s en_US.UTF-8... done 126s Generation complete. 126s Setting up libsframe1:amd64 (2.44-3ubuntu1) ... 126s Setting up libpython3.13-minimal:amd64 (3.13.2-2) ... 126s Setting up apparmor (4.1.0~beta5-0ubuntu8) ... 126s Installing new version of config file /etc/apparmor.d/fusermount3 ... 126s Installing new version of config file /etc/apparmor.d/lsusb ... 126s Installing new version of config file /etc/apparmor.d/openvpn ... 127s Reloading AppArmor profiles 129s Setting up libftdi1-2:amd64 (1.5-8build1) ... 129s Setting up libglib2.0-data (2.84.0-1) ... 129s Setting up systemd-cryptsetup (257.3-1ubuntu3) ... 129s Setting up libncurses6:amd64 (6.5+20250216-2) ... 129s Setting up strace (6.13+ds-1ubuntu1) ... 129s Setting up xz-utils (5.6.4-1) ... 129s Setting up systemd-timesyncd (257.3-1ubuntu3) ... 129s systemd-time-wait-sync.service is a disabled or a static unit not running, not starting it. 129s Setting up libatomic1:amd64 (15-20250222-0ubuntu1) ... 129s Setting up udev (257.3-1ubuntu3) ... 130s Setting up linux-modules-6.14.0-10-generic (6.14.0-10.10) ... 132s Setting up libncursesw6:amd64 (6.5+20250216-2) ... 132s Setting up libpci3:amd64 (1:3.13.0-2) ... 132s Setting up whiptail (0.52.24-4ubuntu2) ... 132s Setting up python-apt-common (2.9.9build1) ... 132s Setting up pnp.ids (0.393-3) ... 132s Setting up libnl-3-200:amd64 (3.7.0-1) ... 132s Setting up python3.13-minimal (3.13.2-2) ... 133s Setting up libgpgme11t64:amd64 (1.24.2-1ubuntu2) ... 133s Setting up libbinutils:amd64 (2.44-3ubuntu1) ... 133s Setting up libc-dev-bin (2.41-1ubuntu1) ... 133s Setting up libpython3.13-stdlib:amd64 (3.13.2-2) ... 133s Setting up libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.2ubuntu5) ... 133s Setting up rsync (3.4.1+ds1-3) ... 134s rsync.service is a disabled or a static unit not running, not starting it. 134s Setting up python3.13-gdbm (3.13.2-2) ... 134s Setting up libpython3-stdlib:amd64 (3.13.2-2) ... 134s Setting up systemd-resolved (257.3-1ubuntu3) ... 134s Setting up initramfs-tools-bin (0.146ubuntu1) ... 134s Setting up ncurses-term (6.5+20250216-2) ... 134s Setting up libctf0:amd64 (2.44-3ubuntu1) ... 134s Setting up libpython3.13:amd64 (3.13.2-2) ... 134s Setting up pinentry-curses (1.3.1-2ubuntu3) ... 134s Setting up libdebuginfod1t64:amd64 (0.192-4) ... 134s Setting up systemd-sysv (257.3-1ubuntu3) ... 134s Setting up linux-headers-virtual (6.14.0-10.10) ... 134s Setting up libcurl4t64:amd64 (8.12.1-3ubuntu1) ... 134s Setting up python3.13 (3.13.2-2) ... 135s Setting up htop (3.4.0-2) ... 135s Setting up linux-image-6.14.0-10-generic (6.14.0-10.10) ... 138s I: /boot/vmlinuz.old is now a symlink to vmlinuz-6.12.0-16-generic 138s I: /boot/initrd.img.old is now a symlink to initrd.img-6.12.0-16-generic 138s I: /boot/vmlinuz is now a symlink to vmlinuz-6.14.0-10-generic 138s I: /boot/initrd.img is now a symlink to initrd.img-6.14.0-10-generic 138s Setting up parted (3.6-5) ... 138s Setting up libnss-systemd:amd64 (257.3-1ubuntu3) ... 138s Setting up python3 (3.13.2-2) ... 138s Setting up python3-newt:amd64 (0.52.24-4ubuntu2) ... 138s Setting up python3-markupsafe (2.1.5-1build4) ... 138s Setting up linux-modules-extra-6.14.0-10-generic (6.14.0-10.10) ... 140s Setting up libnl-route-3-200:amd64 (3.7.0-1) ... 140s Setting up hwdata (0.393-3) ... 140s Setting up python3-jinja2 (3.1.5-2ubuntu1) ... 141s Setting up libglib2.0-0t64:amd64 (2.84.0-1) ... 141s No schema files found: doing nothing. 141s Setting up libgprofng0:amd64 (2.44-3ubuntu1) ... 141s Setting up linux-perf (6.14.0-10.10) ... 141s Setting up gir1.2-glib-2.0:amd64 (2.84.0-1) ... 141s Setting up pciutils (1:3.13.0-2) ... 141s Setting up python3-rpds-py (0.21.0-2ubuntu2) ... 141s Setting up libmm-glib0:amd64 (1.23.4-0ubuntu3) ... 141s Setting up libnl-genl-3-200:amd64 (3.7.0-1) ... 141s Setting up libpam-systemd:amd64 (257.3-1ubuntu3) ... 141s Setting up libc6-dev:amd64 (2.41-1ubuntu1) ... 141s Setting up libgirepository-1.0-1:amd64 (1.83.4-1) ... 141s Setting up curl (8.12.1-3ubuntu1) ... 141s Setting up linux-image-virtual (6.14.0-10.10) ... 141s Setting up initramfs-tools-core (0.146ubuntu1) ... 141s Setting up linux-tools-common (6.14.0-10.10) ... 141s Setting up python3-systemd (235-1build6) ... 141s Setting up python3-cffi-backend:amd64 (1.17.1-2build2) ... 141s Setting up binutils-x86-64-linux-gnu (2.44-3ubuntu1) ... 141s Setting up linux-image-generic (6.14.0-10.10) ... 141s Setting up python3-dbus (1.3.2-5build5) ... 141s Setting up linux-tools-6.14.0-10 (6.14.0-10.10) ... 141s Setting up initramfs-tools (0.146ubuntu1) ... 141s Installing new version of config file /etc/kernel/postinst.d/initramfs-tools ... 141s Installing new version of config file /etc/kernel/postrm.d/initramfs-tools ... 141s update-initramfs: deferring update (trigger activated) 141s Setting up linux-generic (6.14.0-10.10) ... 141s Setting up ubuntu-minimal (1.549) ... 141s Setting up python3-apt (2.9.9build1) ... 141s Setting up python3-bcrypt (4.2.0-2.1build1) ... 141s Setting up python3-yaml (6.0.2-1build2) ... 142s Setting up libfwupd3:amd64 (2.0.6-4) ... 142s Setting up python3-lazr.uri (1.0.6-6) ... 142s Setting up binutils (2.44-3ubuntu1) ... 142s Setting up ubuntu-standard (1.549) ... 142s Setting up cloud-init-base (25.1-0ubuntu3) ... 143s Setting up linux-virtual (6.14.0-10.10) ... 143s Setting up gir1.2-girepository-2.0:amd64 (1.83.4-1) ... 143s Setting up python3-gi (3.50.0-4build1) ... 144s Setting up linux-tools-6.14.0-10-generic (6.14.0-10.10) ... 144s Setting up fwupd (2.0.6-4) ... 144s fwupd-refresh.service is a disabled or a static unit not running, not starting it. 144s fwupd.service is a disabled or a static unit not running, not starting it. 144s Setting up cloud-init (25.1-0ubuntu3) ... 144s Processing triggers for man-db (2.13.0-1) ... 146s Processing triggers for dbus (1.16.2-1ubuntu1) ... 146s Processing triggers for shared-mime-info (2.4-5) ... 146s Warning: program compiled against libxml 212 using older 209 146s Processing triggers for libc-bin (2.41-1ubuntu1) ... 146s Processing triggers for linux-image-6.14.0-10-generic (6.14.0-10.10) ... 146s /etc/kernel/postinst.d/initramfs-tools: 146s update-initramfs: Generating /boot/initrd.img-6.14.0-10-generic 146s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 157s /etc/kernel/postinst.d/zz-update-grub: 157s Sourcing file `/etc/default/grub' 157s Sourcing file `/etc/default/grub.d/50-cloudimg-settings.cfg' 157s Sourcing file `/etc/default/grub.d/90-autopkgtest.cfg' 157s Generating grub configuration file ... 157s Found linux image: /boot/vmlinuz-6.14.0-10-generic 157s Found initrd image: /boot/initrd.img-6.14.0-10-generic 157s Found linux image: /boot/vmlinuz-6.12.0-16-generic 157s Found initrd image: /boot/initrd.img-6.12.0-16-generic 157s Found linux image: /boot/vmlinuz-6.11.0-8-generic 157s Found initrd image: /boot/initrd.img-6.11.0-8-generic 158s Warning: os-prober will not be executed to detect other bootable partitions. 158s Systems on them will not be added to the GRUB boot configuration. 158s Check GRUB_DISABLE_OS_PROBER documentation entry. 158s Adding boot menu entry for UEFI Firmware Settings ... 158s done 158s Processing triggers for initramfs-tools (0.146ubuntu1) ... 158s update-initramfs: Generating /boot/initrd.img-6.14.0-10-generic 158s W: No lz4 in /usr/bin:/sbin:/bin, using gzip 170s Reading package lists... 170s Building dependency tree... 170s Reading state information... 170s Solving dependencies... 170s The following packages will be REMOVED: 170s libnl-genl-3-200* libnsl2* libpython3.12-minimal* libpython3.12-stdlib* 170s libpython3.12t64* linux-headers-6.11.0-8* linux-headers-6.11.0-8-generic* 170s linux-headers-6.12.0-16* linux-headers-6.12.0-16-generic* 170s linux-image-6.11.0-8-generic* linux-image-6.12.0-16-generic* 170s linux-modules-6.11.0-8-generic* linux-modules-6.12.0-16-generic* 170s linux-modules-extra-6.12.0-16-generic* linux-tools-6.11.0-8* 170s linux-tools-6.11.0-8-generic* linux-tools-6.12.0-16* 170s linux-tools-6.12.0-16-generic* 171s 0 upgraded, 0 newly installed, 18 to remove and 5 not upgraded. 171s After this operation, 545 MB disk space will be freed. 171s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 148643 files and directories currently installed.) 171s Removing libnl-genl-3-200:amd64 (3.7.0-1) ... 171s Removing linux-tools-6.11.0-8-generic (6.11.0-8.8) ... 171s Removing linux-tools-6.11.0-8 (6.11.0-8.8) ... 171s Removing libpython3.12t64:amd64 (3.12.9-1) ... 171s Removing libpython3.12-stdlib:amd64 (3.12.9-1) ... 171s Removing libnsl2:amd64 (1.3.0-3build3) ... 171s Removing libpython3.12-minimal:amd64 (3.12.9-1) ... 171s Removing linux-headers-6.11.0-8-generic (6.11.0-8.8) ... 172s Removing linux-headers-6.11.0-8 (6.11.0-8.8) ... 174s Removing linux-headers-6.12.0-16-generic (6.12.0-16.16) ... 174s Removing linux-headers-6.12.0-16 (6.12.0-16.16) ... 176s Removing linux-image-6.11.0-8-generic (6.11.0-8.8) ... 177s /etc/kernel/postrm.d/initramfs-tools: 177s update-initramfs: Deleting /boot/initrd.img-6.11.0-8-generic 177s /etc/kernel/postrm.d/zz-update-grub: 177s Sourcing file `/etc/default/grub' 177s Sourcing file `/etc/default/grub.d/50-cloudimg-settings.cfg' 177s Sourcing file `/etc/default/grub.d/90-autopkgtest.cfg' 177s Generating grub configuration file ... 177s Found linux image: /boot/vmlinuz-6.14.0-10-generic 177s Found initrd image: /boot/initrd.img-6.14.0-10-generic 177s Found linux image: /boot/vmlinuz-6.12.0-16-generic 177s Found initrd image: /boot/initrd.img-6.12.0-16-generic 178s Warning: os-prober will not be executed to detect other bootable partitions. 178s Systems on them will not be added to the GRUB boot configuration. 178s Check GRUB_DISABLE_OS_PROBER documentation entry. 178s Adding boot menu entry for UEFI Firmware Settings ... 178s done 178s Removing linux-image-6.12.0-16-generic (6.12.0-16.16) ... 178s W: Removing the running kernel 178s I: /boot/vmlinuz.old is now a symlink to vmlinuz-6.14.0-10-generic 178s I: /boot/initrd.img.old is now a symlink to initrd.img-6.14.0-10-generic 178s /etc/kernel/postrm.d/initramfs-tools: 178s update-initramfs: Deleting /boot/initrd.img-6.12.0-16-generic 178s /etc/kernel/postrm.d/zz-update-grub: 178s Sourcing file `/etc/default/grub' 178s Sourcing file `/etc/default/grub.d/50-cloudimg-settings.cfg' 178s Sourcing file `/etc/default/grub.d/90-autopkgtest.cfg' 178s Generating grub configuration file ... 178s Found linux image: /boot/vmlinuz-6.14.0-10-generic 178s Found initrd image: /boot/initrd.img-6.14.0-10-generic 178s Warning: os-prober will not be executed to detect other bootable partitions. 178s Systems on them will not be added to the GRUB boot configuration. 178s Check GRUB_DISABLE_OS_PROBER documentation entry. 178s Adding boot menu entry for UEFI Firmware Settings ... 178s done 178s Removing linux-modules-6.11.0-8-generic (6.11.0-8.8) ... 179s Removing linux-modules-extra-6.12.0-16-generic (6.12.0-16.16) ... 180s Removing linux-modules-6.12.0-16-generic (6.12.0-16.16) ... 180s Removing linux-tools-6.12.0-16-generic (6.12.0-16.16) ... 180s Removing linux-tools-6.12.0-16 (6.12.0-16.16) ... 180s Processing triggers for libc-bin (2.41-1ubuntu1) ... 180s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 76972 files and directories currently installed.) 180s Purging configuration files for linux-image-6.11.0-8-generic (6.11.0-8.8) ... 180s Purging configuration files for libpython3.12-minimal:amd64 (3.12.9-1) ... 180s Purging configuration files for linux-modules-extra-6.12.0-16-generic (6.12.0-16.16) ... 180s Purging configuration files for linux-modules-6.12.0-16-generic (6.12.0-16.16) ... 180s dpkg: warning: while removing linux-modules-6.12.0-16-generic, directory '/lib/modules/6.12.0-16-generic' not empty so not removed 180s Purging configuration files for linux-modules-6.11.0-8-generic (6.11.0-8.8) ... 181s Purging configuration files for linux-image-6.12.0-16-generic (6.12.0-16.16) ... 181s rmdir: failed to remove '/lib/modules/6.12.0-16-generic': Directory not empty 181s autopkgtest [22:13:06]: upgrading testbed (apt dist-upgrade and autopurge) 181s Reading package lists... 181s Building dependency tree... 181s Reading state information... 182s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 182s Starting 2 pkgProblemResolver with broken count: 0 182s Done 182s Entering ResolveByKeep 182s 183s Calculating upgrade... 183s The following packages will be upgraded: 183s libc-bin libc-dev-bin libc6 libc6-dev locales 183s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 183s Need to get 10.5 MB of archives. 183s After this operation, 1024 B of additional disk space will be used. 183s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 libc6-dev amd64 2.41-1ubuntu2 [2183 kB] 184s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 libc-dev-bin amd64 2.41-1ubuntu2 [24.7 kB] 184s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 libc6 amd64 2.41-1ubuntu2 [3327 kB] 184s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 libc-bin amd64 2.41-1ubuntu2 [700 kB] 184s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 locales all 2.41-1ubuntu2 [4246 kB] 185s Preconfiguring packages ... 185s Fetched 10.5 MB in 1s (8728 kB/s) 185s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 76968 files and directories currently installed.) 185s Preparing to unpack .../libc6-dev_2.41-1ubuntu2_amd64.deb ... 185s Unpacking libc6-dev:amd64 (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 185s Preparing to unpack .../libc-dev-bin_2.41-1ubuntu2_amd64.deb ... 185s Unpacking libc-dev-bin (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 185s Preparing to unpack .../libc6_2.41-1ubuntu2_amd64.deb ... 185s Unpacking libc6:amd64 (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 185s Setting up libc6:amd64 (2.41-1ubuntu2) ... 185s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 76968 files and directories currently installed.) 185s Preparing to unpack .../libc-bin_2.41-1ubuntu2_amd64.deb ... 185s Unpacking libc-bin (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 185s Setting up libc-bin (2.41-1ubuntu2) ... 185s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 76968 files and directories currently installed.) 185s Preparing to unpack .../locales_2.41-1ubuntu2_all.deb ... 185s Unpacking locales (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 186s Setting up locales (2.41-1ubuntu2) ... 186s Generating locales (this might take a while)... 188s en_US.UTF-8... done 188s Generation complete. 188s Setting up libc-dev-bin (2.41-1ubuntu2) ... 188s Setting up libc6-dev:amd64 (2.41-1ubuntu2) ... 188s Processing triggers for man-db (2.13.0-1) ... 188s Processing triggers for systemd (257.3-1ubuntu3) ... 191s Reading package lists... 191s Building dependency tree... 191s Reading state information... 191s Starting pkgProblemResolver with broken count: 0 191s Starting 2 pkgProblemResolver with broken count: 0 191s Done 191s Solving dependencies... 191s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 191s autopkgtest [22:13:16]: rebooting testbed after setup commands that affected boot 214s autopkgtest [22:13:39]: testbed running kernel: Linux 6.14.0-10-generic #10-Ubuntu SMP PREEMPT_DYNAMIC Wed Mar 12 16:07:00 UTC 2025 216s autopkgtest [22:13:41]: @@@@@@@@@@@@@@@@@@@@ apt-source r-cran-git2r 218s Get:1 http://ftpmaster.internal/ubuntu plucky/universe r-cran-git2r 0.35.0-1build1 (dsc) [2100 B] 218s Get:2 http://ftpmaster.internal/ubuntu plucky/universe r-cran-git2r 0.35.0-1build1 (tar) [237 kB] 218s Get:3 http://ftpmaster.internal/ubuntu plucky/universe r-cran-git2r 0.35.0-1build1 (diff) [3100 B] 218s gpgv: Signature made Sat Feb 22 06:18:41 2025 UTC 218s gpgv: using RSA key 5C7ABEA20F8630459CC8C8B5E27F2CF8458C2FA4 218s gpgv: Can't check signature: No public key 218s dpkg-source: warning: cannot verify inline signature for ./r-cran-git2r_0.35.0-1build1.dsc: no acceptable signature found 219s autopkgtest [22:13:44]: testing package r-cran-git2r version 0.35.0-1build1 219s autopkgtest [22:13:44]: build not needed 220s autopkgtest [22:13:45]: test run-unit-test: preparing testbed 220s Reading package lists... 221s Building dependency tree... 221s Reading state information... 221s Starting pkgProblemResolver with broken count: 0 221s Starting 2 pkgProblemResolver with broken count: 0 221s Done 221s The following NEW packages will be installed: 221s fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono libblas3 221s libcairo2 libdatrie1 libdeflate0 libfontconfig1 libgfortran5 libgit2-1.9 222s libgomp1 libgraphite2-3 libharfbuzz0b libice6 libjbig0 libjpeg-turbo8 222s libjpeg8 liblapack3 liblerc4 libpango-1.0-0 libpangocairo-1.0-0 222s libpangoft2-1.0-0 libpaper-utils libpaper2 libpixman-1-0 libsharpyuv0 libsm6 222s libtcl8.6 libthai-data libthai0 libtiff6 libtk8.6 libwebp7 libxcb-render0 222s libxcb-shm0 libxft2 libxrender1 libxss1 libxt6t64 r-base-core r-cran-git2r 222s unzip x11-common xdg-utils zip 222s 0 upgraded, 46 newly installed, 0 to remove and 0 not upgraded. 222s Need to get 42.4 MB of archives. 222s After this operation, 87.8 MB of additional disk space will be used. 222s Get:1 http://ftpmaster.internal/ubuntu plucky/main amd64 fonts-dejavu-mono all 2.37-8 [502 kB] 222s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 fonts-dejavu-core all 2.37-8 [835 kB] 222s Get:3 http://ftpmaster.internal/ubuntu plucky/main amd64 fontconfig-config amd64 2.15.0-2ubuntu1 [37.4 kB] 222s Get:4 http://ftpmaster.internal/ubuntu plucky/main amd64 libfontconfig1 amd64 2.15.0-2ubuntu1 [164 kB] 222s Get:5 http://ftpmaster.internal/ubuntu plucky/main amd64 fontconfig amd64 2.15.0-2ubuntu1 [180 kB] 222s Get:6 http://ftpmaster.internal/ubuntu plucky/main amd64 libblas3 amd64 3.12.1-2 [359 kB] 222s Get:7 http://ftpmaster.internal/ubuntu plucky/main amd64 libpixman-1-0 amd64 0.44.0-3 [427 kB] 222s Get:8 http://ftpmaster.internal/ubuntu plucky/main amd64 libxcb-render0 amd64 1.17.0-2 [16.2 kB] 222s Get:9 http://ftpmaster.internal/ubuntu plucky/main amd64 libxcb-shm0 amd64 1.17.0-2 [5758 B] 222s Get:10 http://ftpmaster.internal/ubuntu plucky/main amd64 libxrender1 amd64 1:0.9.10-1.1build1 [19.0 kB] 222s Get:11 http://ftpmaster.internal/ubuntu plucky/main amd64 libcairo2 amd64 1.18.2-2 [569 kB] 222s Get:12 http://ftpmaster.internal/ubuntu plucky/main amd64 libdatrie1 amd64 0.2.13-3build1 [19.0 kB] 222s Get:13 http://ftpmaster.internal/ubuntu plucky/main amd64 libdeflate0 amd64 1.23-1 [64.1 kB] 222s Get:14 http://ftpmaster.internal/ubuntu plucky/main amd64 libgfortran5 amd64 15-20250222-0ubuntu1 [919 kB] 222s Get:15 http://ftpmaster.internal/ubuntu plucky/main amd64 libgit2-1.9 amd64 1.9.0+ds-1ubuntu1 [688 kB] 222s Get:16 http://ftpmaster.internal/ubuntu plucky/main amd64 libgomp1 amd64 15-20250222-0ubuntu1 [148 kB] 222s Get:17 http://ftpmaster.internal/ubuntu plucky/main amd64 libgraphite2-3 amd64 1.3.14-2ubuntu1 [73.1 kB] 222s Get:18 http://ftpmaster.internal/ubuntu plucky/main amd64 libharfbuzz0b amd64 10.2.0-1 [543 kB] 222s Get:19 http://ftpmaster.internal/ubuntu plucky/main amd64 x11-common all 1:7.7+23ubuntu3 [21.7 kB] 222s Get:20 http://ftpmaster.internal/ubuntu plucky/main amd64 libice6 amd64 2:1.1.1-1 [44.1 kB] 222s Get:21 http://ftpmaster.internal/ubuntu plucky/main amd64 libjpeg-turbo8 amd64 2.1.5-3ubuntu2 [179 kB] 222s Get:22 http://ftpmaster.internal/ubuntu plucky/main amd64 libjpeg8 amd64 8c-2ubuntu11 [2148 B] 222s Get:23 http://ftpmaster.internal/ubuntu plucky/main amd64 liblapack3 amd64 3.12.1-2 [3179 kB] 223s Get:24 http://ftpmaster.internal/ubuntu plucky/main amd64 liblerc4 amd64 4.0.0+ds-5ubuntu1 [271 kB] 223s Get:25 http://ftpmaster.internal/ubuntu plucky/main amd64 libthai-data all 0.1.29-2build1 [158 kB] 223s Get:26 http://ftpmaster.internal/ubuntu plucky/main amd64 libthai0 amd64 0.1.29-2build1 [18.9 kB] 223s Get:27 http://ftpmaster.internal/ubuntu plucky/main amd64 libpango-1.0-0 amd64 1.56.2-1 [255 kB] 223s Get:28 http://ftpmaster.internal/ubuntu plucky/main amd64 libpangoft2-1.0-0 amd64 1.56.2-1 [52.6 kB] 223s Get:29 http://ftpmaster.internal/ubuntu plucky/main amd64 libpangocairo-1.0-0 amd64 1.56.2-1 [29.1 kB] 223s Get:30 http://ftpmaster.internal/ubuntu plucky/main amd64 libpaper2 amd64 2.2.5-0.3 [17.4 kB] 223s Get:31 http://ftpmaster.internal/ubuntu plucky/main amd64 libpaper-utils amd64 2.2.5-0.3 [15.5 kB] 223s Get:32 http://ftpmaster.internal/ubuntu plucky/main amd64 libsharpyuv0 amd64 1.5.0-0.1 [25.9 kB] 223s Get:33 http://ftpmaster.internal/ubuntu plucky/main amd64 libsm6 amd64 2:1.2.4-1 [17.4 kB] 223s Get:34 http://ftpmaster.internal/ubuntu plucky/main amd64 libtcl8.6 amd64 8.6.16+dfsg-1 [1086 kB] 223s Get:35 http://ftpmaster.internal/ubuntu plucky/main amd64 libjbig0 amd64 2.1-6.1ubuntu2 [29.7 kB] 223s Get:36 http://ftpmaster.internal/ubuntu plucky/main amd64 libwebp7 amd64 1.5.0-0.1 [378 kB] 223s Get:37 http://ftpmaster.internal/ubuntu plucky/main amd64 libtiff6 amd64 4.5.1+git230720-4ubuntu4 [200 kB] 223s Get:38 http://ftpmaster.internal/ubuntu plucky/main amd64 libxft2 amd64 2.3.6-1build1 [45.3 kB] 223s Get:39 http://ftpmaster.internal/ubuntu plucky/main amd64 libxss1 amd64 1:1.2.3-1build3 [7204 B] 223s Get:40 http://ftpmaster.internal/ubuntu plucky/main amd64 libtk8.6 amd64 8.6.16-1 [868 kB] 223s Get:41 http://ftpmaster.internal/ubuntu plucky/main amd64 libxt6t64 amd64 1:1.2.1-1.2build1 [171 kB] 223s Get:42 http://ftpmaster.internal/ubuntu plucky/main amd64 zip amd64 3.0-14ubuntu2 [185 kB] 223s Get:43 http://ftpmaster.internal/ubuntu plucky/main amd64 unzip amd64 6.0-28ubuntu6 [181 kB] 223s Get:44 http://ftpmaster.internal/ubuntu plucky/main amd64 xdg-utils all 1.2.1-2ubuntu1 [66.0 kB] 223s Get:45 http://ftpmaster.internal/ubuntu plucky/universe amd64 r-base-core amd64 4.4.3-1 [28.9 MB] 224s Get:46 http://ftpmaster.internal/ubuntu plucky/universe amd64 r-cran-git2r amd64 0.35.0-1build1 [441 kB] 224s Preconfiguring packages ... 224s Fetched 42.4 MB in 2s (18.2 MB/s) 224s Selecting previously unselected package fonts-dejavu-mono. 225s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 76968 files and directories currently installed.) 225s Preparing to unpack .../00-fonts-dejavu-mono_2.37-8_all.deb ... 225s Unpacking fonts-dejavu-mono (2.37-8) ... 225s Selecting previously unselected package fonts-dejavu-core. 225s Preparing to unpack .../01-fonts-dejavu-core_2.37-8_all.deb ... 225s Unpacking fonts-dejavu-core (2.37-8) ... 225s Selecting previously unselected package fontconfig-config. 225s Preparing to unpack .../02-fontconfig-config_2.15.0-2ubuntu1_amd64.deb ... 225s Unpacking fontconfig-config (2.15.0-2ubuntu1) ... 225s Selecting previously unselected package libfontconfig1:amd64. 225s Preparing to unpack .../03-libfontconfig1_2.15.0-2ubuntu1_amd64.deb ... 225s Unpacking libfontconfig1:amd64 (2.15.0-2ubuntu1) ... 225s Selecting previously unselected package fontconfig. 225s Preparing to unpack .../04-fontconfig_2.15.0-2ubuntu1_amd64.deb ... 225s Unpacking fontconfig (2.15.0-2ubuntu1) ... 225s Selecting previously unselected package libblas3:amd64. 225s Preparing to unpack .../05-libblas3_3.12.1-2_amd64.deb ... 225s Unpacking libblas3:amd64 (3.12.1-2) ... 225s Selecting previously unselected package libpixman-1-0:amd64. 225s Preparing to unpack .../06-libpixman-1-0_0.44.0-3_amd64.deb ... 225s Unpacking libpixman-1-0:amd64 (0.44.0-3) ... 225s Selecting previously unselected package libxcb-render0:amd64. 225s Preparing to unpack .../07-libxcb-render0_1.17.0-2_amd64.deb ... 225s Unpacking libxcb-render0:amd64 (1.17.0-2) ... 225s Selecting previously unselected package libxcb-shm0:amd64. 225s Preparing to unpack .../08-libxcb-shm0_1.17.0-2_amd64.deb ... 225s Unpacking libxcb-shm0:amd64 (1.17.0-2) ... 225s Selecting previously unselected package libxrender1:amd64. 225s Preparing to unpack .../09-libxrender1_1%3a0.9.10-1.1build1_amd64.deb ... 225s Unpacking libxrender1:amd64 (1:0.9.10-1.1build1) ... 225s Selecting previously unselected package libcairo2:amd64. 225s Preparing to unpack .../10-libcairo2_1.18.2-2_amd64.deb ... 225s Unpacking libcairo2:amd64 (1.18.2-2) ... 225s Selecting previously unselected package libdatrie1:amd64. 225s Preparing to unpack .../11-libdatrie1_0.2.13-3build1_amd64.deb ... 225s Unpacking libdatrie1:amd64 (0.2.13-3build1) ... 225s Selecting previously unselected package libdeflate0:amd64. 225s Preparing to unpack .../12-libdeflate0_1.23-1_amd64.deb ... 225s Unpacking libdeflate0:amd64 (1.23-1) ... 225s Selecting previously unselected package libgfortran5:amd64. 225s Preparing to unpack .../13-libgfortran5_15-20250222-0ubuntu1_amd64.deb ... 225s Unpacking libgfortran5:amd64 (15-20250222-0ubuntu1) ... 225s Selecting previously unselected package libgit2-1.9:amd64. 225s Preparing to unpack .../14-libgit2-1.9_1.9.0+ds-1ubuntu1_amd64.deb ... 225s Unpacking libgit2-1.9:amd64 (1.9.0+ds-1ubuntu1) ... 225s Selecting previously unselected package libgomp1:amd64. 225s Preparing to unpack .../15-libgomp1_15-20250222-0ubuntu1_amd64.deb ... 225s Unpacking libgomp1:amd64 (15-20250222-0ubuntu1) ... 225s Selecting previously unselected package libgraphite2-3:amd64. 225s Preparing to unpack .../16-libgraphite2-3_1.3.14-2ubuntu1_amd64.deb ... 225s Unpacking libgraphite2-3:amd64 (1.3.14-2ubuntu1) ... 225s Selecting previously unselected package libharfbuzz0b:amd64. 225s Preparing to unpack .../17-libharfbuzz0b_10.2.0-1_amd64.deb ... 225s Unpacking libharfbuzz0b:amd64 (10.2.0-1) ... 225s Selecting previously unselected package x11-common. 225s Preparing to unpack .../18-x11-common_1%3a7.7+23ubuntu3_all.deb ... 225s Unpacking x11-common (1:7.7+23ubuntu3) ... 225s Selecting previously unselected package libice6:amd64. 225s Preparing to unpack .../19-libice6_2%3a1.1.1-1_amd64.deb ... 225s Unpacking libice6:amd64 (2:1.1.1-1) ... 225s Selecting previously unselected package libjpeg-turbo8:amd64. 225s Preparing to unpack .../20-libjpeg-turbo8_2.1.5-3ubuntu2_amd64.deb ... 225s Unpacking libjpeg-turbo8:amd64 (2.1.5-3ubuntu2) ... 226s Selecting previously unselected package libjpeg8:amd64. 226s Preparing to unpack .../21-libjpeg8_8c-2ubuntu11_amd64.deb ... 226s Unpacking libjpeg8:amd64 (8c-2ubuntu11) ... 226s Selecting previously unselected package liblapack3:amd64. 226s Preparing to unpack .../22-liblapack3_3.12.1-2_amd64.deb ... 226s Unpacking liblapack3:amd64 (3.12.1-2) ... 226s Selecting previously unselected package liblerc4:amd64. 226s Preparing to unpack .../23-liblerc4_4.0.0+ds-5ubuntu1_amd64.deb ... 226s Unpacking liblerc4:amd64 (4.0.0+ds-5ubuntu1) ... 226s Selecting previously unselected package libthai-data. 226s Preparing to unpack .../24-libthai-data_0.1.29-2build1_all.deb ... 226s Unpacking libthai-data (0.1.29-2build1) ... 226s Selecting previously unselected package libthai0:amd64. 226s Preparing to unpack .../25-libthai0_0.1.29-2build1_amd64.deb ... 226s Unpacking libthai0:amd64 (0.1.29-2build1) ... 226s Selecting previously unselected package libpango-1.0-0:amd64. 226s Preparing to unpack .../26-libpango-1.0-0_1.56.2-1_amd64.deb ... 226s Unpacking libpango-1.0-0:amd64 (1.56.2-1) ... 226s Selecting previously unselected package libpangoft2-1.0-0:amd64. 226s Preparing to unpack .../27-libpangoft2-1.0-0_1.56.2-1_amd64.deb ... 226s Unpacking libpangoft2-1.0-0:amd64 (1.56.2-1) ... 226s Selecting previously unselected package libpangocairo-1.0-0:amd64. 226s Preparing to unpack .../28-libpangocairo-1.0-0_1.56.2-1_amd64.deb ... 226s Unpacking libpangocairo-1.0-0:amd64 (1.56.2-1) ... 226s Selecting previously unselected package libpaper2:amd64. 226s Preparing to unpack .../29-libpaper2_2.2.5-0.3_amd64.deb ... 226s Unpacking libpaper2:amd64 (2.2.5-0.3) ... 226s Selecting previously unselected package libpaper-utils. 226s Preparing to unpack .../30-libpaper-utils_2.2.5-0.3_amd64.deb ... 226s Unpacking libpaper-utils (2.2.5-0.3) ... 226s Selecting previously unselected package libsharpyuv0:amd64. 226s Preparing to unpack .../31-libsharpyuv0_1.5.0-0.1_amd64.deb ... 226s Unpacking libsharpyuv0:amd64 (1.5.0-0.1) ... 226s Selecting previously unselected package libsm6:amd64. 226s Preparing to unpack .../32-libsm6_2%3a1.2.4-1_amd64.deb ... 226s Unpacking libsm6:amd64 (2:1.2.4-1) ... 226s Selecting previously unselected package libtcl8.6:amd64. 226s Preparing to unpack .../33-libtcl8.6_8.6.16+dfsg-1_amd64.deb ... 226s Unpacking libtcl8.6:amd64 (8.6.16+dfsg-1) ... 226s Selecting previously unselected package libjbig0:amd64. 226s Preparing to unpack .../34-libjbig0_2.1-6.1ubuntu2_amd64.deb ... 226s Unpacking libjbig0:amd64 (2.1-6.1ubuntu2) ... 226s Selecting previously unselected package libwebp7:amd64. 226s Preparing to unpack .../35-libwebp7_1.5.0-0.1_amd64.deb ... 226s Unpacking libwebp7:amd64 (1.5.0-0.1) ... 226s Selecting previously unselected package libtiff6:amd64. 226s Preparing to unpack .../36-libtiff6_4.5.1+git230720-4ubuntu4_amd64.deb ... 226s Unpacking libtiff6:amd64 (4.5.1+git230720-4ubuntu4) ... 226s Selecting previously unselected package libxft2:amd64. 226s Preparing to unpack .../37-libxft2_2.3.6-1build1_amd64.deb ... 226s Unpacking libxft2:amd64 (2.3.6-1build1) ... 226s Selecting previously unselected package libxss1:amd64. 226s Preparing to unpack .../38-libxss1_1%3a1.2.3-1build3_amd64.deb ... 226s Unpacking libxss1:amd64 (1:1.2.3-1build3) ... 226s Selecting previously unselected package libtk8.6:amd64. 226s Preparing to unpack .../39-libtk8.6_8.6.16-1_amd64.deb ... 226s Unpacking libtk8.6:amd64 (8.6.16-1) ... 226s Selecting previously unselected package libxt6t64:amd64. 226s Preparing to unpack .../40-libxt6t64_1%3a1.2.1-1.2build1_amd64.deb ... 226s Unpacking libxt6t64:amd64 (1:1.2.1-1.2build1) ... 226s Selecting previously unselected package zip. 226s Preparing to unpack .../41-zip_3.0-14ubuntu2_amd64.deb ... 226s Unpacking zip (3.0-14ubuntu2) ... 226s Selecting previously unselected package unzip. 226s Preparing to unpack .../42-unzip_6.0-28ubuntu6_amd64.deb ... 226s Unpacking unzip (6.0-28ubuntu6) ... 226s Selecting previously unselected package xdg-utils. 226s Preparing to unpack .../43-xdg-utils_1.2.1-2ubuntu1_all.deb ... 226s Unpacking xdg-utils (1.2.1-2ubuntu1) ... 226s Selecting previously unselected package r-base-core. 226s Preparing to unpack .../44-r-base-core_4.4.3-1_amd64.deb ... 226s Unpacking r-base-core (4.4.3-1) ... 227s Selecting previously unselected package r-cran-git2r. 227s Preparing to unpack .../45-r-cran-git2r_0.35.0-1build1_amd64.deb ... 227s Unpacking r-cran-git2r (0.35.0-1build1) ... 227s Setting up libgraphite2-3:amd64 (1.3.14-2ubuntu1) ... 227s Setting up libpixman-1-0:amd64 (0.44.0-3) ... 227s Setting up libsharpyuv0:amd64 (1.5.0-0.1) ... 227s Setting up liblerc4:amd64 (4.0.0+ds-5ubuntu1) ... 227s Setting up libxrender1:amd64 (1:0.9.10-1.1build1) ... 227s Setting up libdatrie1:amd64 (0.2.13-3build1) ... 227s Setting up libxcb-render0:amd64 (1.17.0-2) ... 227s Setting up unzip (6.0-28ubuntu6) ... 227s Setting up x11-common (1:7.7+23ubuntu3) ... 227s Setting up libdeflate0:amd64 (1.23-1) ... 227s Setting up libxcb-shm0:amd64 (1.17.0-2) ... 227s Setting up libgomp1:amd64 (15-20250222-0ubuntu1) ... 227s Setting up libjbig0:amd64 (2.1-6.1ubuntu2) ... 227s Setting up zip (3.0-14ubuntu2) ... 227s Setting up libblas3:amd64 (3.12.1-2) ... 227s update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/x86_64-linux-gnu/libblas.so.3 (libblas.so.3-x86_64-linux-gnu) in auto mode 227s Setting up fonts-dejavu-mono (2.37-8) ... 227s Setting up libtcl8.6:amd64 (8.6.16+dfsg-1) ... 227s Setting up fonts-dejavu-core (2.37-8) ... 227s Setting up libjpeg-turbo8:amd64 (2.1.5-3ubuntu2) ... 227s Setting up libgit2-1.9:amd64 (1.9.0+ds-1ubuntu1) ... 227s Setting up libgfortran5:amd64 (15-20250222-0ubuntu1) ... 227s Setting up libwebp7:amd64 (1.5.0-0.1) ... 227s Setting up libharfbuzz0b:amd64 (10.2.0-1) ... 227s Setting up libthai-data (0.1.29-2build1) ... 227s Setting up libxss1:amd64 (1:1.2.3-1build3) ... 227s Setting up libpaper2:amd64 (2.2.5-0.3) ... 227s Setting up xdg-utils (1.2.1-2ubuntu1) ... 227s update-alternatives: using /usr/bin/xdg-open to provide /usr/bin/open (open) in auto mode 227s Setting up libjpeg8:amd64 (8c-2ubuntu11) ... 227s Setting up libice6:amd64 (2:1.1.1-1) ... 227s Setting up liblapack3:amd64 (3.12.1-2) ... 227s update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/x86_64-linux-gnu/liblapack.so.3 (liblapack.so.3-x86_64-linux-gnu) in auto mode 227s Setting up fontconfig-config (2.15.0-2ubuntu1) ... 228s Setting up libpaper-utils (2.2.5-0.3) ... 228s Setting up libthai0:amd64 (0.1.29-2build1) ... 228s Setting up libtiff6:amd64 (4.5.1+git230720-4ubuntu4) ... 228s Setting up libfontconfig1:amd64 (2.15.0-2ubuntu1) ... 228s Setting up libsm6:amd64 (2:1.2.4-1) ... 228s Setting up fontconfig (2.15.0-2ubuntu1) ... 230s Regenerating fonts cache... done. 230s Setting up libxft2:amd64 (2.3.6-1build1) ... 230s Setting up libtk8.6:amd64 (8.6.16-1) ... 230s Setting up libpango-1.0-0:amd64 (1.56.2-1) ... 230s Setting up libcairo2:amd64 (1.18.2-2) ... 230s Setting up libxt6t64:amd64 (1:1.2.1-1.2build1) ... 230s Setting up libpangoft2-1.0-0:amd64 (1.56.2-1) ... 230s Setting up libpangocairo-1.0-0:amd64 (1.56.2-1) ... 230s Setting up r-base-core (4.4.3-1) ... 230s Creating config file /etc/R/Renviron with new version 230s Setting up r-cran-git2r (0.35.0-1build1) ... 230s Processing triggers for man-db (2.13.0-1) ... 231s Processing triggers for install-info (7.1.1-1) ... 231s Processing triggers for libc-bin (2.41-1ubuntu2) ... 232s autopkgtest [22:13:57]: test run-unit-test: [----------------------- 233s BEGIN TEST add-force.R 233s 233s R version 4.4.3 (2025-02-28) -- "Trophy Case" 233s Copyright (C) 2025 The R Foundation for Statistical Computing 233s Platform: x86_64-pc-linux-gnu 233s 233s R is free software and comes with ABSOLUTELY NO WARRANTY. 233s You are welcome to redistribute it under certain conditions. 233s Type 'license()' or 'licence()' for distribution details. 233s 233s R is a collaborative project with many contributors. 233s Type 'contributors()' for more information and 233s 'citation()' on how to cite R or R packages in publications. 233s 233s Type 'demo()' for some demos, 'help()' for on-line help, or 233s 'help.start()' for an HTML browser interface to help. 233s Type 'q()' to quit R. 233s 233s > ## git2r, R bindings to the libgit2 library. 233s > ## Copyright (C) 2013-2023 The git2r contributors 233s > ## 233s > ## This program is free software; you can redistribute it and/or modify 233s > ## it under the terms of the GNU General Public License, version 2, 233s > ## as published by the Free Software Foundation. 233s > ## 233s > ## git2r is distributed in the hope that it will be useful, 233s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 233s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 233s > ## GNU General Public License for more details. 233s > ## 233s > ## You should have received a copy of the GNU General Public License along 233s > ## with this program; if not, write to the Free Software Foundation, Inc., 233s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 233s > 233s > library(git2r) 233s > source("util/check.R") 233s > 233s > ## For debugging 233s > sessionInfo() 233s R version 4.4.3 (2025-02-28) 233s Platform: x86_64-pc-linux-gnu 233s Running under: Ubuntu Plucky Puffin (development branch) 233s 233s Matrix products: default 233s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 233s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 233s 233s locale: 233s [1] C 233s 233s time zone: Etc/UTC 233s tzcode source: system (glibc) 233s 233s attached base packages: 233s [1] stats graphics grDevices utils datasets methods base 233s 233s other attached packages: 233s [1] git2r_0.35.0 233s 233s loaded via a namespace (and not attached): 233s [1] compiler_4.4.3 233s > libgit2_version() 233s $major 233s [1] 1 233s 233s $minor 233s [1] 9 233s 233s $rev 233s [1] 0 233s 233s > libgit2_features() 233s $threads 233s [1] TRUE 233s 233s $https 233s [1] TRUE 233s 233s $ssh 233s [1] TRUE 233s 233s > 233s > ## Create a directory in tempdir 233s > path <- tempfile(pattern = "git2r-") 233s > dir.create(path) 233s > 233s > ## Initialize a repository 233s > repo <- init(path) 233s > config(repo, user.name = "Alice", user.email = "alice@example.org") 233s > 233s > ## Create a '.gitignore' file 233s > writeLines("test.txt", file.path(path, ".gitignore")) 233s > add(repo, ".gitignore") 233s > commit(repo, "First commit message") 233s [4e3ac9c] 2025-03-15: First commit message 233s > 233s > ## Create a file 233s > writeLines("Hello world!", file.path(path, "test.txt")) 233s > 233s > ## Check status 233s > s_1 <- structure(list(staged = empty_named_list(), 233s + unstaged = empty_named_list(), 233s + untracked = empty_named_list(), 233s + ignored = list(ignored = "test.txt")), 233s + class = "git_status") 233s > stopifnot(identical(status(repo, ignored = TRUE), s_1)) 233s > 233s > ## The file is ignored and should not be added 233s > add(repo, "test.txt") 233s > stopifnot(identical(status(repo, ignored = TRUE), s_1)) 233s > 233s > ## The file is ignored but should be added with force 233s > s_2 <- structure(list(staged = list(new = "test.txt"), 233s + unstaged = empty_named_list(), 233s + untracked = empty_named_list(), 233s + ignored = empty_named_list()), 233s + class = "git_status") 233s > 233s > add(repo, "test.txt", force = TRUE) 233s > stopifnot(identical(status(repo, ignored = TRUE), s_2)) 233s > 233s > ## Commit and check status 233s > s_3 <- structure(list(staged = empty_named_list(), 233s + unstaged = empty_named_list(), 233s + untracked = empty_named_list(), 233s + ignored = empty_named_list()), 233s + class = "git_status") 233s > 233s > commit(repo, "Second commit message") 233s [6f02b70] 2025-03-15: Second commit message 233s > stopifnot(identical(status(repo, ignored = TRUE), s_3)) 233s > 233s > ## Cleanup 233s > unlink(path, recursive = TRUE) 233s > 233s BEGIN TEST bare_repository.R 233s 233s R version 4.4.3 (2025-02-28) -- "Trophy Case" 233s Copyright (C) 2025 The R Foundation for Statistical Computing 233s Platform: x86_64-pc-linux-gnu 233s 233s R is free software and comes with ABSOLUTELY NO WARRANTY. 233s You are welcome to redistribute it under certain conditions. 233s Type 'license()' or 'licence()' for distribution details. 233s 233s R is a collaborative project with many contributors. 233s Type 'contributors()' for more information and 233s 'citation()' on how to cite R or R packages in publications. 233s 233s Type 'demo()' for some demos, 'help()' for on-line help, or 233s 'help.start()' for an HTML browser interface to help. 233s Type 'q()' to quit R. 233s 233s > ## git2r, R bindings to the libgit2 library. 233s > ## Copyright (C) 2013-2023 The git2r contributors 233s > ## 233s > ## This program is free software; you can redistribute it and/or modify 233s > ## it under the terms of the GNU General Public License, version 2, 233s > ## as published by the Free Software Foundation. 233s > ## 233s > ## git2r is distributed in the hope that it will be useful, 233s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 233s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 233s > ## GNU General Public License for more details. 233s > ## 233s > ## You should have received a copy of the GNU General Public License along 233s > ## with this program; if not, write to the Free Software Foundation, Inc., 233s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 233s > 233s > library("git2r") 233s > 233s > ## For debugging 233s > sessionInfo() 233s R version 4.4.3 (2025-02-28) 233s Platform: x86_64-pc-linux-gnu 233s Running under: Ubuntu Plucky Puffin (development branch) 233s 233s Matrix products: default 233s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 233s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 233s 233s locale: 233s [1] C 233s 233s time zone: Etc/UTC 233s tzcode source: system (glibc) 233s 233s attached base packages: 233s [1] stats graphics grDevices utils datasets methods base 233s 233s other attached packages: 233s [1] git2r_0.35.0 233s 233s loaded via a namespace (and not attached): 233s [1] compiler_4.4.3 233s > libgit2_version() 233s $major 233s [1] 1 233s 233s $minor 233s [1] 9 233s 233s $rev 233s [1] 0 233s 233s > libgit2_features() 233s $threads 233s [1] TRUE 233s 233s $https 233s [1] TRUE 233s 233s $ssh 233s [1] TRUE 233s 233s > 233s > 233s > ## Create a directory in tempdir 233s > path <- tempfile(pattern = "git2r-") 233s > dir.create(path) 233s > 233s > ## Initialize a bare repository 233s > repo <- init(path, bare = TRUE) 233s > 233s > ## Check that the state of the repository 233s > stopifnot(identical(is_bare(repo), TRUE)) 233s > stopifnot(identical(is_empty(repo), TRUE)) 233s > 233s > ## Check that workdir is NULL for a bare repository 233s > stopifnot(is.null(workdir(repo))) 233s > 233s > ## Check with missing repo argument 233s > setwd(path) 233s > stopifnot(identical(is_bare(), TRUE)) 233s > 233s > ## Cleanup 233s > unlink(path, recursive = TRUE) 233s > 233s sh: 0: getcwd() failed: No such file or directory 233s BEGIN TEST blame.R 233s 233s R version 4.4.3 (2025-02-28) -- "Trophy Case" 233s Copyright (C) 2025 The R Foundation for Statistical Computing 233s Platform: x86_64-pc-linux-gnu 233s 233s R is free software and comes with ABSOLUTELY NO WARRANTY. 233s You are welcome to redistribute it under certain conditions. 233s Type 'license()' or 'licence()' for distribution details. 233s 233s R is a collaborative project with many contributors. 233s Type 'contributors()' for more information and 233s 'citation()' on how to cite R or R packages in publications. 233s 233s Type 'demo()' for some demos, 'help()' for on-line help, or 233s 'help.start()' for an HTML browser interface to help. 233s Type 'q()' to quit R. 233s 233s > ## git2r, R bindings to the libgit2 library. 233s > ## Copyright (C) 2013-2023 The git2r contributors 233s > ## 233s > ## This program is free software; you can redistribute it and/or modify 233s > ## it under the terms of the GNU General Public License, version 2, 233s > ## as published by the Free Software Foundation. 233s > ## 233s > ## git2r is distributed in the hope that it will be useful, 233s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 233s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 233s > ## GNU General Public License for more details. 233s > ## 233s > ## You should have received a copy of the GNU General Public License along 233s > ## with this program; if not, write to the Free Software Foundation, Inc., 233s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 233s > 233s > library(git2r) 233s > 233s > ## For debugging 233s > sessionInfo() 233s R version 4.4.3 (2025-02-28) 233s Platform: x86_64-pc-linux-gnu 233s Running under: Ubuntu Plucky Puffin (development branch) 233s 233s Matrix products: default 233s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 233s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 233s 233s locale: 233s [1] C 233s 233s time zone: Etc/UTC 233s tzcode source: system (glibc) 233s 233s attached base packages: 233s [1] stats graphics grDevices utils datasets methods base 233s 233s other attached packages: 233s [1] git2r_0.35.0 233s 233s loaded via a namespace (and not attached): 233s [1] compiler_4.4.3 233s > libgit2_version() 233s $major 233s [1] 1 233s 233s $minor 233s [1] 9 233s 233s $rev 233s [1] 0 233s 233s > libgit2_features() 233s $threads 233s [1] TRUE 233s 233s $https 233s [1] TRUE 233s 233s $ssh 233s [1] TRUE 233s 233s > 233s > 233s > ## Create a directory in tempdir 233s > path <- tempfile(pattern = "git2r-") 233s > dir.create(path) 233s > 233s > ## Initialize a repository 233s > repo <- init(path) 233s > config(repo, user.name = "Alice", user.email = "alice@example.org") 233s > 233s > ## Create a file and commit 233s > writeLines("Hello world!", file.path(path, "test.txt")) 233s > add(repo, "test.txt") 233s > commit_1 <- commit(repo, "First commit message") 233s > 233s > ## Create new user and change file 233s > config(repo, user.name = "Bob", user.email = "bob@example.org") 233s > writeLines(c("Hello world!", "HELLO WORLD!", "HOLA"), 233s + file.path(path, "test.txt")) 233s > add(repo, "test.txt") 233s > commit_2 <- commit(repo, "Second commit message") 233s > 233s > ## Check blame 233s > b <- blame(repo, "test.txt") 233s > stopifnot(identical(length(b$hunks), 2L)) 233s > 233s > ## Hunk: 1 233s > stopifnot(identical(b$hunks[[1]]$lines_in_hunk, 1L)) 233s > stopifnot(identical(b$hunks[[1]]$final_commit_id, sha(commit_1))) 233s > stopifnot(identical(b$hunks[[1]]$final_start_line_number, 1L)) 233s > stopifnot(identical(b$hunks[[1]]$final_signature$name, "Alice")) 233s > stopifnot(identical(b$hunks[[1]]$final_signature$email, "alice@example.org")) 233s > stopifnot(identical(b$hunks[[1]]$orig_commit_id, sha(commit_1))) 233s > stopifnot(identical(b$hunks[[1]]$orig_start_line_number, 1L)) 233s > stopifnot(identical(b$hunks[[1]]$orig_signature$name, "Alice")) 233s > stopifnot(identical(b$hunks[[1]]$orig_signature$email, "alice@example.org")) 233s > stopifnot(identical(b$hunks[[1]]$orig_path, "test.txt")) 233s > stopifnot(identical(b$hunks[[1]]$boundary, TRUE)) 233s > 233s > ## Hunk: 2 233s > stopifnot(identical(b$hunks[[2]]$lines_in_hunk, 2L)) 233s > stopifnot(identical(b$hunks[[2]]$final_commit_id, sha(commit_2))) 233s > stopifnot(identical(b$hunks[[2]]$final_start_line_number, 2L)) 233s > stopifnot(identical(b$hunks[[2]]$final_signature$name, "Bob")) 233s > stopifnot(identical(b$hunks[[2]]$final_signature$email, "bob@example.org")) 233s > stopifnot(identical(b$hunks[[2]]$orig_commit_id, sha(commit_2))) 233s > stopifnot(identical(b$hunks[[2]]$orig_start_line_number, 2L)) 233s > stopifnot(identical(b$hunks[[2]]$orig_signature$name, "Bob")) 233s > stopifnot(identical(b$hunks[[2]]$orig_signature$email, "bob@example.org")) 233s > stopifnot(identical(b$hunks[[2]]$orig_path, "test.txt")) 233s > stopifnot(identical(b$hunks[[2]]$boundary, FALSE)) 233s > 233s > ## Cleanup 233s > unlink(path, recursive = TRUE) 233s > 233s BEGIN TEST blob.R 233s 233s R version 4.4.3 (2025-02-28) -- "Trophy Case" 233s Copyright (C) 2025 The R Foundation for Statistical Computing 233s Platform: x86_64-pc-linux-gnu 233s 233s R is free software and comes with ABSOLUTELY NO WARRANTY. 233s You are welcome to redistribute it under certain conditions. 233s Type 'license()' or 'licence()' for distribution details. 233s 233s R is a collaborative project with many contributors. 233s Type 'contributors()' for more information and 233s 'citation()' on how to cite R or R packages in publications. 233s 233s Type 'demo()' for some demos, 'help()' for on-line help, or 233s 'help.start()' for an HTML browser interface to help. 233s Type 'q()' to quit R. 233s 234s > ## git2r, R bindings to the libgit2 library. 234s > ## Copyright (C) 2013-2023 The git2r contributors 234s > ## 234s > ## This program is free software; you can redistribute it and/or modify 234s > ## it under the terms of the GNU General Public License, version 2, 234s > ## as published by the Free Software Foundation. 234s > ## 234s > ## git2r is distributed in the hope that it will be useful, 234s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 234s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 234s > ## GNU General Public License for more details. 234s > ## 234s > ## You should have received a copy of the GNU General Public License along 234s > ## with this program; if not, write to the Free Software Foundation, Inc., 234s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 234s > 234s > library(git2r) 234s > library(tools) 234s > source("util/check.R") 234s > 234s > ## For debugging 234s > sessionInfo() 234s R version 4.4.3 (2025-02-28) 234s Platform: x86_64-pc-linux-gnu 234s Running under: Ubuntu Plucky Puffin (development branch) 234s 234s Matrix products: default 234s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 234s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 234s 234s locale: 234s [1] C 234s 234s time zone: Etc/UTC 234s tzcode source: system (glibc) 234s 234s attached base packages: 234s [1] tools stats graphics grDevices utils datasets methods 234s [8] base 234s 234s other attached packages: 234s [1] git2r_0.35.0 234s 234s loaded via a namespace (and not attached): 234s [1] compiler_4.4.3 234s > libgit2_version() 234s $major 234s [1] 1 234s 234s $minor 234s [1] 9 234s 234s $rev 234s [1] 0 234s 234s > libgit2_features() 234s $threads 234s [1] TRUE 234s 234s $https 234s [1] TRUE 234s 234s $ssh 234s [1] TRUE 234s 234s > 234s > 234s > ## Create a directory in tempdir 234s > path <- tempfile(pattern = "git2r-") 234s > dir.create(path) 234s > 234s > ## Initialize a repository 234s > repo <- init(path) 234s > config(repo, user.name = "Alice", user.email = "alice@example.org") 234s > 234s > ## Create a file 234s > f <- file(file.path(path, "test.txt"), "wb") 234s > writeChar("Hello world!\n", f, eos = NULL) 234s > close(f) 234s > 234s > ## add and commit 234s > add(repo, "test.txt") 234s > new_commit <- commit(repo, "Commit message") 234s > 234s > ## Lookup blob 234s > blob <- lookup(repo, "cd0875583aabe89ee197ea133980a9085d08e497") 234s > stopifnot(isTRUE(is_blob(blob))) 234s > stopifnot(identical(sha(blob), "cd0875583aabe89ee197ea133980a9085d08e497")) 234s > stopifnot(identical(is_binary(blob), FALSE)) 234s > stopifnot(identical(blob, lookup(repo, "cd0875"))) 234s > stopifnot(identical(length(blob), 13L)) 234s > stopifnot(identical(content(blob), "Hello world!")) 234s > stopifnot(identical(print(blob), blob)) 234s blob: cd0875583aabe89ee197ea133980a9085d08e497 234s size: 13 bytes 234s > 234s > ## Add one more commit 234s > f <- file(file.path(path, "test.txt"), "wb") 234s > writeChar("Hello world!\nHELLO WORLD!\nHeLlO wOrLd!\n", f, eos = NULL) 234s > close(f) 234s > add(repo, "test.txt") 234s > blob <- lookup(repo, tree(commit(repo, "New commit message"))$id[1]) 234s > stopifnot(identical(content(blob), 234s + c("Hello world!", "HELLO WORLD!", "HeLlO wOrLd!"))) 234s > stopifnot(identical(rawToChar(content(blob, raw = TRUE)), 234s + content(blob, split = FALSE))) 234s > 234s > ## Check content of binary file 234s > set.seed(42) 234s > x <- as.raw((sample(0:255, 1000, replace = TRUE))) 234s > writeBin(x, con = file.path(path, "test.bin")) 234s > add(repo, "test.bin") 234s > commit(repo, "Add binary file") 234s [13c1fa2] 2025-03-15: Add binary file 234s > blob <- tree(last_commit(repo))["test.bin"] 234s > stopifnot(identical(content(blob), NA_character_)) 234s > stopifnot(identical(x, content(blob, raw = TRUE))) 234s > 234s > ## Hash 234s > stopifnot(identical(hash("Hello, world!\n"), 234s + "af5626b4a114abcb82d63db7c8082c3c4756e51b")) 234s > stopifnot(identical(hash("test content\n"), 234s + "d670460b4b4aece5915caf5c68d12f560a9fe3e4")) 234s > stopifnot(identical(hash(c("Hello, world!\n", 234s + "test content\n")), 234s + c("af5626b4a114abcb82d63db7c8082c3c4756e51b", 234s + "d670460b4b4aece5915caf5c68d12f560a9fe3e4"))) 234s > stopifnot(identical(hash(c("Hello, world!\n", 234s + NA_character_, 234s + "test content\n")), 234s + c("af5626b4a114abcb82d63db7c8082c3c4756e51b", 234s + NA_character_, 234s + "d670460b4b4aece5915caf5c68d12f560a9fe3e4"))) 234s > stopifnot(identical(hash(character(0)), character(0))) 234s > 234s > ## Hash file 234s > test_1_txt <- file(file.path(path, "test-1.txt"), "wb") 234s > writeChar("Hello, world!\n", test_1_txt, eos = NULL) 234s > close(test_1_txt) 234s > test_2_txt <- file(file.path(path, "test-2.txt"), "wb") 234s > writeChar("test content\n", test_2_txt, eos = NULL) 234s > close(test_2_txt) 234s > stopifnot(identical(hash("Hello, world!\n"), 234s + hashfile(file.path(path, "test-1.txt")))) 234s > stopifnot(identical(hash("test content\n"), 234s + hashfile(file.path(path, "test-2.txt")))) 234s > stopifnot(identical(hash(c("Hello, world!\n", 234s + "test content\n")), 234s + hashfile(c(file.path(path, "test-1.txt"), 234s + file.path(path, "test-2.txt"))))) 234s > assertError(hashfile(c(file.path(path, "test-1.txt"), 234s + NA_character_, 234s + file.path(path, "test-2.txt")))) 234s > stopifnot(identical(hashfile(character(0)), character(0))) 234s > 234s > ## Create blob from disk 234s > tmp_file_1 <- tempfile() 234s > tmp_file_2 <- tempfile() 234s > f1 <- file(tmp_file_1, "wb") 234s > writeChar("Hello, world!\n", f1, eos = NULL) 234s > close(f1) 234s > f2 <- file(tmp_file_2, "wb") 234s > writeChar("test content\n", f2, eos = NULL) 234s > close(f2) 234s > blob_list_1 <- blob_create(repo, c(tmp_file_1, tmp_file_2), relative = FALSE) 234s > unlink(tmp_file_1) 234s > unlink(tmp_file_2) 234s > stopifnot(identical(sapply(blob_list_1, "[[", "sha"), 234s + c("af5626b4a114abcb82d63db7c8082c3c4756e51b", 234s + "d670460b4b4aece5915caf5c68d12f560a9fe3e4"))) 234s > 234s > ## Create blob from workdir 234s > tmp_file_3 <- file.path(path, "test-workdir-1.txt") 234s > tmp_file_4 <- file.path(path, "test-workdir-2.txt") 234s > f3 <- file(tmp_file_3, "wb") 234s > writeChar("Hello, world!\n", f3, eos = NULL) 234s > close(f3) 234s > f4 <- file(tmp_file_4, "wb") 234s > writeChar("test content\n", f4, eos = NULL) 234s > close(f4) 234s > blob_list_2 <- blob_create(repo, c("test-workdir-1.txt", 234s + "test-workdir-2.txt")) 234s > stopifnot(identical(sapply(blob_list_2, "[[", "sha"), 234s + c("af5626b4a114abcb82d63db7c8082c3c4756e51b", 234s + "d670460b4b4aece5915caf5c68d12f560a9fe3e4"))) 234s > 234s > ## Test arguments 234s > check_error(assertError(.Call(git2r:::git2r_blob_content, NULL, FALSE)), 234s + "'blob' must be an S3 class git_blob") 234s > check_error(assertError(.Call(git2r:::git2r_blob_content, 3, FALSE)), 234s + "'blob' must be an S3 class git_blob") 234s > check_error(assertError(.Call(git2r:::git2r_blob_content, repo, FALSE)), 234s + "'blob' must be an S3 class git_blob") 234s > 234s > b <- blob_list_1[[1]] 234s > b$sha <- NA_character_ 234s > check_error(assertError(.Call(git2r:::git2r_blob_content, b, FALSE)), 234s + "'blob' must be an S3 class git_blob") 234s > 234s > check_error(assertError(hashfile(NA)), "invalid 'path' argument") 234s > 234s > ## Cleanup 234s > unlink(path, recursive = TRUE) 234s > 234s BEGIN TEST branch.R 234s 234s R version 4.4.3 (2025-02-28) -- "Trophy Case" 234s Copyright (C) 2025 The R Foundation for Statistical Computing 234s Platform: x86_64-pc-linux-gnu 234s 234s R is free software and comes with ABSOLUTELY NO WARRANTY. 234s You are welcome to redistribute it under certain conditions. 234s Type 'license()' or 'licence()' for distribution details. 234s 234s R is a collaborative project with many contributors. 234s Type 'contributors()' for more information and 234s 'citation()' on how to cite R or R packages in publications. 234s 234s Type 'demo()' for some demos, 'help()' for on-line help, or 234s 'help.start()' for an HTML browser interface to help. 234s Type 'q()' to quit R. 234s 234s > ## git2r, R bindings to the libgit2 library. 234s > ## Copyright (C) 2013-2023 The git2r contributors 234s > ## 234s > ## This program is free software; you can redistribute it and/or modify 234s > ## it under the terms of the GNU General Public License, version 2, 234s > ## as published by the Free Software Foundation. 234s > ## 234s > ## git2r is distributed in the hope that it will be useful, 234s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 234s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 234s > ## GNU General Public License for more details. 234s > ## 234s > ## You should have received a copy of the GNU General Public License along 234s > ## with this program; if not, write to the Free Software Foundation, Inc., 234s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 234s > 234s > library(git2r) 234s > 234s > ## For debugging 234s > sessionInfo() 234s R version 4.4.3 (2025-02-28) 234s Platform: x86_64-pc-linux-gnu 234s Running under: Ubuntu Plucky Puffin (development branch) 234s 234s Matrix products: default 234s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 234s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 234s 234s locale: 234s [1] C 234s 234s time zone: Etc/UTC 234s tzcode source: system (glibc) 234s 234s attached base packages: 234s [1] stats graphics grDevices utils datasets methods base 234s 234s other attached packages: 234s [1] git2r_0.35.0 234s 234s loaded via a namespace (and not attached): 234s [1] compiler_4.4.3 234s > libgit2_version() 234s $major 234s [1] 1 234s 234s $minor 234s [1] 9 234s 234s $rev 234s [1] 0 234s 234s > libgit2_features() 234s $threads 234s [1] TRUE 234s 234s $https 234s [1] TRUE 234s 234s $ssh 234s [1] TRUE 234s 234s > 234s > 234s > ## Create a directory in tempdir 234s > path <- tempfile(pattern = "git2r-") 234s > dir.create(path) 234s > 234s > ## Initialize a repository 234s > repo <- init(path, branch = "main") 234s > config(repo, user.name = "Alice", user.email = "alice@example.org") 234s > 234s > ## Create a file 234s > writeLines("Hello world!", file.path(path, "test.txt")) 234s > 234s > ## add and commit 234s > add(repo, "test.txt") 234s > commit_1 <- commit(repo, "Commit message") 234s > 234s > ## Check branch 234s > stopifnot(identical(length(branches(repo)), 1L)) 234s > stopifnot(identical(is_head(branches(repo)[[1]]), TRUE)) 234s > stopifnot(identical(is_local(branches(repo)[[1]]), TRUE)) 234s > stopifnot(identical(branches(repo)[[1]]$name, "main")) 234s > stopifnot(identical(branches(repo)[[1]], repository_head(repo))) 234s > stopifnot(identical(branches(repo)$main, repository_head(repo))) 234s > 234s > ## Check branch argument 234s > res <- tools::assertError(is_local(1)) 234s > stopifnot(length(grep("argument 'branch' must be a 'git_branch' object", 234s + res[[1]]$message)) > 0) 234s > 234s > ## Check branch name argument 234s > res <- tools::assertError(branch_set_upstream()) 234s > stopifnot(length(grep("Missing argument name", 234s + res[[1]]$message)) > 0) 234s > 234s > ## Print branch 234s > b <- repository_head(repo) 234s > stopifnot(identical(print(b), b)) 234s [f3940d] (Local) (HEAD) main 234s > 234s > ## Create a branch 234s > b <- branch_create(commit_1, name = "test") 234s > stopifnot(identical(b$name, "test")) 234s > stopifnot(identical(b$type, 1L)) 234s > stopifnot(identical(sha(b), branch_target(b))) 234s > stopifnot(identical(length(branches(repo)), 2L)) 234s > stopifnot(identical(branch_target(branches(repo)[[1]]), 234s + branch_target(branches(repo)[[2]]))) 234s > 234s > ## Check is_branch 234s > stopifnot(identical(is_branch(b), TRUE)) 234s > stopifnot(identical(is_branch(5), FALSE)) 234s > 234s > ## Add one more commit 234s > writeLines(c("Hello world!", "HELLO WORLD!"), file.path(path, "test.txt")) 234s > add(repo, "test.txt") 234s > commit_2 <- commit(repo, "Another commit message") 234s > 234s > ## Now the first branch should have moved on 234s > stopifnot(!identical(branch_target(branches(repo)[[1]]), 234s + branch_target(branches(repo)[[2]]))) 234s > 234s > ## Create a branch with the same name should fail 234s > tools::assertError(branch_create(commit_2, name = "test")) 234s > 234s > ## Force it and check the branches are identical again 234s > b <- branch_create(commit_2, name = "test", force = TRUE) 234s > stopifnot(identical(branch_target(branches(repo)[[1]]), 234s + branch_target(branches(repo)[[2]]))) 234s > 234s > ## Test arguments 234s > res <- tools::assertError(.Call(git2r:::git2r_branch_delete, NULL)) 234s > stopifnot(length(grep("'branch' must be an S3 class git_branch", 234s + res[[1]]$message)) > 0) 234s > res <- tools::assertError(.Call(git2r:::git2r_branch_delete, 3)) 234s > stopifnot(length(grep("'branch' must be an S3 class git_branch", 234s + res[[1]]$message)) > 0) 234s > res <- tools::assertError(.Call(git2r:::git2r_branch_delete, repo)) 234s > stopifnot(length(grep("'branch' must be an S3 class git_branch", 234s + res[[1]]$message)) > 0) 234s > b_tmp <- b 234s > b_tmp$name <- NA_character_ 234s > res <- tools::assertError(.Call(git2r:::git2r_branch_delete, b_tmp)) 234s > stopifnot(length(grep("'branch' must be an S3 class git_branch", 234s + res[[1]]$message)) > 0) 234s > b_tmp <- b 234s > b_tmp$type <- NA_integer_ 234s > res <- tools::assertError(.Call(git2r:::git2r_branch_delete, b_tmp)) 234s > stopifnot(length(grep("'branch' must be an S3 class git_branch", 234s + res[[1]]$message)) > 0) 234s > b_tmp$type <- 3L 234s > res <- tools::assertError(.Call(git2r:::git2r_branch_delete, b_tmp)) 234s > stopifnot(length(grep("'branch' must be an S3 class git_branch", 234s + res[[1]]$message)) > 0) 234s > 234s > ## Delete branch 234s > branch_delete(b) 234s > stopifnot(identical(length(branches(repo)), 1L)) 234s > 234s > ## Add one more commit 234s > writeLines(c("Hello world!", "HELLO WORLD!", "hello world"), 234s + file.path(path, "test.txt")) 234s > add(repo, "test.txt") 234s > commit_3 <- commit(repo, "Another third commit message") 234s > 234s > ## Create and test renaming of branches 234s > b_1 <- branch_create(commit_1, name = "test-1") 234s > b_2 <- branch_create(commit_2, name = "test-2") 234s > b_3 <- branch_create(commit_3, name = "test-3") 234s > stopifnot(identical(length(branches(repo)), 4L)) 234s > b_1 <- branch_rename(b_1, name = "test-1-new-name") 234s > stopifnot(identical(length(branches(repo)), 4L)) 234s > stopifnot(identical(b_1$name, "test-1-new-name")) 234s > tools::assertError(branch_rename(b_1, name = "test-2")) 234s > branch_rename(b_1, name = "test-2", force = TRUE) 234s > stopifnot(identical(length(branches(repo)), 3L)) 234s > 234s > ## Check branches method with missing repo argument 234s > wd <- setwd(path) 234s > stopifnot(identical(length(branches()), 3L)) 234s > if (!is.null(wd)) 234s + setwd(wd) 234s > 234s > ## Cleanup 234s > unlink(path, recursive = TRUE) 234s > 234s BEGIN TEST bundle.R 234s 234s R version 4.4.3 (2025-02-28) -- "Trophy Case" 234s Copyright (C) 2025 The R Foundation for Statistical Computing 234s Platform: x86_64-pc-linux-gnu 234s 234s R is free software and comes with ABSOLUTELY NO WARRANTY. 234s You are welcome to redistribute it under certain conditions. 234s Type 'license()' or 'licence()' for distribution details. 234s 234s R is a collaborative project with many contributors. 234s Type 'contributors()' for more information and 234s 'citation()' on how to cite R or R packages in publications. 234s 234s Type 'demo()' for some demos, 'help()' for on-line help, or 234s 'help.start()' for an HTML browser interface to help. 234s Type 'q()' to quit R. 234s 234s > ## git2r, R bindings to the libgit2 library. 234s > ## Copyright (C) 2013-2023 The git2r contributors 234s > ## 234s > ## This program is free software; you can redistribute it and/or modify 234s > ## it under the terms of the GNU General Public License, version 2, 234s > ## as published by the Free Software Foundation. 234s > ## 234s > ## git2r is distributed in the hope that it will be useful, 234s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 234s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 234s > ## GNU General Public License for more details. 234s > ## 234s > ## You should have received a copy of the GNU General Public License along 234s > ## with this program; if not, write to the Free Software Foundation, Inc., 234s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 234s > 234s > library("git2r") 234s > 234s > ## For debugging 234s > sessionInfo() 234s R version 4.4.3 (2025-02-28) 234s Platform: x86_64-pc-linux-gnu 234s Running under: Ubuntu Plucky Puffin (development branch) 234s 234s Matrix products: default 234s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 234s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 234s 234s locale: 234s [1] C 234s 234s time zone: Etc/UTC 234s tzcode source: system (glibc) 234s 234s attached base packages: 234s [1] stats graphics grDevices utils datasets methods base 234s 234s other attached packages: 234s [1] git2r_0.35.0 234s 234s loaded via a namespace (and not attached): 234s [1] compiler_4.4.3 234s > libgit2_version() 234s $major 234s [1] 1 234s 234s $minor 234s [1] 9 234s 234s $rev 234s [1] 0 234s 234s > libgit2_features() 234s $threads 234s [1] TRUE 234s 234s $https 234s [1] TRUE 234s 234s $ssh 234s [1] TRUE 234s 234s > 234s > 234s > ## Create a directory in tempdir 234s > path <- tempfile(pattern = "git2r-") 234s > dir.create(file.path(path, "bundle", "R"), recursive = TRUE) 234s > 234s > ## Initialize a repository 234s > repo <- init(file.path(path, "bundle")) 234s > config(repo, user.name = "Alice", user.email = "alice@example.org") 234s > 234s > ## Create a DESCRIPTION file 234s > writeLines(c( 234s + "package: bundle", 234s + "Title: Bundle Git Repository", 234s + "Description: Bundle a bare repository of the code in the 'inst' folder.", 234s + "Version: 0.1", 234s + "License: GPL-2", 234s + "Authors@R: person('Alice', role = c('aut', 'cre'),", 234s + " email = 'alice@example.org')"), 234s + con = file.path(path, "bundle", "DESCRIPTION")) 234s > add(repo, file.path(path, "bundle", "DESCRIPTION")) 234s > commit(repo, "Add DESCRIPTION file") 234s [ee23bf7] 2025-03-15: Add DESCRIPTION file 234s > 234s > ## Create R file 234s > writeLines("f <- function(x, y) x+y", 234s + con = file.path(path, "bundle", "R", "bundle.R")) 234s > add(repo, file.path(path, "bundle", "R", "bundle.R")) 234s > commit(repo, "Add R file") 234s [07e749f] 2025-03-15: Add R file 234s > 234s > ## Bundle package 234s > bundle_r_package(repo) 234s cloning into '/tmp/RtmpPHYrA8/git2r-916766cadb2/bundle/inst/bundle.git'... 234s > 234s > ## Fails if bundled package exists 234s > tools::assertError(bundle_r_package(repo)) 234s > 234s > ## Cleanup 234s > unlink(path, recursive = TRUE) 234s > 234s BEGIN TEST checkout-named-branch.R 234s 234s R version 4.4.3 (2025-02-28) -- "Trophy Case" 234s Copyright (C) 2025 The R Foundation for Statistical Computing 234s Platform: x86_64-pc-linux-gnu 234s 234s R is free software and comes with ABSOLUTELY NO WARRANTY. 234s You are welcome to redistribute it under certain conditions. 234s Type 'license()' or 'licence()' for distribution details. 234s 234s R is a collaborative project with many contributors. 234s Type 'contributors()' for more information and 234s 'citation()' on how to cite R or R packages in publications. 234s 234s Type 'demo()' for some demos, 'help()' for on-line help, or 234s 'help.start()' for an HTML browser interface to help. 234s Type 'q()' to quit R. 234s 234s > ## git2r, R bindings to the libgit2 library. 234s > ## Copyright (C) 2013-2023 The git2r contributors 234s > ## 234s > ## This program is free software; you can redistribute it and/or modify 234s > ## it under the terms of the GNU General Public License, version 2, 234s > ## as published by the Free Software Foundation. 234s > ## 234s > ## git2r is distributed in the hope that it will be useful, 234s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 234s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 234s > ## GNU General Public License for more details. 234s > ## 234s > ## You should have received a copy of the GNU General Public License along 234s > ## with this program; if not, write to the Free Software Foundation, Inc., 234s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 234s > 234s > library(git2r) 234s > 234s > ## For debugging 234s > sessionInfo() 234s R version 4.4.3 (2025-02-28) 234s Platform: x86_64-pc-linux-gnu 234s Running under: Ubuntu Plucky Puffin (development branch) 234s 234s Matrix products: default 234s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 234s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 234s 234s locale: 234s [1] C 234s 234s time zone: Etc/UTC 234s tzcode source: system (glibc) 234s 234s attached base packages: 234s [1] stats graphics grDevices utils datasets methods base 234s 234s other attached packages: 234s [1] git2r_0.35.0 234s 234s loaded via a namespace (and not attached): 234s [1] compiler_4.4.3 234s > libgit2_version() 234s $major 234s [1] 1 234s 234s $minor 234s [1] 9 234s 234s $rev 234s [1] 0 234s 234s > libgit2_features() 234s $threads 234s [1] TRUE 234s 234s $https 234s [1] TRUE 234s 234s $ssh 234s [1] TRUE 234s 234s > 234s > 234s > ## Create directories for repositories in tempdir 234s > path_bare <- tempfile(pattern = "git2r-") 234s > path_repo_1 <- tempfile(pattern = "git2r-") 234s > path_repo_2 <- tempfile(pattern = "git2r-") 234s > 234s > dir.create(path_bare) 234s > dir.create(path_repo_1) 234s > dir.create(path_repo_2) 234s > 234s > ## Create bare repository 234s > bare_repo <- init(path_bare, bare = TRUE) 234s > 234s > ## Clone to repo 1 234s > repo_1 <- clone(path_bare, path_repo_1) 234s cloning into '/tmp/RtmpTiLwuu/git2r-92247d9d785'... 234s > config(repo_1, user.name = "Alice", user.email = "alice@example.org") 234s > 234s > ## Add changes to repo 1 and push to bare 234s > writeLines( 234s + "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 234s + con = file.path(path_repo_1, "test.txt")) 234s > add(repo_1, "test.txt") 234s > commit(repo_1, "First commit message") 234s [08d335f] 2025-03-15: First commit message 234s > branch_name <- branches(repo_1)[[1]]$name 234s > push(repo_1, "origin", paste0("refs/heads/", branch_name)) 234s > 234s > ## Test checkout branch argument 234s > tools::assertError(checkout(repo_1)) 234s > tools::assertError(checkout(repo_1, c("master", "master"))) 234s > tools::assertError(checkout(repo_1, "dev")) 234s > 234s > ## Create and checkout dev branch in repo 1 234s > checkout(repo_1, "dev", create = TRUE) 234s > 234s > ## Add changes to dev branch in repo 1 and push to bare 234s > writeLines( 234s + c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 234s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 234s + con = file.path(path_repo_1, "test.txt")) 234s > add(repo_1, "test.txt") 234s > commit(repo_1, "Second commit message") 234s [c4f66ee] 2025-03-15: Second commit message 234s > push(repo_1, "origin", "refs/heads/dev") 234s > 234s > ## Clone to repo 2 234s > repo_2 <- clone(path_bare, path_repo_2) 234s cloning into '/tmp/RtmpTiLwuu/git2r-92237e15964'... 234s > config(repo_2, user.name = "Bob", user.email = "bob@example.org") 234s > 234s > stopifnot(identical( 234s + "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 234s + readLines(file.path(path_repo_2, "test.txt")))) 234s > 234s > ## Checkout dev branch 234s > checkout(repo_2, "dev") 234s > 234s > ## Check content of file 234s > stopifnot(identical( 234s + c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 234s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 234s + readLines(file.path(path_repo_2, "test.txt")))) 234s > 234s > ## Checkout previous branch 234s > checkout(repo_2, "-") 234s > stopifnot(identical(repository_head(repo_2)$name, branch_name)) 234s > 234s > ## Cleanup 234s > unlink(path_bare, recursive = TRUE) 234s > unlink(path_repo_1, recursive = TRUE) 234s > unlink(path_repo_2, recursive = TRUE) 234s > 234s BEGIN TEST checkout.R 235s 235s R version 4.4.3 (2025-02-28) -- "Trophy Case" 235s Copyright (C) 2025 The R Foundation for Statistical Computing 235s Platform: x86_64-pc-linux-gnu 235s 235s R is free software and comes with ABSOLUTELY NO WARRANTY. 235s You are welcome to redistribute it under certain conditions. 235s Type 'license()' or 'licence()' for distribution details. 235s 235s R is a collaborative project with many contributors. 235s Type 'contributors()' for more information and 235s 'citation()' on how to cite R or R packages in publications. 235s 235s Type 'demo()' for some demos, 'help()' for on-line help, or 235s 'help.start()' for an HTML browser interface to help. 235s Type 'q()' to quit R. 235s 235s > ## git2r, R bindings to the libgit2 library. 235s > ## Copyright (C) 2013-2023 The git2r contributors 235s > ## 235s > ## This program is free software; you can redistribute it and/or modify 235s > ## it under the terms of the GNU General Public License, version 2, 235s > ## as published by the Free Software Foundation. 235s > ## 235s > ## git2r is distributed in the hope that it will be useful, 235s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 235s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 235s > ## GNU General Public License for more details. 235s > ## 235s > ## You should have received a copy of the GNU General Public License along 235s > ## with this program; if not, write to the Free Software Foundation, Inc., 235s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 235s > 235s > library(git2r) 235s > 235s > ## For debugging 235s > sessionInfo() 235s R version 4.4.3 (2025-02-28) 235s Platform: x86_64-pc-linux-gnu 235s Running under: Ubuntu Plucky Puffin (development branch) 235s 235s Matrix products: default 235s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 235s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 235s 235s locale: 235s [1] C 235s 235s time zone: Etc/UTC 235s tzcode source: system (glibc) 235s 235s attached base packages: 235s [1] stats graphics grDevices utils datasets methods base 235s 235s other attached packages: 235s [1] git2r_0.35.0 235s 235s loaded via a namespace (and not attached): 235s [1] compiler_4.4.3 235s > libgit2_version() 235s $major 235s [1] 1 235s 235s $minor 235s [1] 9 235s 235s $rev 235s [1] 0 235s 235s > libgit2_features() 235s $threads 235s [1] TRUE 235s 235s $https 235s [1] TRUE 235s 235s $ssh 235s [1] TRUE 235s 235s > 235s > 235s > ## Create a directory in tempdir 235s > path <- tempfile(pattern = "git2r-") 235s > dir.create(path) 235s > 235s > ## Initialize a repository 235s > repo <- init(path, branch = "main") 235s > config(repo, user.name = "Alice", user.email = "alice@example.org") 235s > 235s > ## Create first commit 235s > writeLines("Hello world!", file.path(path, "test.txt")) 235s > add(repo, "test.txt") 235s > commit_1 <- commit(repo, "First commit message") 235s > 235s > ## Edit file and checkout 235s > writeLines(c("Hello world!", "Hello world!"), file.path(path, "test.txt")) 235s > status_exp_1 <- structure(list(staged = structure(list(), 235s + .Names = character(0)), 235s + unstaged = structure(list(modified = "test.txt"), 235s + .Names = "modified"), 235s + untracked = structure(list(), 235s + .Names = character(0))), 235s + .Names = c("staged", "unstaged", "untracked"), 235s + class = "git_status") 235s > status_obs_1 <- status(repo) 235s > str(status_exp_1) 235s List of 3 235s $ staged : Named list() 235s $ unstaged :List of 1 235s ..$ modified: chr "test.txt" 235s $ untracked: Named list() 235s - attr(*, "class")= chr "git_status" 235s > str(status_obs_1) 235s List of 3 235s $ staged : Named list() 235s $ unstaged :List of 1 235s ..$ modified: chr "test.txt" 235s $ untracked: Named list() 235s - attr(*, "class")= chr "git_status" 235s > stopifnot(identical(status_obs_1, status_exp_1)) 235s > checkout(repo, path = "test.txt") 235s > status_exp_2 <- structure(list(staged = structure(list(), 235s + .Names = character(0)), 235s + unstaged = structure(list(), 235s + .Names = character(0)), 235s + untracked = structure(list(), 235s + .Names = character(0))), 235s + .Names = c("staged", "unstaged", "untracked"), 235s + class = "git_status") 235s > status_obs_2 <- status(repo) 235s > str(status_exp_2) 235s List of 3 235s $ staged : Named list() 235s $ unstaged : Named list() 235s $ untracked: Named list() 235s - attr(*, "class")= chr "git_status" 235s > str(status_obs_2) 235s List of 3 235s $ staged : Named list() 235s $ unstaged : Named list() 235s $ untracked: Named list() 235s - attr(*, "class")= chr "git_status" 235s > stopifnot(identical(status_obs_2, status_exp_2)) 235s > 235s > ## Create second commit 235s > writeLines(c("Hello world!", "HELLO WORLD!"), file.path(path, "test.txt")) 235s > add(repo, "test.txt") 235s > commit_2 <- commit(repo, "Second commit message") 235s > tag(repo, "commit_2", "Tag message") 235s > 235s > ## Create third commit 235s > writeLines(c("Hello world!", "HELLO WORLD!", "HeLlO wOrLd!"), 235s + file.path(path, "test.txt")) 235s > add(repo, "test.txt") 235s > commit_3 <- commit(repo, "Third commit message") 235s > 235s > ## Check HEAD 235s > stopifnot(identical(is_detached(repo), FALSE)) 235s > stopifnot(identical(repository_head(repo)$name, "main")) 235s > 235s > ## Check show and summary 235s > repo 235s Local: main /tmp/RtmpDKz9vD/git2r-92e66f42124 235s Head: [17f8d72] 2025-03-15: Third commit message 235s > summary(repo) 235s Local: main /tmp/RtmpDKz9vD/git2r-92e66f42124 235s Head: [17f8d72] 2025-03-15: Third commit message 235s 235s Branches: 1 235s Tags: 1 235s Commits: 3 235s Contributors: 1 235s Stashes: 0 235s Ignored files: 0 235s Untracked files: 0 235s Unstaged files: 0 235s Staged files: 0 235s 235s Latest commits: 235s [17f8d72] 2025-03-15: Third commit message 235s [b420e9e] 2025-03-15: Second commit message 235s [dc15912] 2025-03-15: First commit message 235s > 235s > ## Checkout first commit 235s > checkout(commit_1, TRUE) 235s > stopifnot(identical(is_detached(repo), TRUE)) 235s > stopifnot(identical(repository_head(repo), commit_1)) 235s > stopifnot(identical(readLines(file.path(path, "test.txt")), "Hello world!")) 235s > 235s > ## Check show and summary 235s > repo 235s Local: (detached) /tmp/RtmpDKz9vD/git2r-92e66f42124 235s Head: [dc15912] 2025-03-15: First commit message 235s > summary(repo) 235s Local: (detached) /tmp/RtmpDKz9vD/git2r-92e66f42124 235s Head: [dc15912] 2025-03-15: First commit message 235s 235s Branches: 1 235s Tags: 1 235s Commits: 1 235s Contributors: 1 235s Stashes: 0 235s Ignored files: 0 235s Untracked files: 0 235s Unstaged files: 0 235s Staged files: 0 235s 235s Latest commits: 235s [dc15912] 2025-03-15: First commit message 235s > 235s > ## Checkout tag 235s > checkout(tags(repo)[[1]], TRUE) 235s > stopifnot(identical(is_detached(repo), TRUE)) 235s > stopifnot(identical(readLines(file.path(path, "test.txt")), 235s + c("Hello world!", "HELLO WORLD!"))) 235s > 235s > ## Check is_detached with missing repo argument 235s > wd <- setwd(path) 235s > stopifnot(identical(is_detached(), TRUE)) 235s > if (!is.null(wd)) 235s + setwd(wd) 235s > 235s > ## Cleanup 235s > unlink(path, recursive = TRUE) 235s > 235s BEGIN TEST checkout_branch.R 235s 235s R version 4.4.3 (2025-02-28) -- "Trophy Case" 235s Copyright (C) 2025 The R Foundation for Statistical Computing 235s Platform: x86_64-pc-linux-gnu 235s 235s R is free software and comes with ABSOLUTELY NO WARRANTY. 235s You are welcome to redistribute it under certain conditions. 235s Type 'license()' or 'licence()' for distribution details. 235s 235s R is a collaborative project with many contributors. 235s Type 'contributors()' for more information and 235s 'citation()' on how to cite R or R packages in publications. 235s 235s Type 'demo()' for some demos, 'help()' for on-line help, or 235s 'help.start()' for an HTML browser interface to help. 235s Type 'q()' to quit R. 235s 235s > ## git2r, R bindings to the libgit2 library. 235s > ## Copyright (C) 2013-2023 The git2r contributors 235s > ## 235s > ## This program is free software; you can redistribute it and/or modify 235s > ## it under the terms of the GNU General Public License, version 2, 235s > ## as published by the Free Software Foundation. 235s > ## 235s > ## git2r is distributed in the hope that it will be useful, 235s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 235s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 235s > ## GNU General Public License for more details. 235s > ## 235s > ## You should have received a copy of the GNU General Public License along 235s > ## with this program; if not, write to the Free Software Foundation, Inc., 235s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 235s > 235s > library(git2r) 235s > 235s > ## For debugging 235s > sessionInfo() 235s R version 4.4.3 (2025-02-28) 235s Platform: x86_64-pc-linux-gnu 235s Running under: Ubuntu Plucky Puffin (development branch) 235s 235s Matrix products: default 235s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 235s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 235s 235s locale: 235s [1] C 235s 235s time zone: Etc/UTC 235s tzcode source: system (glibc) 235s 235s attached base packages: 235s [1] stats graphics grDevices utils datasets methods base 235s 235s other attached packages: 235s [1] git2r_0.35.0 235s 235s loaded via a namespace (and not attached): 235s [1] compiler_4.4.3 235s > libgit2_version() 235s $major 235s [1] 1 235s 235s $minor 235s [1] 9 235s 235s $rev 235s [1] 0 235s 235s > libgit2_features() 235s $threads 235s [1] TRUE 235s 235s $https 235s [1] TRUE 235s 235s $ssh 235s [1] TRUE 235s 235s > 235s > 235s > ## Create a directory in tempdir 235s > path <- tempfile(pattern = "git2r-") 235s > dir.create(path) 235s > 235s > ## Initialize a repository 235s > repo <- init(path, branch = "main") 235s > config(repo, user.name = "Alice", user.email = "alice@example.org") 235s > 235s > ## Create first commit 235s > writeLines("Hello world!", file.path(path, "test-1.txt")) 235s > add(repo, "test-1.txt") 235s > commit(repo, "First commit message") 235s [3316978] 2025-03-15: First commit message 235s > 235s > ## Create and checkout dev branch in repo 235s > checkout(repo, "dev", create = TRUE) 235s > 235s > ## Create second commit 235s > writeLines(c("Hello world!", "HELLO WORLD!"), file.path(path, "test-2.txt")) 235s > add(repo, "test-2.txt") 235s > commit(repo, "Second commit message") 235s [f199ae8] 2025-03-15: Second commit message 235s > 235s > ## Check files 235s > stopifnot(identical(list.files(path), c("test-1.txt", "test-2.txt"))) 235s > 235s > ## Checkout master branch and check files 235s > checkout(repo, "main") 235s > stopifnot(identical(list.files(path), "test-1.txt")) 235s > 235s > ## Cleanup 235s > unlink(path, recursive = TRUE) 235s > 235s > ## Checkout branch in empty repository 235s > 235s > ## Create a directory in tempdir 235s > path <- tempfile(pattern = "git2r-") 235s > dir.create(path) 235s > 235s > ## Initialize a repository 235s > repo <- init(path) 235s > config(repo, user.name = "Alice", user.email = "alice@example.org") 235s > 235s > ## Create and checkout dev branch in repo 235s > checkout(repo, "dev", create = TRUE) 235s > 235s > ## Create first commit 235s > writeLines("Hello world!", file.path(path, "test-1.txt")) 235s > add(repo, "test-1.txt") 235s > commit(repo, "First commit message") 235s [3316978] 2025-03-15: First commit message 235s > 235s > stopifnot(identical(length(branches(repo)), 1L)) 235s > stopifnot(identical(branches(repo)[[1]]$name, "dev")) 235s > 235s > ## Cleanup 235s > unlink(path, recursive = TRUE) 235s > 235s BEGIN TEST checkout_commit.R 235s 235s R version 4.4.3 (2025-02-28) -- "Trophy Case" 235s Copyright (C) 2025 The R Foundation for Statistical Computing 235s Platform: x86_64-pc-linux-gnu 235s 235s R is free software and comes with ABSOLUTELY NO WARRANTY. 235s You are welcome to redistribute it under certain conditions. 235s Type 'license()' or 'licence()' for distribution details. 235s 235s R is a collaborative project with many contributors. 235s Type 'contributors()' for more information and 235s 'citation()' on how to cite R or R packages in publications. 235s 235s Type 'demo()' for some demos, 'help()' for on-line help, or 235s 'help.start()' for an HTML browser interface to help. 235s Type 'q()' to quit R. 235s 235s > ## git2r, R bindings to the libgit2 library. 235s > ## Copyright (C) 2013-2023 The git2r contributors 235s > ## 235s > ## This program is free software; you can redistribute it and/or modify 235s > ## it under the terms of the GNU General Public License, version 2, 235s > ## as published by the Free Software Foundation. 235s > ## 235s > ## git2r is distributed in the hope that it will be useful, 235s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 235s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 235s > ## GNU General Public License for more details. 235s > ## 235s > ## You should have received a copy of the GNU General Public License along 235s > ## with this program; if not, write to the Free Software Foundation, Inc., 235s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 235s > 235s > library("git2r") 235s > 235s > ## For debugging 235s > sessionInfo() 235s R version 4.4.3 (2025-02-28) 235s Platform: x86_64-pc-linux-gnu 235s Running under: Ubuntu Plucky Puffin (development branch) 235s 235s Matrix products: default 235s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 235s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 235s 235s locale: 235s [1] C 235s 235s time zone: Etc/UTC 235s tzcode source: system (glibc) 235s 235s attached base packages: 235s [1] stats graphics grDevices utils datasets methods base 235s 235s other attached packages: 235s [1] git2r_0.35.0 235s 235s loaded via a namespace (and not attached): 235s [1] compiler_4.4.3 235s > libgit2_version() 235s $major 235s [1] 1 235s 235s $minor 235s [1] 9 235s 235s $rev 235s [1] 0 235s 235s > libgit2_features() 235s $threads 235s [1] TRUE 235s 235s $https 235s [1] TRUE 235s 235s $ssh 235s [1] TRUE 235s 235s > 235s > 235s > ## Create a directory in tempdir 235s > path <- tempfile(pattern = "git2r-") 235s > dir.create(path) 235s > 235s > ## Initialize a repository 235s > repo <- init(path) 235s > config(repo, user.name = "Alice", user.email = "alice@example.org") 235s > 235s > ## Create first commit 235s > writeLines("Hello world!", file.path(path, "test-1.txt")) 235s > add(repo, "test-1.txt") 235s > commit_1 <- commit(repo, "First commit message") 235s > 235s > ## Create and checkout dev branch in repo 235s > checkout(repo, "dev", create = TRUE) 235s > 235s > ## Create second commit 235s > writeLines(c("Hello world!", "HELLO WORLD!"), file.path(path, "test-2.txt")) 235s > add(repo, "test-2.txt") 235s > commit_2 <- commit(repo, "Second commit message") 235s > 235s > ## Check files 235s > stopifnot(identical(list.files(path), c("test-1.txt", "test-2.txt"))) 235s > 235s > ## Checkout commit_1 and check files 235s > checkout(commit_1) 235s > stopifnot(identical(list.files(path), "test-1.txt")) 235s > 235s > ## Checkout commit_2 and check files 235s > checkout(commit_2) 235s > stopifnot(identical(list.files(path), c("test-1.txt", "test-2.txt"))) 235s > 235s > ## Cleanup 235s > unlink(path, recursive = TRUE) 235s > 235s BEGIN TEST checkout_tag.R 235s 235s R version 4.4.3 (2025-02-28) -- "Trophy Case" 235s Copyright (C) 2025 The R Foundation for Statistical Computing 235s Platform: x86_64-pc-linux-gnu 235s 235s R is free software and comes with ABSOLUTELY NO WARRANTY. 235s You are welcome to redistribute it under certain conditions. 235s Type 'license()' or 'licence()' for distribution details. 235s 235s R is a collaborative project with many contributors. 235s Type 'contributors()' for more information and 235s 'citation()' on how to cite R or R packages in publications. 235s 235s Type 'demo()' for some demos, 'help()' for on-line help, or 235s 'help.start()' for an HTML browser interface to help. 235s Type 'q()' to quit R. 235s 235s > ## git2r, R bindings to the libgit2 library. 235s > ## Copyright (C) 2013-2023 The git2r contributors 235s > ## 235s > ## This program is free software; you can redistribute it and/or modify 235s > ## it under the terms of the GNU General Public License, version 2, 235s > ## as published by the Free Software Foundation. 235s > ## 235s > ## git2r is distributed in the hope that it will be useful, 235s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 235s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 235s > ## GNU General Public License for more details. 235s > ## 235s > ## You should have received a copy of the GNU General Public License along 235s > ## with this program; if not, write to the Free Software Foundation, Inc., 235s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 235s > 235s > library(git2r) 235s > 235s > ## For debugging 235s > sessionInfo() 235s R version 4.4.3 (2025-02-28) 235s Platform: x86_64-pc-linux-gnu 235s Running under: Ubuntu Plucky Puffin (development branch) 235s 235s Matrix products: default 235s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 235s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 235s 235s locale: 235s [1] C 235s 235s time zone: Etc/UTC 235s tzcode source: system (glibc) 235s 235s attached base packages: 235s [1] stats graphics grDevices utils datasets methods base 235s 235s other attached packages: 235s [1] git2r_0.35.0 235s 235s loaded via a namespace (and not attached): 235s [1] compiler_4.4.3 235s > libgit2_version() 235s $major 235s [1] 1 235s 235s $minor 235s [1] 9 235s 235s $rev 235s [1] 0 235s 235s > libgit2_features() 235s $threads 235s [1] TRUE 235s 235s $https 235s [1] TRUE 235s 235s $ssh 235s [1] TRUE 235s 235s > 235s > 235s > ## Create a directory in tempdir 235s > path <- tempfile(pattern = "git2r-") 235s > dir.create(path) 235s > 235s > ## Initialize a repository 235s > repo <- init(path) 235s > config(repo, user.name = "Alice", user.email = "alice@example.org") 235s > 235s > ## Create first commit 235s > writeLines("Hello world!", file.path(path, "test-1.txt")) 235s > add(repo, "test-1.txt") 235s > commit_1 <- commit(repo, "First commit message") 235s > tag_1 <- tag(repo, "Tag1", "First tag message") 235s > 235s > ## Create and checkout dev branch in repo 235s > checkout(repo, "dev", create = TRUE) 235s > 235s > ## Create second commit 235s > writeLines(c("Hello world!", "HELLO WORLD!"), file.path(path, "test-2.txt")) 235s > add(repo, "test-2.txt") 235s > commit_2 <- commit(repo, "Second commit message") 235s > tag_2 <- tag(repo, "Tag2", "Second tag message") 235s > 235s > ## Check files 235s > stopifnot(identical(list.files(path), c("test-1.txt", "test-2.txt"))) 235s > 235s > ## Checkout tag_1 and check files 235s > checkout(tag_1) 235s > stopifnot(identical(list.files(path), "test-1.txt")) 235s > 235s > ## Checkout tag_2 and check files 235s > checkout(tag_2) 235s > stopifnot(identical(list.files(path), c("test-1.txt", "test-2.txt"))) 235s > 235s > ## Checkout "Tag1" and check files 235s > checkout(repo, "Tag1") 235s > stopifnot(identical(list.files(path), "test-1.txt")) 235s > 235s > ## Cleanup 235s > unlink(path, recursive = TRUE) 235s > 235s BEGIN TEST clone_bare.R 235s 235s R version 4.4.3 (2025-02-28) -- "Trophy Case" 235s Copyright (C) 2025 The R Foundation for Statistical Computing 235s Platform: x86_64-pc-linux-gnu 235s 235s R is free software and comes with ABSOLUTELY NO WARRANTY. 235s You are welcome to redistribute it under certain conditions. 235s Type 'license()' or 'licence()' for distribution details. 235s 235s R is a collaborative project with many contributors. 235s Type 'contributors()' for more information and 235s 'citation()' on how to cite R or R packages in publications. 235s 235s Type 'demo()' for some demos, 'help()' for on-line help, or 235s 'help.start()' for an HTML browser interface to help. 235s Type 'q()' to quit R. 235s 236s > ## git2r, R bindings to the libgit2 library. 236s > ## Copyright (C) 2013-2023 The git2r contributors 236s > ## 236s > ## This program is free software; you can redistribute it and/or modify 236s > ## it under the terms of the GNU General Public License, version 2, 236s > ## as published by the Free Software Foundation. 236s > ## 236s > ## git2r is distributed in the hope that it will be useful, 236s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 236s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 236s > ## GNU General Public License for more details. 236s > ## 236s > ## You should have received a copy of the GNU General Public License along 236s > ## with this program; if not, write to the Free Software Foundation, Inc., 236s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 236s > 236s > library("git2r") 236s > 236s > ## For debugging 236s > sessionInfo() 236s R version 4.4.3 (2025-02-28) 236s Platform: x86_64-pc-linux-gnu 236s Running under: Ubuntu Plucky Puffin (development branch) 236s 236s Matrix products: default 236s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 236s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 236s 236s locale: 236s [1] C 236s 236s time zone: Etc/UTC 236s tzcode source: system (glibc) 236s 236s attached base packages: 236s [1] stats graphics grDevices utils datasets methods base 236s 236s other attached packages: 236s [1] git2r_0.35.0 236s 236s loaded via a namespace (and not attached): 236s [1] compiler_4.4.3 236s > libgit2_version() 236s $major 236s [1] 1 236s 236s $minor 236s [1] 9 236s 236s $rev 236s [1] 0 236s 236s > libgit2_features() 236s $threads 236s [1] TRUE 236s 236s $https 236s [1] TRUE 236s 236s $ssh 236s [1] TRUE 236s 236s > 236s > 236s > ## Create 2 directories in tempdir 236s > path_bare <- tempfile(pattern = "git2r-") 236s > path_repo <- tempfile(pattern = "git2r-") 236s > dir.create(path_bare) 236s > dir.create(path_repo) 236s > 236s > ## Initialize a repository 236s > repo <- init(path_repo) 236s > config(repo, user.name = "Alice", user.email = "alice@example.org") 236s > 236s > ## Add commit to repo 236s > writeLines("Hello world", con = file.path(path_repo, "test.txt")) 236s > add(repo, "test.txt") 236s > commit_1 <- commit(repo, "Commit message") 236s > 236s > ## Check bare argument 236s > tools::assertError(clone(path_repo, path_bare, bare = c(TRUE, TRUE))) 236s > tools::assertError(clone(path_repo, path_bare, bare = 1)) 236s > tools::assertError(clone(path_repo, path_bare, bare = 1L)) 236s > tools::assertError(clone(path_repo, path_bare, bare = "test")) 236s > 236s > ## Clone repo to bare repository 236s > bare_repo <- clone(path_repo, path_bare, bare = TRUE) 236s cloning into '/tmp/RtmpN1QSbD/git2r-95e5e529d9f'... 236s > 236s > ## Check the repositores 236s > stopifnot(identical(is_bare(bare_repo), TRUE)) 236s > stopifnot(identical(is_bare(repo), FALSE)) 236s > 236s > ## Check result in bare repository 236s > stopifnot(identical(length(commits(bare_repo)), 1L)) 236s > bare_commit_1 <- commits(bare_repo)[[1]] 236s > stopifnot(identical(sha(commit_1), sha(bare_commit_1))) 236s > stopifnot(identical(commit_1$author, bare_commit_1$author)) 236s > stopifnot(identical(commit_1$committer, bare_commit_1$committer)) 236s > stopifnot(identical(commit_1$summary, bare_commit_1$summary)) 236s > stopifnot(identical(commit_1$message, bare_commit_1$message)) 236s > stopifnot(!identical(commit_1$repo, bare_commit_1$repo)) 236s > 236s > ## Cleanup 236s > unlink(path_bare, recursive = TRUE) 236s > unlink(path_repo, recursive = TRUE) 236s > 236s BEGIN TEST clone_branch.R 236s 236s R version 4.4.3 (2025-02-28) -- "Trophy Case" 236s Copyright (C) 2025 The R Foundation for Statistical Computing 236s Platform: x86_64-pc-linux-gnu 236s 236s R is free software and comes with ABSOLUTELY NO WARRANTY. 236s You are welcome to redistribute it under certain conditions. 236s Type 'license()' or 'licence()' for distribution details. 236s 236s R is a collaborative project with many contributors. 236s Type 'contributors()' for more information and 236s 'citation()' on how to cite R or R packages in publications. 236s 236s Type 'demo()' for some demos, 'help()' for on-line help, or 236s 'help.start()' for an HTML browser interface to help. 236s Type 'q()' to quit R. 236s 236s > ## git2r, R bindings to the libgit2 library. 236s > ## Copyright (C) 2013-2023 The git2r contributors 236s > ## 236s > ## This program is free software; you can redistribute it and/or modify 236s > ## it under the terms of the GNU General Public License, version 2, 236s > ## as published by the Free Software Foundation. 236s > ## 236s > ## git2r is distributed in the hope that it will be useful, 236s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 236s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 236s > ## GNU General Public License for more details. 236s > ## 236s > ## You should have received a copy of the GNU General Public License along 236s > ## with this program; if not, write to the Free Software Foundation, Inc., 236s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 236s > 236s > library(git2r) 236s > 236s > ## For debugging 236s > sessionInfo() 236s R version 4.4.3 (2025-02-28) 236s Platform: x86_64-pc-linux-gnu 236s Running under: Ubuntu Plucky Puffin (development branch) 236s 236s Matrix products: default 236s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 236s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 236s 236s locale: 236s [1] C 236s 236s time zone: Etc/UTC 236s tzcode source: system (glibc) 236s 236s attached base packages: 236s [1] stats graphics grDevices utils datasets methods base 236s 236s other attached packages: 236s [1] git2r_0.35.0 236s 236s loaded via a namespace (and not attached): 236s [1] compiler_4.4.3 236s > libgit2_version() 236s $major 236s [1] 1 236s 236s $minor 236s [1] 9 236s 236s $rev 236s [1] 0 236s 236s > libgit2_features() 236s $threads 236s [1] TRUE 236s 236s $https 236s [1] TRUE 236s 236s $ssh 236s [1] TRUE 236s 236s > 236s > 236s > ## Create directories for repositories in tempdir 236s > path_bare <- tempfile(pattern = "git2r-") 236s > path_repo_1 <- tempfile(pattern = "git2r-") 236s > path_repo_2 <- tempfile(pattern = "git2r-") 236s > 236s > dir.create(path_bare) 236s > dir.create(path_repo_1) 236s > dir.create(path_repo_2) 236s > 236s > ## Create bare repository 236s > bare_repo <- init(path_bare, bare = TRUE) 236s > 236s > ## Clone to repo 1 236s > repo_1 <- clone(path_bare, path_repo_1) 236s cloning into '/tmp/RtmplXclX2/git2r-96a778e9b21'... 236s > config(repo_1, user.name = "Alice", user.email = "alice@example.org") 236s > 236s > ## Add changes to repo 1 236s > writeLines("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 236s + con = file.path(path_repo_1, "test-1.txt")) 236s > add(repo_1, "test-1.txt") 236s > commit_1 <- commit(repo_1, "First commit message") 236s > branch_name <- branches(repo_1)[[1]]$name 236s > 236s > ## Create 'dev' branch 236s > checkout(branch_create(commit_1, name = "dev")) 236s > 236s > ## Add more changes to repo 1 236s > writeLines(c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 236s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 236s + con = file.path(path_repo_1, "test-1.txt")) 236s > add(repo_1, "test-1.txt") 236s > commit(repo_1, "Second commit message") 236s [543243d] 2025-03-15: Second commit message 236s > 236s > ## Add more changes to repo 1 236s > writeLines( 236s + c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 236s + "eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad", 236s + "minim veniam, quis nostrud exercitation ullamco laboris nisi ut"), 236s + con = file.path(path_repo_1, "test-1.txt")) 236s > add(repo_1, "test-1.txt") 236s > commit(repo_1, "Third commit message") 236s [7e844e9] 2025-03-15: Third commit message 236s > 236s > ## Push to bare 236s > push(repo_1, "origin", paste0("refs/heads/", branch_name)) 236s > push(repo_1, "origin", "refs/heads/dev") 236s > 236s > ## Print branch 236s > branches(repo_1)[[paste0("origin/", branch_name)]] 236s [6d57fe] (origin @ /tmp/RtmplXclX2/git2r-96a179d27f8) master 236s > 236s > ## Clone to repo 2 236s > repo_2 <- clone(url = path_bare, local_path = path_repo_2, branch = "dev") 236s cloning into '/tmp/RtmplXclX2/git2r-96a6e57e580'... 236s > config(repo_2, user.name = "Bob", user.email = "bob@example.org") 236s > 236s > ## Check branch and commits 236s > stopifnot(identical(length(commits(repo_2)), 3L)) 236s > stopifnot(identical(repository_head(repo_2)$name, "dev")) 236s > 236s > ## Cleanup 236s > unlink(path_bare, recursive = TRUE) 236s > unlink(path_repo_1, recursive = TRUE) 236s > unlink(path_repo_2, recursive = TRUE) 236s > 236s BEGIN TEST clone_checkout.R 236s 236s R version 4.4.3 (2025-02-28) -- "Trophy Case" 236s Copyright (C) 2025 The R Foundation for Statistical Computing 236s Platform: x86_64-pc-linux-gnu 236s 236s R is free software and comes with ABSOLUTELY NO WARRANTY. 236s You are welcome to redistribute it under certain conditions. 236s Type 'license()' or 'licence()' for distribution details. 236s 236s R is a collaborative project with many contributors. 236s Type 'contributors()' for more information and 236s 'citation()' on how to cite R or R packages in publications. 236s 236s Type 'demo()' for some demos, 'help()' for on-line help, or 236s 'help.start()' for an HTML browser interface to help. 236s Type 'q()' to quit R. 236s 236s > ## git2r, R bindings to the libgit2 library. 236s > ## Copyright (C) 2013-2023 The git2r contributors 236s > ## 236s > ## This program is free software; you can redistribute it and/or modify 236s > ## it under the terms of the GNU General Public License, version 2, 236s > ## as published by the Free Software Foundation. 236s > ## 236s > ## git2r is distributed in the hope that it will be useful, 236s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 236s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 236s > ## GNU General Public License for more details. 236s > ## 236s > ## You should have received a copy of the GNU General Public License along 236s > ## with this program; if not, write to the Free Software Foundation, Inc., 236s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 236s > 236s > library("git2r") 236s > 236s > ## For debugging 236s > sessionInfo() 236s R version 4.4.3 (2025-02-28) 236s Platform: x86_64-pc-linux-gnu 236s Running under: Ubuntu Plucky Puffin (development branch) 236s 236s Matrix products: default 236s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 236s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 236s 236s locale: 236s [1] C 236s 236s time zone: Etc/UTC 236s tzcode source: system (glibc) 236s 236s attached base packages: 236s [1] stats graphics grDevices utils datasets methods base 236s 236s other attached packages: 236s [1] git2r_0.35.0 236s 236s loaded via a namespace (and not attached): 236s [1] compiler_4.4.3 236s > libgit2_version() 236s $major 236s [1] 1 236s 236s $minor 236s [1] 9 236s 236s $rev 236s [1] 0 236s 236s > libgit2_features() 236s $threads 236s [1] TRUE 236s 236s $https 236s [1] TRUE 236s 236s $ssh 236s [1] TRUE 236s 236s > 236s > 236s > ## Create 2 directories in tempdir 236s > path_src <- tempfile(pattern = "git2r-") 236s > path_tgt <- tempfile(pattern = "git2r-") 236s > dir.create(path_tgt) 236s > dir.create(path_src) 236s > 236s > ## Initialize a repository 236s > repo_src <- init(path_src) 236s > config(repo_src, user.name = "Alice", user.email = "alice@example.org") 236s > 236s > ## Add commit to repo 236s > filename <- "test.txt" 236s > writeLines("Hello world", con = file.path(path_src, filename)) 236s > add(repo_src, "test.txt") 236s > commit_src <- commit(repo_src, "Commit message") 236s > 236s > ## Check checkout argument 236s > tools::assertError(clone(path_src, path_tgt, checkout = c(FALSE, TRUE))) 236s > tools::assertError(clone(path_src, path_tgt, checkout = 1)) 236s > tools::assertError(clone(path_src, path_tgt, checkout = 1L)) 236s > tools::assertError(clone(path_src, path_tgt, checkout = "test")) 236s > 236s > ## Clone source to target repository without checking out any files 236s > repo_tgt <- clone(path_src, path_tgt, checkout = FALSE) 236s cloning into '/tmp/RtmpaDkaaN/git2r-9762d321aa6'... 236s > 236s > ## List files in the repositores 236s > stopifnot(identical(list.files(path_src), filename)) 236s > stopifnot(identical(list.files(path_tgt), character(0))) 236s > 236s > ## Compare commits 236s > stopifnot(identical(length(commits(repo_tgt)), 1L)) 236s > commit_tgt <- last_commit(repo_tgt) 236s > stopifnot(identical(sha(last_commit(path_tgt)), sha(commit_tgt))) 236s > stopifnot(identical(sha(commit_src), sha(commit_tgt))) 236s > stopifnot(identical(commit_src$author, commit_tgt$author)) 236s > stopifnot(identical(commit_src$committer, commit_tgt$committer)) 236s > stopifnot(identical(commit_src$summary, commit_tgt$summary)) 236s > stopifnot(identical(commit_src$message, commit_tgt$message)) 236s > stopifnot(!identical(commit_src$repo, commit_tgt$repo)) 236s > 236s > ## Cleanup 236s > unlink(path_tgt, recursive = TRUE) 236s > unlink(path_src, recursive = TRUE) 236s > 236s BEGIN TEST commit.R 236s 236s R version 4.4.3 (2025-02-28) -- "Trophy Case" 236s Copyright (C) 2025 The R Foundation for Statistical Computing 236s Platform: x86_64-pc-linux-gnu 236s 236s R is free software and comes with ABSOLUTELY NO WARRANTY. 236s You are welcome to redistribute it under certain conditions. 236s Type 'license()' or 'licence()' for distribution details. 236s 236s R is a collaborative project with many contributors. 236s Type 'contributors()' for more information and 236s 'citation()' on how to cite R or R packages in publications. 236s 236s Type 'demo()' for some demos, 'help()' for on-line help, or 236s 'help.start()' for an HTML browser interface to help. 236s Type 'q()' to quit R. 236s 236s > ## git2r, R bindings to the libgit2 library. 236s > ## Copyright (C) 2013-2023 The git2r contributors 236s > ## 236s > ## This program is free software; you can redistribute it and/or modify 236s > ## it under the terms of the GNU General Public License, version 2, 236s > ## as published by the Free Software Foundation. 236s > ## 236s > ## git2r is distributed in the hope that it will be useful, 236s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 236s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 236s > ## GNU General Public License for more details. 236s > ## 236s > ## You should have received a copy of the GNU General Public License along 236s > ## with this program; if not, write to the Free Software Foundation, Inc., 236s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 236s > 236s > library(git2r) 236s > source("util/check.R") 236s > 236s > ## For debugging 236s > sessionInfo() 236s R version 4.4.3 (2025-02-28) 236s Platform: x86_64-pc-linux-gnu 236s Running under: Ubuntu Plucky Puffin (development branch) 236s 236s Matrix products: default 236s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 236s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 236s 236s locale: 236s [1] C 236s 236s time zone: Etc/UTC 236s tzcode source: system (glibc) 236s 236s attached base packages: 236s [1] stats graphics grDevices utils datasets methods base 236s 236s other attached packages: 236s [1] git2r_0.35.0 236s 236s loaded via a namespace (and not attached): 236s [1] compiler_4.4.3 236s > libgit2_version() 236s $major 236s [1] 1 236s 236s $minor 236s [1] 9 236s 236s $rev 236s [1] 0 236s 236s > libgit2_features() 236s $threads 236s [1] TRUE 236s 236s $https 236s [1] TRUE 236s 236s $ssh 236s [1] TRUE 236s 236s > 236s > 236s > ## Create a directory in tempdir 236s > path <- tempfile(pattern = "git2r-") 236s > dir.create(path) 236s > 236s > ## Initialize a repository 236s > repo <- init(path) 236s > config(repo, user.name = "Alice", user.email = "alice@example.org") 236s > 236s > ## Commit without adding changes should produce an error 236s > tools::assertError(commit(repo, "Test to commit")) 236s > 236s > ## Create a file 236s > writeLines("Hello world!", file.path(path, "test.txt")) 236s > 236s > ## Commit without adding changes should produce an error 236s > tools::assertError(commit(repo, "Test to commit")) 236s > 236s > ## Add 236s > add(repo, "test.txt") 236s > 236s > ## Commit with empty message should produce an error 236s > tools::assertError(commit(repo, "")) 236s > 236s > ## Commit 236s > commit_1 <- commit(repo, "Commit message", session = TRUE) 236s > summary(commit_1) 236s Commit: 5de224c2d1ea28c50bddb17de27424069547e256 236s Author: Alice 236s When: 2025-03-15 22:14:02 GMT 236s 236s Commit message 236s 236s sessionInfo: 236s R version 4.4.3 (2025-02-28) 236s Platform: x86_64-pc-linux-gnu 236s Running under: Ubuntu Plucky Puffin (development branch) 236s 236s Matrix products: default 236s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 236s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 236s 236s locale: 236s [1] C 236s 236s time zone: Etc/UTC 236s tzcode source: system (glibc) 236s 236s attached base packages: 236s [1] stats graphics grDevices utils datasets methods base 236s 236s other attached packages: 236s [1] git2r_0.35.0 236s 236s loaded via a namespace (and not attached): 236s [1] compiler_4.4.3 tools_4.4.3 236s > tag_1 <- tag(repo, "Tagname1", "Tag message 1") 236s > 236s > ## Check commit 236s > stopifnot(identical(commit_1$author$name, "Alice")) 236s > stopifnot(identical(commit_1$author$email, "alice@example.org")) 236s > stopifnot(identical(lookup(repo, sha(commit_1)), commit_1)) 236s > stopifnot(identical(length(commits(repo)), 1L)) 236s > stopifnot(identical(commits(repo)[[1]]$author$name, "Alice")) 236s > stopifnot(identical(commits(repo)[[1]]$author$email, "alice@example.org")) 236s > stopifnot(identical(parents(commit_1), list())) 236s > stopifnot(identical(print(commit_1), commit_1)) 236s [5de224c] 2025-03-15: Commit message 236s > 236s > ## Check is_commit 236s > stopifnot(identical(is_commit(commit_1), TRUE)) 236s > stopifnot(identical(is_commit(5), FALSE)) 236s > 236s > ## Commit without adding changes should produce an error 236s > tools::assertError(commit(repo, "Test to commit")) 236s > 236s > ## Add another commit 236s > writeLines(c("Hello world!", "HELLO WORLD!"), file.path(path, "test.txt")) 236s > add(repo, "test.txt") 236s > commit_2 <- commit(repo, "Commit message 2") 236s > summary(commit_2) 236s Commit: 8e3afa1407e2f9054398ab5a92d3a536cdad08ee 236s Author: Alice 236s When: 2025-03-15 22:14:02 GMT 236s 236s Commit message 2 236s 1 file changed, 1 insertions, 0 deletions 236s test.txt | -0 +1 in 1 hunk 236s 236s > tag_2 <- tag(repo, "Tagname2", "Tag message 2") 236s > 236s > ## Check relationship 236s > stopifnot(identical(descendant_of(commit_2, commit_1), TRUE)) 236s > stopifnot(identical(descendant_of(commit_1, commit_2), FALSE)) 236s > stopifnot(identical(descendant_of(tag_2, tag_1), TRUE)) 236s > stopifnot(identical(descendant_of(tag_1, tag_2), FALSE)) 236s > stopifnot(identical(descendant_of(branches(repo)[[1]], commit_1), TRUE)) 236s > stopifnot(identical(descendant_of(commit_1, branches(repo)[[1]]), FALSE)) 236s > stopifnot(identical(length(parents(commit_2)), 1L)) 236s > stopifnot(identical(parents(commit_2)[[1]], commit_1)) 236s > 236s > ## Check contributions 236s > stopifnot(identical( 236s + colnames(contributions(repo, by = "author", breaks = "day")), 236s + c("when", "author", "n"))) 236s > stopifnot(identical(colnames(contributions(repo)), 236s + c("when", "n"))) 236s > stopifnot(identical(nrow(contributions(repo)), 1L)) 236s > stopifnot(identical(contributions(repo)$n, 2L)) 236s > stopifnot(identical(contributions(repo, by = "author", breaks = "day")$n, 2L)) 236s > 236s > ## Add another commit with 'all' argument 236s > writeLines(c("Hello world!", "HELLO WORLD!", "HeLlO wOrLd!"), 236s + file.path(path, "test.txt")) 236s > commit(repo, "Commit message 3", all = TRUE) 236s [62db44f] 2025-03-15: Commit message 3 236s > 236s > status_clean <- structure(list(staged = empty_named_list(), 236s + unstaged = empty_named_list(), 236s + untracked = empty_named_list()), 236s + class = "git_status") 236s > stopifnot(identical(status(repo), status_clean)) 236s > 236s > ## Delete file and commit with 'all' argument 236s > file.remove(file.path(path, "test.txt")) 236s [1] TRUE 236s > commit(repo, "Commit message 4", all = TRUE) 236s [db088ff] 2025-03-15: Commit message 4 236s > 236s > stopifnot(identical(status(repo), status_clean)) 236s > 236s > ## Add and commit multiple tracked files with 'all' argument 236s > writeLines(sample(letters, 3), file.path(path, "test2.txt")) 236s > add(repo, "test2.txt") 236s > writeLines(sample(letters, 3), file.path(path, "test3.txt")) 236s > add(repo, "test3.txt") 236s > writeLines(sample(letters, 3), file.path(path, "test4.txt")) 236s > add(repo, "test4.txt") 236s > commit(repo, "Commit message 5") 236s [812b727] 2025-03-15: Commit message 5 236s > 236s > stopifnot(identical(status(repo), status_clean)) 236s > 236s > writeLines(sample(letters, 3), file.path(path, "test2.txt")) 236s > writeLines(sample(letters, 3), file.path(path, "test3.txt")) 236s > writeLines(sample(letters, 3), file.path(path, "test4.txt")) 236s > commit(repo, "Commit message 6", all = TRUE) 236s [88841fa] 2025-03-15: Commit message 6 236s > 236s > stopifnot(identical(status(repo), status_clean)) 236s > 236s > ## Add one tracked file and delete another with 'all' argument 236s > writeLines(sample(letters, 3), file.path(path, "test2.txt")) 236s > file.remove(file.path(path, "test4.txt")) 236s [1] TRUE 236s > commit(repo, "Commit message 7", all = TRUE) 236s [10abe08] 2025-03-15: Commit message 7 236s > 236s > stopifnot(identical(status(repo), status_clean)) 236s > 236s > ## Delete multiple tracked files with 'all' argument 236s > file.remove(file.path(path, "test2.txt")) 236s [1] TRUE 236s > file.remove(file.path(path, "test3.txt")) 236s [1] TRUE 236s > commit(repo, "Commit message 8", all = TRUE) 236s [412648c] 2025-03-15: Commit message 8 236s > 236s > stopifnot(identical(status(repo), status_clean)) 236s > 236s > ## Check max number of commits in output 236s > stopifnot(identical(length(commits(repo)), 8L)) 236s > stopifnot(identical(length(commits(repo, n = -1)), 8L)) 236s > stopifnot(identical(length(commits(repo, n = 2)), 2L)) 236s > tools::assertError(commits(repo, n = 2.2)) 236s > tools::assertError(commits(repo, n = "2")) 236s > tools::assertError(commits(repo, n = 1:2)) 236s > 236s > ## Check to coerce repository to data.frame 236s > df <- as.data.frame(repo) 236s > stopifnot(identical(dim(df), c(8L, 6L))) 236s > stopifnot(identical(names(df), c("sha", "summary", "message", 236s + "author", "email", "when"))) 236s > 236s > ## Set working directory to path and check commits 236s > setwd(path) 236s > stopifnot(identical(sha(last_commit()), sha(commits(repo, n = 1)[[1]]))) 236s > stopifnot(identical(length(commits()), 8L)) 236s > stopifnot(identical(length(commits(n = -1)), 8L)) 236s > stopifnot(identical(length(commits(n = 2)), 2L)) 236s > tools::assertError(commits(n = 2.2)) 236s > tools::assertError(commits(n = "2")) 236s > 236s > ## Check plot method 236s > plot_file <- tempfile(fileext = ".pdf") 236s > pdf(plot_file) 237s > plot(repo) 237s > dev.off() 237s null device 237s 1 237s > stopifnot(file.exists(plot_file)) 237s > unlink(plot_file) 237s > 237s > ## Check punch card plot method 237s > punch_card_plot_file <- tempfile(fileext = ".pdf") 237s > pdf(punch_card_plot_file) 237s > punch_card(repo) 237s > dev.off() 237s null device 237s 1 237s > stopifnot(file.exists(punch_card_plot_file)) 237s > unlink(punch_card_plot_file) 237s > 237s > ## Check that 'git2r_arg_check_commit' raise error 237s > res <- tools::assertError(.Call(git2r:::git2r_commit_tree, NULL)) 237s > stopifnot(length(grep("'commit' must be an S3 class git_commit", 237s + res[[1]]$message)) > 0) 237s > res <- tools::assertError(.Call(git2r:::git2r_commit_tree, 3)) 237s > stopifnot(length(grep("'commit' must be an S3 class git_commit", 237s + res[[1]]$message)) > 0) 237s > res <- tools::assertError(.Call(git2r:::git2r_commit_tree, repo)) 237s > stopifnot(length(grep("'commit' must be an S3 class git_commit", 237s + res[[1]]$message)) > 0) 237s > commit_1$sha <- NA_character_ 237s > res <- tools::assertError(.Call(git2r:::git2r_commit_tree, commit_1)) 237s > stopifnot(length(grep("'commit' must be an S3 class git_commit", 237s + res[[1]]$message)) > 0) 237s > 237s > ## Cleanup 237s > unlink(path, recursive = TRUE) 237s > 237s > if (identical(Sys.getenv("NOT_CRAN"), "true") || 237s + identical(Sys.getenv("R_COVR"), "true")) { 237s + path <- tempfile(pattern = "git2r-") 237s + dir.create(path) 237s + setwd(path) 237s + system("git clone --depth 2 https://github.com/ropensci/git2r.git") 237s + 237s + ## Check the number of commits in the shallow clone. 237s + stopifnot(identical(length(commits(repository("git2r"))), 2L)) 237s + stopifnot(identical(length(commits(repository("git2r"), n = 1)), 1L)) 237s + 237s + ## Cleanup 237s + unlink(path, recursive = TRUE) 237s + } 237s > 237s sh: 0: getcwd() failed: No such file or directory 237s BEGIN TEST commits_path.R 237s 237s R version 4.4.3 (2025-02-28) -- "Trophy Case" 237s Copyright (C) 2025 The R Foundation for Statistical Computing 237s Platform: x86_64-pc-linux-gnu 237s 237s R is free software and comes with ABSOLUTELY NO WARRANTY. 237s You are welcome to redistribute it under certain conditions. 237s Type 'license()' or 'licence()' for distribution details. 237s 237s R is a collaborative project with many contributors. 237s Type 'contributors()' for more information and 237s 'citation()' on how to cite R or R packages in publications. 237s 237s Type 'demo()' for some demos, 'help()' for on-line help, or 237s 'help.start()' for an HTML browser interface to help. 237s Type 'q()' to quit R. 237s 237s > ## git2r, R bindings to the libgit2 library. 237s > ## Copyright (C) 2013-2023 The git2r contributors 237s > ## 237s > ## This program is free software; you can redistribute it and/or modify 237s > ## it under the terms of the GNU General Public License, version 2, 237s > ## as published by the Free Software Foundation. 237s > ## 237s > ## git2r is distributed in the hope that it will be useful, 237s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 237s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 237s > ## GNU General Public License for more details. 237s > ## 237s > ## You should have received a copy of the GNU General Public License along 237s > ## with this program; if not, write to the Free Software Foundation, Inc., 237s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 237s > 237s > library(git2r) 237s > 237s > ## For debugging 237s > sessionInfo() 237s R version 4.4.3 (2025-02-28) 237s Platform: x86_64-pc-linux-gnu 237s Running under: Ubuntu Plucky Puffin (development branch) 237s 237s Matrix products: default 237s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 237s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 237s 237s locale: 237s [1] C 237s 237s time zone: Etc/UTC 237s tzcode source: system (glibc) 237s 237s attached base packages: 237s [1] stats graphics grDevices utils datasets methods base 237s 237s other attached packages: 237s [1] git2r_0.35.0 237s 237s loaded via a namespace (and not attached): 237s [1] compiler_4.4.3 237s > libgit2_version() 237s $major 237s [1] 1 237s 237s $minor 237s [1] 9 237s 237s $rev 237s [1] 0 237s 237s > libgit2_features() 237s $threads 237s [1] TRUE 237s 237s $https 237s [1] TRUE 237s 237s $ssh 237s [1] TRUE 237s 237s > 237s > 237s > ## Create a directory in tempdir 237s > path <- tempfile(pattern = "git2r-") 237s > dir.create(path) 237s > 237s > ## Initialize a repository 237s > repo <- init(path, branch = "main") 237s > config(repo, user.name = "Alice", user.email = "alice@example.org") 237s > 237s > ## Create two files and alternate commits 237s > writeLines("1", file.path(path, "odd.txt")) 237s > add(repo, "odd.txt") 237s > c1 <- commit(repo, "commit 1") 237s > 237s > writeLines("2", file.path(path, "even.txt")) 237s > add(repo, "even.txt") 237s > c2 <- commit(repo, "commit 2") 237s > 237s > writeLines("3", file.path(path, "odd.txt")) 237s > add(repo, "odd.txt") 237s > c3 <- commit(repo, "commit 3") 237s > 237s > writeLines("4", file.path(path, "even.txt")) 237s > add(repo, "even.txt") 237s > c4 <- commit(repo, "commit 4") 237s > 237s > writeLines("5", file.path(path, "odd.txt")) 237s > add(repo, "odd.txt") 237s > c5 <- commit(repo, "commit 5") 237s > 237s > writeLines("6", file.path(path, "even.txt")) 237s > add(repo, "even.txt") 237s > c6 <- commit(repo, "commit 6") 237s > 237s > commits_all <- commits(repo) 237s > stopifnot(length(commits_all) == 6) 237s > 237s > ## Test path 237s > commits_odd <- commits(repo, path = "odd.txt") 237s > stopifnot(length(commits_odd) == 3) 237s > stopifnot(commits_odd[[1]]$sha == c5$sha) 237s > stopifnot(commits_odd[[2]]$sha == c3$sha) 237s > stopifnot(commits_odd[[3]]$sha == c1$sha) 237s > 237s > commits_even <- commits(repo, path = "even.txt") 237s > stopifnot(length(commits_even) == 3) 237s > stopifnot(commits_even[[1]]$sha == c6$sha) 237s > stopifnot(commits_even[[2]]$sha == c4$sha) 237s > stopifnot(commits_even[[3]]$sha == c2$sha) 237s > 237s > ## Test reverse 237s > commits_odd_rev <- commits(repo, reverse = TRUE, path = "odd.txt") 237s > stopifnot(length(commits_odd_rev) == 3) 237s > stopifnot(commits_odd_rev[[1]]$sha == c1$sha) 237s > stopifnot(commits_odd_rev[[2]]$sha == c3$sha) 237s > stopifnot(commits_odd_rev[[3]]$sha == c5$sha) 237s > 237s > commits_even_rev <- commits(repo, reverse = TRUE, path = "even.txt") 237s > stopifnot(length(commits_even_rev) == 3) 237s > stopifnot(commits_even_rev[[1]]$sha == c2$sha) 237s > stopifnot(commits_even_rev[[2]]$sha == c4$sha) 237s > stopifnot(commits_even_rev[[3]]$sha == c6$sha) 237s > 237s > ## Test n 237s > commits_odd_n <- commits(repo, n = 2, path = "odd.txt") 237s > stopifnot(length(commits_odd_n) == 2) 237s > stopifnot(commits_odd_n[[1]]$sha == c5$sha) 237s > stopifnot(commits_odd_n[[2]]$sha == c3$sha) 237s > 237s > commits_even_n <- commits(repo, n = 2, path = "even.txt") 237s > stopifnot(length(commits_even_n) == 2) 237s > stopifnot(commits_even_n[[1]]$sha == c6$sha) 237s > stopifnot(commits_even_n[[2]]$sha == c4$sha) 237s > 237s > commits_odd_0 <- commits(repo, n = 0, path = "odd.txt") 237s > stopifnot(length(commits_odd_0) == 0) 237s > stopifnot(identical(commits_odd_0, list())) 237s > 237s > commits_even_0 <- commits(repo, n = 0, path = "even.txt") 237s > stopifnot(length(commits_even_0) == 0) 237s > stopifnot(identical(commits_even_0, list())) 237s > 237s > ## Test ref 237s > checkout(repo, branch = "test-ref", create = TRUE) 237s > 237s > writeLines("7", file.path(path, "odd.txt")) 237s > add(repo, "odd.txt") 237s > c7 <- commit(repo, "commit 7") 237s > 237s > writeLines("8", file.path(path, "even.txt")) 237s > add(repo, "even.txt") 237s > c8 <- commit(repo, "commit 8") 237s > 237s > commits_odd_ref <- commits(repo, ref = "main", path = "odd.txt") 237s > stopifnot(length(commits_odd_ref) == 3) 237s > stopifnot(commits_odd_ref[[1]]$sha == c5$sha) 237s > stopifnot(commits_odd_ref[[2]]$sha == c3$sha) 237s > stopifnot(commits_odd_ref[[3]]$sha == c1$sha) 237s > 237s > commits_even_ref <- commits(repo, ref = "main", path = "even.txt") 237s > stopifnot(length(commits_even_ref) == 3) 237s > stopifnot(commits_even_ref[[1]]$sha == c6$sha) 237s > stopifnot(commits_even_ref[[2]]$sha == c4$sha) 237s > stopifnot(commits_even_ref[[3]]$sha == c2$sha) 237s > 237s > checkout(repo, branch = "main") 237s > 237s > ## Test renaming a file (path does not support --follow) 237s > writeLines("a file to be renamed", file.path(path, "original.txt")) 237s > add(repo, "original.txt") 237s > c_original <- commit(repo, "commit original") 237s > 237s > commits_original <- commits(repo, path = "original.txt") 237s > stopifnot(length(commits_original) == 1) 237s > stopifnot(commits_original[[1]]$sha == c_original$sha) 237s > 237s > file.rename(file.path(path, "original.txt"), file.path(path, "new.txt")) 237s [1] TRUE 237s > add(repo, c("original.txt", "new.txt")) 237s > c_new <- commit(repo, "commit new") 237s > 237s > commits_new <- commits(repo, path = "new.txt") 237s > stopifnot(length(commits_new) == 1) 237s > stopifnot(commits_new[[1]]$sha == c_new$sha) 237s > 237s > ## Test merge commits 237s > writeLines(letters[1:5], file.path(path, "merge.txt")) 237s > add(repo, "merge.txt") 237s > c_merge_1 <- commit(repo, "commit merge 1") 237s > 237s > checkout(repo, branch = "test-merge", create = TRUE) 237s > cat("z", file = file.path(path, "merge.txt"), append = TRUE) 237s > add(repo, "merge.txt") 237s > c_merge_2 <- commit(repo, "commit merge 2") 237s > 237s > checkout(repo, branch = "main") 237s > writeLines(c("A", letters[2:5]), file.path(path, "merge.txt")) 237s > add(repo, "merge.txt") 237s > c_merge_3 <- commit(repo, "commit merge 3") 237s > 237s > c_merge_4 <- merge(repo, "test-merge") 237s > stopifnot(class(c_merge_4) == "git_merge_result") 237s > 237s > commits_merge <- commits(repo, path = "merge.txt") 237s > stopifnot(length(commits_merge) == 4) 237s > stopifnot(commits_merge[[1]]$sha == c_merge_4$sha) 237s > stopifnot(commits_merge[[2]]$sha == c_merge_3$sha) 237s > stopifnot(commits_merge[[3]]$sha == c_merge_2$sha) 237s > stopifnot(commits_merge[[4]]$sha == c_merge_1$sha) 237s > 237s > ## Test absolute path 237s > writeLines("absolute", file.path(path, "abs.txt")) 237s > add(repo, "abs.txt") 237s > c_abs <- commit(repo, "commit absolute") 237s > 237s > commits_abs <- commits(repo, path = file.path(path, "abs.txt")) 237s > stopifnot(length(commits_abs) == 1) 237s > stopifnot(commits_abs[[1]]$sha == c_abs$sha) 237s > 237s > ## Test topological and time 237s > ## Strategy: 237s > ## - Commit a new file test-time.txt 237s > ## - Commit a change on branch test-time-1 (a) 237s > ## - Commit a change on branch test-time-2 (c) 237s > ## - Commit a change on branch test-time-1 (b) 237s > ## - Commit a change on branch test-time-2 (d) 237s > ## - Merge branch test-time-2 into main (fast-forward) 237s > ## - Merge branch test-time-1 into main (merge commit) 237s > ## 237s > ## $ git log --all --decorate --oneline --graph -n 6 237s > ## * 79e6880 (HEAD -> main) merge test-time-1 237s > ## |\ 237s > ## | * e2f18f1 (test-time-1) commit b 237s > ## | * 5f34820 commit a 237s > ## * | b954ec9 (test-time-2) commit d 237s > ## * | 7ae2fd5 commit c 237s > ## |/ 237s > ## * 923f3ea commit base 237s > Sys.sleep(1) 238s > writeLines(as.character(1:100), file.path(path, "test-time.txt")) 238s > add(repo, "test-time.txt") 238s > c_base <- commit(repo, "commit base") 238s > Sys.sleep(1) 239s > branch_create(commit = c_base, name = "test-time-1") 239s > branch_create(commit = c_base, name = "test-time-2") 239s > 239s > checkout(repo, branch = "test-time-1") 239s > writeLines(c("edit", 2:100), file.path(path, "test-time.txt")) 239s > add(repo, "test-time.txt") 239s > c_a <- commit(repo, "commit a") 239s > Sys.sleep(1) 240s > 240s > checkout(repo, branch = "test-time-2") 240s > writeLines(c(1:25, "edit", 27:100), file.path(path, "test-time.txt")) 240s > add(repo, "test-time.txt") 240s > c_c <- commit(repo, "commit c") 240s > Sys.sleep(1) 241s > 241s > checkout(repo, branch = "test-time-1") 241s > writeLines(c(1:50, "edit", 52:100), file.path(path, "test-time.txt")) 241s > add(repo, "test-time.txt") 241s > c_b <- commit(repo, "commit b") 241s > Sys.sleep(1) 242s > 242s > checkout(repo, branch = "test-time-2") 242s > writeLines(c(1:75, "edit", 77:100), file.path(path, "test-time.txt")) 242s > add(repo, "test-time.txt") 242s > c_d <- commit(repo, "commit d") 242s > Sys.sleep(1) 243s > 243s > checkout(repo, branch = "main") 243s > merge(repo, "test-time-2") # Fast-forward 243s Merge: Fast-forward 243s > merge(repo, "test-time-1") # Merge commit 243s Merge 243s > c_merge_time <- commits(repo, n = 1)[[1]] 243s > 243s > ## topological - commits in test-time-2 come first because it was 243s > ## merged first 243s > stopifnot(identical( 243s + commits(repo, topological = TRUE, time = FALSE, path = "test-time.txt"), 243s + list(c_merge_time, c_b, c_a, c_d, c_c, c_base) 243s + )) 243s > stopifnot(identical( 243s + commits(repo, topological = TRUE, time = FALSE, path = "test-time.txt"), 243s + commits(repo, topological = TRUE, time = FALSE)[1:6] 243s + )) 243s > 243s > ## time - commits ordered by time they were created, not merged into 243s > ## main 243s > stopifnot(identical( 243s + commits(repo, topological = FALSE, time = TRUE, path = "test-time.txt"), 243s + list(c_merge_time, c_d, c_b, c_c, c_a, c_base) 243s + )) 243s > stopifnot(identical( 243s + commits(repo, topological = FALSE, time = TRUE, path = "test-time.txt"), 243s + commits(repo, topological = FALSE, time = TRUE)[1:6] 243s + )) 243s > 243s > ## topological and time - dominated by time 243s > stopifnot(identical( 243s + commits(repo, topological = TRUE, time = TRUE, path = "test-time.txt"), 243s + list(c_merge_time, c_d, c_b, c_c, c_a, c_base) 243s + )) 243s > stopifnot(identical( 243s + commits(repo, topological = TRUE, time = TRUE, path = "test-time.txt"), 243s + commits(repo, topological = TRUE, time = TRUE)[1:6] 243s + )) 243s > 243s > ## reverse with topological and/or time 243s > stopifnot(identical( 243s + commits(repo, topological = TRUE, time = FALSE, reverse = TRUE, 243s + path = "test-time.txt"), 243s + rev(list(c_merge_time, c_b, c_a, c_d, c_c, c_base)) 243s + )) 243s > stopifnot(identical( 243s + commits(repo, topological = FALSE, time = TRUE, reverse = TRUE, 243s + path = "test-time.txt"), 243s + rev(list(c_merge_time, c_d, c_b, c_c, c_a, c_base)) 243s + )) 243s > stopifnot(identical( 243s + commits(repo, topological = TRUE, time = TRUE, reverse = TRUE, 243s + path = "test-time.txt"), 243s + rev(list(c_merge_time, c_d, c_b, c_c, c_a, c_base)) 243s + )) 243s > 243s > ## Cleanup 243s > unlink(path, recursive = TRUE) 243s > 243s BEGIN TEST config.R 243s 243s R version 4.4.3 (2025-02-28) -- "Trophy Case" 243s Copyright (C) 2025 The R Foundation for Statistical Computing 243s Platform: x86_64-pc-linux-gnu 243s 243s R is free software and comes with ABSOLUTELY NO WARRANTY. 243s You are welcome to redistribute it under certain conditions. 243s Type 'license()' or 'licence()' for distribution details. 243s 243s R is a collaborative project with many contributors. 243s Type 'contributors()' for more information and 243s 'citation()' on how to cite R or R packages in publications. 243s 243s Type 'demo()' for some demos, 'help()' for on-line help, or 243s 'help.start()' for an HTML browser interface to help. 243s Type 'q()' to quit R. 243s 243s > ## git2r, R bindings to the libgit2 library. 243s > ## Copyright (C) 2013-2023 The git2r contributors 243s > ## 243s > ## This program is free software; you can redistribute it and/or modify 243s > ## it under the terms of the GNU General Public License, version 2, 243s > ## as published by the Free Software Foundation. 243s > ## 243s > ## git2r is distributed in the hope that it will be useful, 243s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 243s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 243s > ## GNU General Public License for more details. 243s > ## 243s > ## You should have received a copy of the GNU General Public License along 243s > ## with this program; if not, write to the Free Software Foundation, Inc., 243s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 243s > 243s > library("git2r") 243s > 243s > ## For debugging 243s > sessionInfo() 243s R version 4.4.3 (2025-02-28) 243s Platform: x86_64-pc-linux-gnu 243s Running under: Ubuntu Plucky Puffin (development branch) 243s 243s Matrix products: default 243s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 243s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 243s 243s locale: 243s [1] C 243s 243s time zone: Etc/UTC 243s tzcode source: system (glibc) 243s 243s attached base packages: 243s [1] stats graphics grDevices utils datasets methods base 243s 243s other attached packages: 243s [1] git2r_0.35.0 243s 243s loaded via a namespace (and not attached): 243s [1] compiler_4.4.3 243s > libgit2_version() 243s $major 243s [1] 1 243s 243s $minor 243s [1] 9 243s 243s $rev 243s [1] 0 243s 243s > libgit2_features() 243s $threads 243s [1] TRUE 243s 243s $https 243s [1] TRUE 243s 243s $ssh 243s [1] TRUE 243s 243s > 243s > 243s > ## Create a directory in tempdir 243s > path <- tempfile(pattern = "git2r-") 243s > dir.create(path) 243s > 243s > ## Initialize a repository 243s > repo <- init(path) 243s > 243s > ## Config repository 243s > cfg <- config(repo, user.name = "Alice", user.email = "alice@example.org") 243s > 243s > ## Check configuration 243s > stopifnot(identical(print(cfg), cfg)) 243s local: 243s core.bare=false 243s core.filemode=true 243s core.logallrefupdates=true 243s core.repositoryformatversion=0 243s user.email=alice@example.org 243s user.name=Alice 243s > stopifnot("local" %in% names(cfg)) 243s > stopifnot("user.name" %in% names(cfg$local)) 243s > stopifnot(identical(cfg$local$user.name, "Alice")) 243s > stopifnot(identical(cfg$local$user.email, "alice@example.org")) 243s > 243s > ## Check that config fails for non-character entry. 243s > tools::assertError(config(repo, test = 5)) 243s > 243s > ## Check config method with missing repo argument 243s > wd <- setwd(path) 243s > cfg <- config(user.name = "Alice", user.email = "alice@example.org") 243s > stopifnot("local" %in% names(cfg)) 243s > stopifnot("user.name" %in% names(cfg$local)) 243s > stopifnot(identical(cfg$local$user.name, "Alice")) 243s > stopifnot(identical(cfg$local$user.email, "alice@example.org")) 243s > stopifnot(identical(git_config_files(repo = repo)$local, 243s + git_config_files(repo = NULL)$local)) 243s > stopifnot(identical(git_config_files(repo = repo)$local, 243s + git_config_files(repo = repo$path)$local)) 243s > if (!is.null(wd)) 243s + setwd(wd) 243s > 243s > ## Delete entries 243s > cfg <- config(repo, user.name = NULL, user.email = NULL) 243s > 243s > ## Check configuration 243s > stopifnot(is.null(cfg$local$user.name)) 243s > stopifnot(is.null(cfg$local$user.email)) 243s > 243s > ## Supply values as objects 243s > user_name <- "Alice" 243s > user_email <- "alice@example.org" 243s > cfg <- config(repo, user.name = user_name, user.email = "alice@example.org") 243s > stopifnot(identical(cfg$local$user.name, user_name)) 243s > stopifnot(identical(cfg$local$user.email, "alice@example.org")) 243s > cfg <- config(repo, user.name = "Alice", user.email = user_email) 243s > stopifnot(identical(cfg$local$user.name, "Alice")) 243s > stopifnot(identical(cfg$local$user.email, user_email)) 243s > 243s > ## Check git config files 243s > cfg <- git_config_files(repo) 243s > stopifnot(identical(nrow(cfg), 4L)) 243s > stopifnot(identical(names(cfg), c("file", "path"))) 243s > stopifnot(identical(cfg$file, c("system", "xdg", "global", "local"))) 243s > stopifnot(!is.na(cfg$path[4])) 243s > 243s > ## Check that the local config file is NA for an invalid repo 243s > ## argument. 243s > stopifnot(is.na(git_config_files(5)$local)) 243s > 243s > ## Check location of .gitconfig on Windows 243s > if (identical(Sys.getenv("APPVEYOR"), "True")) { 243s + 243s + ## AppVeyor diagnostics 243s + str(Sys.getenv("USERPROFILE")) 243s + str(Sys.getenv("HOMEDRIVE")) 243s + str(normalizePath("~")) 243s + str(git_config_files()) 243s + 243s + ## Temporarily move AppVeyor .gitconfig 243s + gitconfig_appveyor <- "C:/Users/appveyor/.gitconfig" 243s + gitconfig_tmp <- file.path(tempdir(), ".gitconfig") 243s + file.rename(gitconfig_appveyor, gitconfig_tmp) 243s + 243s + ## Test config() on Windows 243s + gitconfig_expected <- file.path(Sys.getenv("USERPROFILE"), ".gitconfig") 243s + ## .gitconfig should not be created if no configuration options specified 243s + config(global = TRUE) 243s + stopifnot(!file.exists(gitconfig_expected)) 243s + ## .gitconfig should be created in the user's home directory 243s + config(global = TRUE, user.name = "name", user.email = "email") 243s + stopifnot(file.exists(gitconfig_expected)) 243s + unlink(gitconfig_expected) 243s + ## .gitconfig should be created if user specifies option other than user.name 243s + ## and user.email 243s + config(global = TRUE, core.editor = "nano") 243s + stopifnot(file.exists(gitconfig_expected)) 243s + unlink(gitconfig_expected) 243s + ## .gitconfig should not create a new .gitconfig if the user already has one 243s + ## in Documents/ 243s + gitconfig_documents <- "~/.gitconfig" 243s + file.create(gitconfig_documents) 243s + config(global = TRUE, core.editor = "nano") 243s + stopifnot(!file.exists(gitconfig_expected)) 243s + unlink(gitconfig_documents) 243s + 243s + ## Return AppVeyor .gitconfig 243s + file.rename(gitconfig_tmp, gitconfig_appveyor) 243s + } 243s > 243s > ## Cleanup 243s > unlink(path, recursive = TRUE) 243s > 243s BEGIN TEST diff.R 243s 243s R version 4.4.3 (2025-02-28) -- "Trophy Case" 243s Copyright (C) 2025 The R Foundation for Statistical Computing 243s Platform: x86_64-pc-linux-gnu 243s 243s R is free software and comes with ABSOLUTELY NO WARRANTY. 243s You are welcome to redistribute it under certain conditions. 243s Type 'license()' or 'licence()' for distribution details. 243s 243s R is a collaborative project with many contributors. 243s Type 'contributors()' for more information and 243s 'citation()' on how to cite R or R packages in publications. 243s 243s Type 'demo()' for some demos, 'help()' for on-line help, or 243s 'help.start()' for an HTML browser interface to help. 243s Type 'q()' to quit R. 243s 243s > ## git2r, R bindings to the libgit2 library. 243s > ## Copyright (C) 2013-2023 The git2r contributors 243s > ## 243s > ## This program is free software; you can redistribute it and/or modify 243s > ## it under the terms of the GNU General Public License, version 2, 243s > ## as published by the Free Software Foundation. 243s > ## 243s > ## git2r is distributed in the hope that it will be useful, 243s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 243s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 243s > ## GNU General Public License for more details. 243s > ## 243s > ## You should have received a copy of the GNU General Public License along 243s > ## with this program; if not, write to the Free Software Foundation, Inc., 243s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 243s > 243s > library("git2r") 243s > 243s > ## For debugging 243s > sessionInfo() 243s R version 4.4.3 (2025-02-28) 243s Platform: x86_64-pc-linux-gnu 243s Running under: Ubuntu Plucky Puffin (development branch) 243s 243s Matrix products: default 243s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 243s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 243s 243s locale: 243s [1] C 243s 243s time zone: Etc/UTC 243s tzcode source: system (glibc) 243s 243s attached base packages: 243s [1] stats graphics grDevices utils datasets methods base 243s 243s other attached packages: 243s [1] git2r_0.35.0 243s 243s loaded via a namespace (and not attached): 243s [1] compiler_4.4.3 243s > libgit2_version() 243s $major 243s [1] 1 243s 243s $minor 243s [1] 9 243s 243s $rev 243s [1] 0 243s 243s > libgit2_features() 243s $threads 243s [1] TRUE 243s 243s $https 243s [1] TRUE 243s 243s $ssh 243s [1] TRUE 243s 243s > 243s > 243s > ## Create a directory in tempdir 243s > path <- tempfile(pattern = "git2r-") 243s > dir.create(path) 243s > 243s > ## Initialize a repository 243s > repo <- init(path) 243s > config(repo, user.name = "Alice", user.email = "alice@example.org") 243s > 243s > ## Create a file, add, commit 243s > writeLines("Hello world!", file.path(path, "test.txt")) 243s > add(repo, "test.txt") 243s > commit(repo, "Commit message") 243s [eacca6c] 2025-03-15: Commit message 243s > 243s > ## Change the file, diff between index and workdir 243s > writeLines("Hello again!\nHere is a second line\nAnd a third", 243s + file.path(path, "test.txt")) 243s > diff_1 <- diff(repo) 243s > diff(repo, as_char = TRUE) 243s [1] "diff --git a/test.txt b/test.txt\nindex cd08755..cf48daf 100644\n--- a/test.txt\n+++ b/test.txt\n@@ -1 +1,3 @@\n-Hello world!\n+Hello again!\n+Here is a second line\n+And a third\n" 243s > diff(repo, as_char = TRUE, filename = file.path(path, "test.diff")) 243s NULL 243s > 243s > stopifnot(identical(diff_1$old, "index")) 243s > stopifnot(identical(diff_1$new, "workdir")) 243s > stopifnot(identical(length(diff_1$files), 1L)) 243s > stopifnot(identical(diff_1$files[[1]]$old_file, "test.txt")) 243s > stopifnot(identical(diff_1$files[[1]]$new_file, "test.txt")) 243s > stopifnot(identical(length(diff_1$files[[1]]$hunks), 1L)) 243s > stopifnot(identical(length(diff_1$files[[1]]$hunks[[1]]$lines), 4L)) 243s > ## TODO: check actual diff 243s > 243s > ## Diff between index and HEAD is empty 243s > diff_2 <- diff(repo, index = TRUE) 243s > diff(repo, as_char = TRUE) 243s [1] "diff --git a/test.txt b/test.txt\nindex cd08755..cf48daf 100644\n--- a/test.txt\n+++ b/test.txt\n@@ -1 +1,3 @@\n-Hello world!\n+Hello again!\n+Here is a second line\n+And a third\n" 243s > diff(repo, as_char = TRUE, filename = file.path(path, "test.diff")) 243s NULL 243s > 243s > stopifnot(identical(diff_2$old, "HEAD")) 243s > stopifnot(identical(diff_2$new, "index")) 243s > stopifnot(identical(diff_2$files, list())) 243s > 243s > ## Diff between tree and working dir, same as diff_1 243s > diff_3 <- diff(tree(commits(repo)[[1]])) 243s > diff(repo, as_char = TRUE) 243s [1] "diff --git a/test.txt b/test.txt\nindex cd08755..cf48daf 100644\n--- a/test.txt\n+++ b/test.txt\n@@ -1 +1,3 @@\n-Hello world!\n+Hello again!\n+Here is a second line\n+And a third\n" 243s > diff(repo, as_char = TRUE, filename = file.path(path, "test.diff")) 243s NULL 243s > 243s > stopifnot(identical(diff_3$old, tree(commits(repo)[[1]]))) 243s > stopifnot(identical(diff_3$new, "workdir")) 243s > stopifnot(identical(diff_3$files, diff_1$files)) 243s > stopifnot(identical(print(diff_3), diff_3)) 243s Old: tree: a0b0b9e615e9e433eb5f11859e9feac4564c58c5 243s 243s mode type sha name 243s 1 100644 blob cd0875583aabe89ee197ea133980a9085d08e497 test.txt 243s New: workdir 243s > 243s > ## Add changes, diff between index and HEAD is the same as diff_1 243s > add(repo, "test.txt") 243s > diff_4 <- diff(repo, index = TRUE) 243s > diff(repo, as_char = TRUE) 243s [1] "" 243s > diff(repo, as_char = TRUE, filename = file.path(path, "test.diff")) 243s NULL 243s > 243s > stopifnot(identical(diff_4$old, "HEAD")) 243s > stopifnot(identical(diff_4$new, "index")) 243s > stopifnot(identical(diff_4$files, diff_1$files)) 243s > 243s > ## Diff between tree and index 243s > diff_5 <- diff(tree(commits(repo)[[1]]), index = TRUE) 243s > diff(repo, as_char = TRUE) 243s [1] "" 243s > diff(repo, as_char = TRUE, filename = file.path(path, "test.diff")) 243s NULL 243s > 243s > stopifnot(identical(diff_5$old, tree(commits(repo)[[1]]))) 243s > stopifnot(identical(diff_5$new, "index")) 243s > stopifnot(identical(diff_5$files, diff_1$files)) 243s > 243s > ## Diff between two trees 243s > commit(repo, "Second commit") 243s [4138a1d] 2025-03-15: Second commit 243s > tree_1 <- tree(commits(repo)[[2]]) 243s > tree_2 <- tree(commits(repo)[[1]]) 243s > diff_6 <- diff(tree_1, tree_2) 243s > diff(repo, as_char = TRUE) 243s [1] "" 243s > diff(repo, as_char = TRUE, filename = file.path(path, "test.diff")) 243s NULL 243s > 243s > stopifnot(identical(diff_6$old, tree_1)) 243s > stopifnot(identical(diff_6$new, tree_2)) 243s > stopifnot(identical(diff_6$files, diff_1$files)) 243s > 243s > ## Length of a diff 243s > stopifnot(identical(length(diff_1), 1L)) 243s > stopifnot(identical(length(diff_2), 0L)) 243s > stopifnot(identical(length(diff_3), 1L)) 243s > stopifnot(identical(length(diff_4), 1L)) 243s > stopifnot(identical(length(diff_5), 1L)) 243s > stopifnot(identical(length(diff_6), 1L)) 243s > 243s > ## Binary files 243s > set.seed(42) 243s > writeBin(as.raw((sample(0:255, 1000, replace = TRUE))), 243s + con = file.path(path, "test.bin")) 243s > add(repo, "test.bin") 244s > diff_7 <- diff(repo, index = TRUE) 244s > diff(repo, as_char = TRUE) 244s [1] "" 244s > diff(repo, as_char = TRUE, filename = file.path(path, "test.diff")) 244s NULL 244s > 244s > stopifnot(any(grepl("binary file", capture.output(summary(diff_7))))) 244s > 244s > ## TODO: errors 244s > ## Check non-logical index argument 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_diff, NULL, NULL, NULL, "FALSE", 244s + NULL, 3L, 0L, "a", "b", NULL, NULL, NULL)) 244s > stopifnot(length(grep(paste0("Error in 'git2r_diff': 'index' must be logical ", 244s + "vector of length one with non NA value\n"), 244s + res[[1]]$message)) > 0) 244s > 244s > ## Check various combinations of diff arguments 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_diff, NULL, NULL, 244s + tree(commits(repo)[[1]]), 244s + FALSE, NULL, 3L, 0L, "a", "b", NULL, NULL, NULL)) 244s > stopifnot(length(grep("Error in 'git2r_diff': Invalid diff parameters", 244s + res[[1]]$message)) > 0) 244s > 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_diff, NULL, NULL, 244s + tree(commits(repo)[[1]]), 244s + TRUE, NULL, 3L, 0L, "a", "b", NULL, NULL, NULL)) 244s > stopifnot(length(grep("Error in 'git2r_diff': Invalid diff parameters", 244s + res[[1]]$message)) > 0) 244s > 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_diff, repo, tree(commits(repo)[[1]]), 244s + NULL, FALSE, NULL, 3L, 0L, "a", "b", NULL, NULL, NULL)) 244s > stopifnot(length(grep("Error in 'git2r_diff': Invalid diff parameters", 244s + res[[1]]$message)) > 0) 244s > 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_diff, repo, tree(commits(repo)[[1]]), 244s + NULL, TRUE, NULL, 3L, 0L, "a", "b", NULL, NULL, NULL)) 244s > stopifnot(length(grep("Error in 'git2r_diff': Invalid diff parameters", 244s + res[[1]]$message)) > 0) 244s > 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_diff, repo, tree(commits(repo)[[1]]), 244s + tree(commits(repo)[[2]]), FALSE, NULL, 3L, 0L, "a", 244s + "b", NULL, NULL, NULL)) 244s > stopifnot(length(grep("Error in 'git2r_diff': Invalid diff parameters", 244s + res[[1]]$message)) > 0) 244s > 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_diff, repo, tree(commits(repo)[[1]]), 244s + tree(commits(repo)[[2]]), TRUE, NULL, 3L, 0L, "a", 244s + "b", NULL, NULL, NULL)) 244s > stopifnot(length(grep("Error in 'git2r_diff': Invalid diff parameters", 244s + res[[1]]$message)) > 0) 244s > 244s > ## TODO: printing 244s > 244s > ## Cleanup 244s > unlink(path, recursive = TRUE) 244s > 244s BEGIN TEST fast_forward_merge.R 244s 244s R version 4.4.3 (2025-02-28) -- "Trophy Case" 244s Copyright (C) 2025 The R Foundation for Statistical Computing 244s Platform: x86_64-pc-linux-gnu 244s 244s R is free software and comes with ABSOLUTELY NO WARRANTY. 244s You are welcome to redistribute it under certain conditions. 244s Type 'license()' or 'licence()' for distribution details. 244s 244s R is a collaborative project with many contributors. 244s Type 'contributors()' for more information and 244s 'citation()' on how to cite R or R packages in publications. 244s 244s Type 'demo()' for some demos, 'help()' for on-line help, or 244s 'help.start()' for an HTML browser interface to help. 244s Type 'q()' to quit R. 244s 244s > ## git2r, R bindings to the libgit2 library. 244s > ## Copyright (C) 2013-2023 The git2r contributors 244s > ## 244s > ## This program is free software; you can redistribute it and/or modify 244s > ## it under the terms of the GNU General Public License, version 2, 244s > ## as published by the Free Software Foundation. 244s > ## 244s > ## git2r is distributed in the hope that it will be useful, 244s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 244s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 244s > ## GNU General Public License for more details. 244s > ## 244s > ## You should have received a copy of the GNU General Public License along 244s > ## with this program; if not, write to the Free Software Foundation, Inc., 244s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 244s > 244s > library(git2r) 244s > 244s > ## For debugging 244s > sessionInfo() 244s R version 4.4.3 (2025-02-28) 244s Platform: x86_64-pc-linux-gnu 244s Running under: Ubuntu Plucky Puffin (development branch) 244s 244s Matrix products: default 244s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 244s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 244s 244s locale: 244s [1] C 244s 244s time zone: Etc/UTC 244s tzcode source: system (glibc) 244s 244s attached base packages: 244s [1] stats graphics grDevices utils datasets methods base 244s 244s other attached packages: 244s [1] git2r_0.35.0 244s 244s loaded via a namespace (and not attached): 244s [1] compiler_4.4.3 244s > libgit2_version() 244s $major 244s [1] 1 244s 244s $minor 244s [1] 9 244s 244s $rev 244s [1] 0 244s 244s > libgit2_features() 244s $threads 244s [1] TRUE 244s 244s $https 244s [1] TRUE 244s 244s $ssh 244s [1] TRUE 244s 244s > 244s > 244s > ## Create directory for repository in tempdir 244s > path <- tempfile(pattern = "git2r-") 244s > dir.create(path) 244s > 244s > ## Create repository 244s > repo <- init(path, branch = "main") 244s > config(repo, user.name = "Alice", user.email = "alice@example.org") 244s > 244s > ## Add changes to repo 244s > writeLines("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 244s + con = file.path(path, "test-1.txt")) 244s > add(repo, "test-1.txt") 244s > commit_1 <- commit(repo, "First commit message") 244s > 244s > ## Create branch and checkout 244s > checkout(branch_create(commit_1, name = "test")) 244s > 244s > ## Add changes to test branch 244s > writeLines(c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 244s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 244s + con = file.path(path, "test-1.txt")) 244s > add(repo, "test-1.txt") 244s > commit_2 <- commit(repo, "Second commit message") 244s > 244s > # Checkout main and merge 244s > b <- branches(repo) 244s > checkout(b[sapply(b, "[", "name") == "main"][[1]], force = TRUE) 244s > m <- merge(b[sapply(b, "[", "name") == "test"][[1]]) 244s > 244s > # Check merge 244s > stopifnot(inherits(m, "git_merge_result")) 244s > stopifnot(identical(m$up_to_date, FALSE)) 244s > stopifnot(identical(m$fast_forward, TRUE)) 244s > stopifnot(identical(m$conflicts, FALSE)) 244s > stopifnot(identical(sha(m), NA_character_)) 244s > stopifnot(identical(length(commits(repo)), 2L)) 244s > 244s > # Check reflog 244s > r <- reflog(repo) 244s > stopifnot(identical(r[[1]]$message, "merge test: Fast-forward")) 244s > 244s > ## Cleanup 244s > unlink(path, recursive = TRUE) 244s > 244s BEGIN TEST fetch.R 244s 244s R version 4.4.3 (2025-02-28) -- "Trophy Case" 244s Copyright (C) 2025 The R Foundation for Statistical Computing 244s Platform: x86_64-pc-linux-gnu 244s 244s R is free software and comes with ABSOLUTELY NO WARRANTY. 244s You are welcome to redistribute it under certain conditions. 244s Type 'license()' or 'licence()' for distribution details. 244s 244s R is a collaborative project with many contributors. 244s Type 'contributors()' for more information and 244s 'citation()' on how to cite R or R packages in publications. 244s 244s Type 'demo()' for some demos, 'help()' for on-line help, or 244s 'help.start()' for an HTML browser interface to help. 244s Type 'q()' to quit R. 244s 244s > ## git2r, R bindings to the libgit2 library. 244s > ## Copyright (C) 2013-2023 The git2r contributors 244s > ## 244s > ## This program is free software; you can redistribute it and/or modify 244s > ## it under the terms of the GNU General Public License, version 2, 244s > ## as published by the Free Software Foundation. 244s > ## 244s > ## git2r is distributed in the hope that it will be useful, 244s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 244s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 244s > ## GNU General Public License for more details. 244s > ## 244s > ## You should have received a copy of the GNU General Public License along 244s > ## with this program; if not, write to the Free Software Foundation, Inc., 244s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 244s > 244s > library(git2r) 244s > 244s > ## For debugging 244s > sessionInfo() 244s R version 4.4.3 (2025-02-28) 244s Platform: x86_64-pc-linux-gnu 244s Running under: Ubuntu Plucky Puffin (development branch) 244s 244s Matrix products: default 244s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 244s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 244s 244s locale: 244s [1] C 244s 244s time zone: Etc/UTC 244s tzcode source: system (glibc) 244s 244s attached base packages: 244s [1] stats graphics grDevices utils datasets methods base 244s 244s other attached packages: 244s [1] git2r_0.35.0 244s 244s loaded via a namespace (and not attached): 244s [1] compiler_4.4.3 244s > libgit2_version() 244s $major 244s [1] 1 244s 244s $minor 244s [1] 9 244s 244s $rev 244s [1] 0 244s 244s > libgit2_features() 244s $threads 244s [1] TRUE 244s 244s $https 244s [1] TRUE 244s 244s $ssh 244s [1] TRUE 244s 244s > 244s > 244s > ## Create 2 directories in tempdir 244s > path_bare <- tempfile(pattern = "git2r-") 244s > path_repo_1 <- tempfile(pattern = "git2r-") 244s > path_repo_2 <- tempfile(pattern = "git2r-") 244s > 244s > dir.create(path_bare) 244s > dir.create(path_repo_1) 244s > dir.create(path_repo_2) 244s > 244s > ## Create repositories 244s > bare_repo <- init(path_bare, bare = TRUE) 244s > repo_1 <- clone(path_bare, path_repo_1) 244s cloning into '/tmp/RtmptWn1IT/git2r-9be27d28f36'... 244s > repo_2 <- clone(path_bare, path_repo_2) 244s cloning into '/tmp/RtmptWn1IT/git2r-9be1acc14fc'... 244s > 244s > ## Config repositories 244s > config(repo_1, user.name = "Alice", user.email = "alice@example.org") 244s > config(repo_2, user.name = "Bob", user.email = "bob@example.org") 244s > 244s > ## Add changes to repo 1 244s > writeLines("Hello world", con = file.path(path_repo_1, "test.txt")) 244s > add(repo_1, "test.txt") 244s > commit_1 <- commit(repo_1, "Commit message") 244s > branch_name <- branches(repo_1)[[1]]$name 244s > 244s > ## Push changes from repo 1 to origin 244s > push(repo_1, "origin", paste0("refs/heads/", branch_name)) 244s > 244s > ## Check result in bare repository 244s > stopifnot(identical(length(commits(bare_repo)), 1L)) 244s > bare_commit_1 <- commits(bare_repo)[[1]] 244s > stopifnot(identical(sha(commit_1), sha(bare_commit_1))) 244s > stopifnot(identical(commit_1$author, bare_commit_1$author)) 244s > stopifnot(identical(commit_1$committer, bare_commit_1$committer)) 244s > stopifnot(identical(commit_1$summary, bare_commit_1$summary)) 244s > stopifnot(identical(commit_1$message, bare_commit_1$message)) 244s > stopifnot(!identical(commit_1$repo, bare_commit_1$repo)) 244s > 244s > ## Fetch 244s > fetch(repo_2, "origin") 244s [new] a55e7336805a4aeeabab refs/remotes/origin/master 244s > fh <- fetch_heads(repo_2)[[1]] 244s > stopifnot(identical(sha(fh), fh$sha)) 244s > 244s > ## Test show method of non-empty repository where head is null 244s > show(repo_2) 244s Local: /tmp/RtmptWn1IT/git2r-9be1acc14fc 244s Head: nothing commited (yet) 244s > 244s > ## Check that 'git2r_arg_check_credentials' raise error 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_remote_fetch, repo_1, "origin", 244s + 3, "fetch", FALSE, NULL)) 244s > stopifnot(length(grep("'credentials' must be an S3 class with credentials", 244s + res[[1]]$message)) > 0) 244s > 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_remote_fetch, repo_1, "origin", repo_1, 244s + "fetch", FALSE, NULL)) 244s > stopifnot(length(grep("'credentials' must be an S3 class with credentials", 244s + res[[1]]$message)) > 0) 244s > 244s > credentials <- cred_env(c("username", "username"), "password") 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_remote_fetch, repo_1, "origin", credentials, 244s + "fetch", FALSE, NULL)) 244s > stopifnot(length(grep("'credentials' must be an S3 class with credentials", 244s + res[[1]]$message)) > 0) 244s > 244s > credentials <- cred_env("username", c("password", "passowrd")) 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_remote_fetch, repo_1, "origin", credentials, 244s + "fetch", FALSE, NULL)) 244s > stopifnot(length(grep("'credentials' must be an S3 class with credentials", 244s + res[[1]]$message)) > 0) 244s > 244s > credentials <- cred_user_pass(c("username", "username"), "password") 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_remote_fetch, repo_1, "origin", credentials, 244s + "fetch", FALSE, NULL)) 244s > stopifnot(length(grep("'credentials' must be an S3 class with credentials", 244s + res[[1]]$message)) > 0) 244s > 244s > credentials <- cred_user_pass("username", c("password", "passowrd")) 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_remote_fetch, repo_1, "origin", credentials, 244s + "fetch", FALSE, NULL)) 244s > stopifnot(length(grep("'credentials' must be an S3 class with credentials", 244s + res[[1]]$message)) > 0) 244s > 244s > credentials <- cred_token(c("GITHUB_PAT", "GITHUB_PAT")) 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_remote_fetch, repo_1, "origin", credentials, 244s + "fetch", FALSE, NULL)) 244s > stopifnot(length(grep("'credentials' must be an S3 class with credentials", 244s + res[[1]]$message)) > 0) 244s > 244s > credentials <- structure(list(publickey = c("id_rsa.pub", "id_rsa.pub"), 244s + privatekey = "id_rsa", 244s + passphrase = character(0)), 244s + class = "cred_ssh_key") 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_remote_fetch, repo_1, "origin", credentials, 244s + "fetch", FALSE, NULL)) 244s > stopifnot(length(grep("'credentials' must be an S3 class with credentials", 244s + res[[1]]$message)) > 0) 244s > 244s > credentials <- structure(list(publickey = "id_rsa.pub", 244s + privatekey = c("id_rsa", "id_rsa"), 244s + passphrase = character(0)), 244s + class = "cred_ssh_key") 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_remote_fetch, repo_1, "origin", credentials, 244s + "fetch", FALSE, NULL)) 244s > stopifnot(length(grep("'credentials' must be an S3 class with credentials", 244s + res[[1]]$message)) > 0) 244s > 244s > credentials <- structure(list(publickey = "id_rsa.pub", 244s + privatekey = "id_rsa", 244s + passphrase = NA_character_), 244s + class = "cred_ssh_key") 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_remote_fetch, repo_1, "origin", credentials, 244s + "fetch", FALSE, NULL)) 244s > stopifnot(length(grep("'credentials' must be an S3 class with credentials", 244s + res[[1]]$message)) > 0) 244s > 244s > credentials <- structure(list(publickey = "id_rsa.pub", 244s + privatekey = "id_rsa", 244s + passphrase = c("passphrase", "passphrase")), 244s + class = "cred_ssh_key") 244s > res <- tools::assertError( 244s + .Call(git2r:::git2r_remote_fetch, repo_1, "origin", credentials, 244s + "fetch", FALSE, NULL)) 244s > stopifnot(length(grep("'credentials' must be an S3 class with credentials", 244s + res[[1]]$message)) > 0) 244s > 244s > ## Cleanup 244s > unlink(path_bare, recursive = TRUE) 244s > unlink(path_repo_1, recursive = TRUE) 244s > unlink(path_repo_2, recursive = TRUE) 244s > 244s BEGIN TEST graph.R 244s 244s R version 4.4.3 (2025-02-28) -- "Trophy Case" 244s Copyright (C) 2025 The R Foundation for Statistical Computing 244s Platform: x86_64-pc-linux-gnu 244s 244s R is free software and comes with ABSOLUTELY NO WARRANTY. 244s You are welcome to redistribute it under certain conditions. 244s Type 'license()' or 'licence()' for distribution details. 244s 244s R is a collaborative project with many contributors. 244s Type 'contributors()' for more information and 244s 'citation()' on how to cite R or R packages in publications. 244s 244s Type 'demo()' for some demos, 'help()' for on-line help, or 244s 'help.start()' for an HTML browser interface to help. 244s Type 'q()' to quit R. 244s 244s > ## git2r, R bindings to the libgit2 library. 244s > ## Copyright (C) 2013-2023 The git2r contributors 244s > ## 244s > ## This program is free software; you can redistribute it and/or modify 244s > ## it under the terms of the GNU General Public License, version 2, 244s > ## as published by the Free Software Foundation. 244s > ## 244s > ## git2r is distributed in the hope that it will be useful, 244s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 244s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 244s > ## GNU General Public License for more details. 244s > ## 244s > ## You should have received a copy of the GNU General Public License along 244s > ## with this program; if not, write to the Free Software Foundation, Inc., 244s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 244s > 244s > library("git2r") 244s > 244s > ## For debugging 244s > sessionInfo() 244s R version 4.4.3 (2025-02-28) 244s Platform: x86_64-pc-linux-gnu 244s Running under: Ubuntu Plucky Puffin (development branch) 244s 244s Matrix products: default 244s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 244s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 244s 244s locale: 244s [1] C 244s 244s time zone: Etc/UTC 244s tzcode source: system (glibc) 244s 244s attached base packages: 244s [1] stats graphics grDevices utils datasets methods base 244s 244s other attached packages: 244s [1] git2r_0.35.0 244s 244s loaded via a namespace (and not attached): 244s [1] compiler_4.4.3 244s > libgit2_version() 244s $major 244s [1] 1 244s 244s $minor 244s [1] 9 244s 244s $rev 244s [1] 0 244s 244s > libgit2_features() 244s $threads 244s [1] TRUE 244s 244s $https 244s [1] TRUE 244s 244s $ssh 244s [1] TRUE 244s 244s > 244s > 244s > ## Create a directory in tempdir 244s > path <- tempfile(pattern = "git2r-") 244s > dir.create(path) 244s > 244s > ## Initialize a repository 244s > repo <- init(path) 244s > config(repo, user.name = "Alice", user.email = "alice@example.org") 244s > 244s > ## Create a file and commit 244s > writeLines("Hello world!", file.path(path, "test.txt")) 244s > add(repo, "test.txt") 244s > commit_1 <- commit(repo, "First commit message") 244s > tag_1 <- tag(repo, "Tagname1", "Tag message 1") 244s > 244s > ## Change file and commit 244s > writeLines(c("Hello world!", "HELLO WORLD!"), 244s + file.path(path, "test.txt")) 244s > add(repo, "test.txt") 244s > commit_2 <- commit(repo, "Second commit message") 244s > tag_2 <- tag(repo, "Tagname2", "Tag message 2") 244s > 244s > ## Check ahead behind 244s > stopifnot(identical(ahead_behind(commit_1, commit_2), c(0L, 1L))) 244s > stopifnot(identical(ahead_behind(tag_1, tag_2), c(0L, 1L))) 244s > stopifnot(identical(ahead_behind(tag_2, tag_1), c(1L, 0L))) 244s > stopifnot(identical(ahead_behind(commit_1, branches(repo)[[1]]), c(0L, 1L))) 244s > stopifnot(identical(ahead_behind(branches(repo)[[1]], commit_1), c(1L, 0L))) 244s > 244s > ## Cleanup 244s > unlink(path, recursive = TRUE) 244s > 244s BEGIN TEST index.R 244s 244s R version 4.4.3 (2025-02-28) -- "Trophy Case" 244s Copyright (C) 2025 The R Foundation for Statistical Computing 244s Platform: x86_64-pc-linux-gnu 244s 244s R is free software and comes with ABSOLUTELY NO WARRANTY. 244s You are welcome to redistribute it under certain conditions. 244s Type 'license()' or 'licence()' for distribution details. 244s 244s R is a collaborative project with many contributors. 244s Type 'contributors()' for more information and 244s 'citation()' on how to cite R or R packages in publications. 244s 244s Type 'demo()' for some demos, 'help()' for on-line help, or 244s 'help.start()' for an HTML browser interface to help. 244s Type 'q()' to quit R. 244s 244s > ## git2r, R bindings to the libgit2 library. 244s > ## Copyright (C) 2013-2023 The git2r contributors 244s > ## 244s > ## This program is free software; you can redistribute it and/or modify 244s > ## it under the terms of the GNU General Public License, version 2, 244s > ## as published by the Free Software Foundation. 244s > ## 244s > ## git2r is distributed in the hope that it will be useful, 244s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 244s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 244s > ## GNU General Public License for more details. 244s > ## 244s > ## You should have received a copy of the GNU General Public License along 244s > ## with this program; if not, write to the Free Software Foundation, Inc., 244s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 244s > 244s > library(git2r) 244s > source("util/check.R") 244s > 244s > ## For debugging 244s > sessionInfo() 244s R version 4.4.3 (2025-02-28) 244s Platform: x86_64-pc-linux-gnu 244s Running under: Ubuntu Plucky Puffin (development branch) 244s 244s Matrix products: default 244s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 244s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 244s 244s locale: 244s [1] C 244s 244s time zone: Etc/UTC 244s tzcode source: system (glibc) 244s 244s attached base packages: 244s [1] stats graphics grDevices utils datasets methods base 244s 244s other attached packages: 244s [1] git2r_0.35.0 244s 244s loaded via a namespace (and not attached): 244s [1] compiler_4.4.3 244s > libgit2_version() 244s $major 244s [1] 1 244s 244s $minor 244s [1] 9 244s 244s $rev 244s [1] 0 244s 244s > libgit2_features() 244s $threads 244s [1] TRUE 244s 244s $https 244s [1] TRUE 244s 244s $ssh 244s [1] TRUE 244s 244s > 244s > 244s > ## Create a directory in tempdir 244s > path <- tempfile(pattern = "git2r-") 244s > dir.create(path) 244s > 244s > ## Initialize a repository 244s > repo <- init(path) 244s > config(repo, user.name = "Alice", user.email = "alice@example.org") 244s > 244s > ## Create directories 244s > dir.create(file.path(path, "sub-folder")); 244s > dir.create(file.path(path, "sub-folder", "sub-sub-folder")); 244s > 244s > ## Create files 244s > writeLines("Hello world!", 244s + file.path(path, "file-1.txt")) 244s > writeLines("Hello world!", 244s + file.path(path, "sub-folder", "file-2.txt")) 244s > writeLines("Hello world!", 244s + file.path(path, "sub-folder", "file-3.txt")) 244s > writeLines("Hello world!", 244s + file.path(path, "sub-folder", "sub-sub-folder", "file-4.txt")) 244s > writeLines("Hello world!", 244s + file.path(path, "sub-folder", "sub-sub-folder", "file-5.txt")) 244s > 244s > ## Add 244s > add(repo, "file-1.txt") 244s > status_exp <- structure(list(staged = list(new = "file-1.txt"), 244s + unstaged = empty_named_list(), 244s + untracked = list(untracked = "sub-folder/")), 244s + class = "git_status") 244s > status_obs <- status(repo) 244s > stopifnot(identical(status_obs, status_exp)) 244s > 244s > ## Index remove by path 244s > index_remove_bypath(repo, "file-1.txt") 244s > status_exp <- structure(list(staged = empty_named_list(), 244s + unstaged = empty_named_list(), 244s + untracked = list(untracked = "file-1.txt", 244s + untracked = "sub-folder/")), 244s + class = "git_status") 245s > status_obs <- status(repo) 245s > stopifnot(identical(status_obs, status_exp)) 245s > 245s > ## Add 245s > add(repo, "sub-folder") 245s > status_exp <- structure(list(staged = list( 245s + new = "sub-folder/file-2.txt", 245s + new = "sub-folder/file-3.txt", 245s + new = "sub-folder/sub-sub-folder/file-4.txt", 245s + new = "sub-folder/sub-sub-folder/file-5.txt"), 245s + unstaged = empty_named_list(), 245s + untracked = list(untracked = "file-1.txt")), 245s + class = "git_status") 245s > status_obs <- status(repo) 245s > stopifnot(identical(status_obs, status_exp)) 245s > 245s > ## Commit 245s > commit(repo, "First commit message") 245s [c34565f] 2025-03-15: First commit message 245s > 245s > ## It should fail to remove non-existing, untracked and ignored files 245s > tools::assertError(rm_file(repo, c("file-1.txt", "file-2.txt"))) 245s > tools::assertError(rm_file(repo, c("file-1.txt", ""))) 245s > tools::assertError(rm_file(repo, c("file-1.txt"))) 245s > writeLines("/file-1.txt", file.path(path, ".gitignore")) 245s > tools::assertError(rm_file(repo, "file-1.txt")) 245s > 245s > ## It should fail to remove files with staged changes 245s > file.remove(file.path(path, ".gitignore")) 245s [1] TRUE 245s > add(repo, "file-1.txt") 245s > tools::assertError(rm_file(repo, "file-1.txt")) 245s > 245s > ## It should fail to remove files with unstaged changes 245s > commit(repo, "Second commit message") 245s [ce3857c] 2025-03-15: Second commit message 245s > writeLines(c("Hello world!", "Hello world!"), 245s + file.path(path, "file-1.txt")) 245s > tools::assertError(rm_file(repo, "file-1.txt")) 245s > 245s > ## Remove file 245s > add(repo, "file-1.txt") 245s > commit(repo, "Third commit message") 245s [9853e02] 2025-03-15: Third commit message 245s > rm_file(repo, "file-1.txt") 245s > status_exp <- structure(list(staged = list(deleted = "file-1.txt"), 245s + unstaged = empty_named_list(), 245s + untracked = empty_named_list()), 245s + class = "git_status") 245s > status_obs <- status(repo) 245s > stopifnot(identical(status_obs, status_exp)) 245s > 245s > ## Cleanup 245s > unlink(path, recursive = TRUE) 245s > 245s BEGIN TEST invalid-conf-var.R 245s 245s R version 4.4.3 (2025-02-28) -- "Trophy Case" 245s Copyright (C) 2025 The R Foundation for Statistical Computing 245s Platform: x86_64-pc-linux-gnu 245s 245s R is free software and comes with ABSOLUTELY NO WARRANTY. 245s You are welcome to redistribute it under certain conditions. 245s Type 'license()' or 'licence()' for distribution details. 245s 245s R is a collaborative project with many contributors. 245s Type 'contributors()' for more information and 245s 'citation()' on how to cite R or R packages in publications. 245s 245s Type 'demo()' for some demos, 'help()' for on-line help, or 245s 'help.start()' for an HTML browser interface to help. 245s Type 'q()' to quit R. 245s 245s > ## git2r, R bindings to the libgit2 library. 245s > ## Copyright (C) 2013-2023 The git2r contributors 245s > ## 245s > ## This program is free software; you can redistribute it and/or modify 245s > ## it under the terms of the GNU General Public License, version 2, 245s > ## as published by the Free Software Foundation. 245s > ## 245s > ## git2r is distributed in the hope that it will be useful, 245s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 245s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 245s > ## GNU General Public License for more details. 245s > ## 245s > ## You should have received a copy of the GNU General Public License along 245s > ## with this program; if not, write to the Free Software Foundation, Inc., 245s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 245s > 245s > library("git2r") 245s > 245s > ## For debugging 245s > sessionInfo() 245s R version 4.4.3 (2025-02-28) 245s Platform: x86_64-pc-linux-gnu 245s Running under: Ubuntu Plucky Puffin (development branch) 245s 245s Matrix products: default 245s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 245s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 245s 245s locale: 245s [1] C 245s 245s time zone: Etc/UTC 245s tzcode source: system (glibc) 245s 245s attached base packages: 245s [1] stats graphics grDevices utils datasets methods base 245s 245s other attached packages: 245s [1] git2r_0.35.0 245s 245s loaded via a namespace (and not attached): 245s [1] compiler_4.4.3 245s > libgit2_version() 245s $major 245s [1] 1 245s 245s $minor 245s [1] 9 245s 245s $rev 245s [1] 0 245s 245s > libgit2_features() 245s $threads 245s [1] TRUE 245s 245s $https 245s [1] TRUE 245s 245s $ssh 245s [1] TRUE 245s 245s > 245s > 245s > ## Create a directory in tempdir 245s > path <- tempfile(pattern = "git2r-") 245s > dir.create(path) 245s > 245s > ## Initialize a repository 245s > repo <- init(path) 245s > 245s > ## Config repository 245s > config(repo, user.name = "Alice") 245s > 245s > ## Let's set one valid and one with variable with invalid format 245s > res <- tools::assertWarning(config(repo, 245s + user.email = "alice@example.org", 245s + lol = "wut")) 245s > stopifnot(length(grep("Variable was not in a valid format: 'lol'", 245s + res[[1]]$message)) > 0) 245s > 245s > cfg_exp <- structure(list(user.name = "Alice", 245s + user.email = "alice@example.org", 245s + "NA" = NULL), 245s + .Names = c("user.name", "user.email", NA)) 245s > 245s > cfg_obs <- config(repo)$local 245s > cfg_obs <- cfg_obs[c("user.name", "user.email", "lol")] 245s > stopifnot(identical(cfg_obs, cfg_exp)) 245s > 245s > ## Cleanup 245s > unlink(path, recursive = TRUE) 245s > 245s BEGIN TEST libgit2.R 245s 245s R version 4.4.3 (2025-02-28) -- "Trophy Case" 245s Copyright (C) 2025 The R Foundation for Statistical Computing 245s Platform: x86_64-pc-linux-gnu 245s 245s R is free software and comes with ABSOLUTELY NO WARRANTY. 245s You are welcome to redistribute it under certain conditions. 245s Type 'license()' or 'licence()' for distribution details. 245s 245s R is a collaborative project with many contributors. 245s Type 'contributors()' for more information and 245s 'citation()' on how to cite R or R packages in publications. 245s 245s Type 'demo()' for some demos, 'help()' for on-line help, or 245s 'help.start()' for an HTML browser interface to help. 245s Type 'q()' to quit R. 245s 245s > ## git2r, R bindings to the libgit2 library. 245s > ## Copyright (C) 2013-2023 The git2r contributors 245s > ## 245s > ## This program is free software; you can redistribute it and/or modify 245s > ## it under the terms of the GNU General Public License, version 2, 245s > ## as published by the Free Software Foundation. 245s > ## 245s > ## git2r is distributed in the hope that it will be useful, 245s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 245s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 245s > ## GNU General Public License for more details. 245s > ## 245s > ## You should have received a copy of the GNU General Public License along 245s > ## with this program; if not, write to the Free Software Foundation, Inc., 245s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 245s > 245s > library("git2r") 245s > 245s > ## For debugging 245s > sessionInfo() 245s R version 4.4.3 (2025-02-28) 245s Platform: x86_64-pc-linux-gnu 245s Running under: Ubuntu Plucky Puffin (development branch) 245s 245s Matrix products: default 245s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 245s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 245s 245s locale: 245s [1] C 245s 245s time zone: Etc/UTC 245s tzcode source: system (glibc) 245s 245s attached base packages: 245s [1] stats graphics grDevices utils datasets methods base 245s 245s other attached packages: 245s [1] git2r_0.35.0 245s 245s loaded via a namespace (and not attached): 245s [1] compiler_4.4.3 245s > libgit2_version() 245s $major 245s [1] 1 245s 245s $minor 245s [1] 9 245s 245s $rev 245s [1] 0 245s 245s > libgit2_features() 245s $threads 245s [1] TRUE 245s 245s $https 245s [1] TRUE 245s 245s $ssh 245s [1] TRUE 245s 245s > 245s > 245s > stopifnot(identical(names(libgit2_features()), 245s + c("threads", "https", "ssh"))) 245s > 245s > stopifnot(identical(names(libgit2_version()), 245s + c("major", "minor", "rev"))) 245s > 245s > tools::assertError(ssl_cert_locations()) 245s > 245s > if (identical(Sys.getenv("R_COVR"), "true")) { 245s + if (isTRUE(libgit2_features()$https)) { 245s + ## Create a directory in tempdir 245s + path <- tempfile(pattern = "git2r-") 245s + dir.create(path) 245s + stopifnot(is.null(ssl_cert_locations(path = path))) 245s + unlink(path) 245s + } 245s + } 245s > 245s BEGIN TEST ls_tree.R 245s 245s R version 4.4.3 (2025-02-28) -- "Trophy Case" 245s Copyright (C) 2025 The R Foundation for Statistical Computing 245s Platform: x86_64-pc-linux-gnu 245s 245s R is free software and comes with ABSOLUTELY NO WARRANTY. 245s You are welcome to redistribute it under certain conditions. 245s Type 'license()' or 'licence()' for distribution details. 245s 245s R is a collaborative project with many contributors. 245s Type 'contributors()' for more information and 245s 'citation()' on how to cite R or R packages in publications. 245s 245s Type 'demo()' for some demos, 'help()' for on-line help, or 245s 'help.start()' for an HTML browser interface to help. 245s Type 'q()' to quit R. 245s 245s > ## git2r, R bindings to the libgit2 library. 245s > ## Copyright (C) 2013-2023 The git2r contributors 245s > ## 245s > ## This program is free software; you can redistribute it and/or modify 245s > ## it under the terms of the GNU General Public License, version 2, 245s > ## as published by the Free Software Foundation. 245s > ## 245s > ## git2r is distributed in the hope that it will be useful, 245s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 245s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 245s > ## GNU General Public License for more details. 245s > ## 245s > ## You should have received a copy of the GNU General Public License along 245s > ## with this program; if not, write to the Free Software Foundation, Inc., 245s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 245s > 245s > library("git2r") 245s > 245s > ## For debugging 245s > sessionInfo() 245s R version 4.4.3 (2025-02-28) 245s Platform: x86_64-pc-linux-gnu 245s Running under: Ubuntu Plucky Puffin (development branch) 245s 245s Matrix products: default 245s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 245s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 245s 245s locale: 245s [1] C 245s 245s time zone: Etc/UTC 245s tzcode source: system (glibc) 245s 245s attached base packages: 245s [1] stats graphics grDevices utils datasets methods base 245s 245s other attached packages: 245s [1] git2r_0.35.0 245s 245s loaded via a namespace (and not attached): 245s [1] compiler_4.4.3 245s > libgit2_version() 245s $major 245s [1] 1 245s 245s $minor 245s [1] 9 245s 245s $rev 245s [1] 0 245s 245s > libgit2_features() 245s $threads 245s [1] TRUE 245s 245s $https 245s [1] TRUE 245s 245s $ssh 245s [1] TRUE 245s 245s > 245s > 245s > ## Initialize a temporary repository 245s > path <- tempfile(pattern = "git2r-") 245s > dir.create(path) 245s > dir.create(file.path(path, "subfolder")) 245s > repo <- init(path) 245s > 245s > ## Create a user 245s > config(repo, user.name = "Alice", user.email = "alice@example.org") 245s > 245s > ## Create three files and commit 245s > writeLines("First file", file.path(path, "example-1.txt")) 245s > writeLines("Second file", file.path(path, "subfolder/example-2.txt")) 245s > writeLines("Third file", file.path(path, "example-3.txt")) 245s > add(repo, c("example-1.txt", "subfolder/example-2.txt", "example-3.txt")) 245s > commit(repo, "Commit message") 245s [61bfc48] 2025-03-15: Commit message 245s > 245s > ## Traverse tree entries and its subtrees. 245s > ## Various approaches that give identical result. 245s > stopifnot(identical(ls_tree(tree = tree(last_commit(path))), 245s + ls_tree(tree = tree(last_commit(repo))))) 245s > stopifnot(identical(ls_tree(repo = path), ls_tree(repo = repo))) 245s > 245s > ## ls_tree(repo = repo) should match `git ls-tree -lr HEAD` 245s > ls_tree_result <- ls_tree(repo = repo) 245s > stopifnot(identical(ls_tree_result$name, 245s + c("example-1.txt", "example-3.txt", "example-2.txt"))) 245s > 245s > # Argument `tree` can be a 'character that identifies a tree in the repository' 245s > ls_tree(tree = tree(last_commit(path))$sha, repo = repo) 245s mode type sha path name 245s 1 100644 blob 4c5fd919d52e3c1b08f7924cfa05d6de100912fd example-1.txt 245s 2 100644 blob f89598da398eb016c504a5e272cb3eb1a31e2687 example-3.txt 245s 3 100644 blob 20d5b672a347112783818b3fc8cc7cd66ade3008 subfolder/ example-2.txt 245s len 245s 1 11 245s 2 11 245s 3 12 245s > 245s > ## Skip content in subfolder 245s > ls_tree_toplevel <- ls_tree(repo = repo, recursive = FALSE) 245s > stopifnot(nrow(ls_tree_toplevel) == 3) 245s > stopifnot(identical(ls_tree_toplevel$name, 245s + c("example-1.txt", "example-3.txt", "subfolder"))) 245s > 245s > ## Start in subfolder 245s > ls_tree_subfolder <- ls_tree(tree = "HEAD:subfolder", repo = repo) 245s > stopifnot(nrow(ls_tree_subfolder) == 1) 245s > stopifnot(identical(ls_tree_subfolder$name, "example-2.txt")) 245s > 245s > ## Cleanup 245s > unlink(path, recursive = TRUE) 245s > 245s BEGIN TEST merge.R 245s 245s R version 4.4.3 (2025-02-28) -- "Trophy Case" 245s Copyright (C) 2025 The R Foundation for Statistical Computing 245s Platform: x86_64-pc-linux-gnu 245s 245s R is free software and comes with ABSOLUTELY NO WARRANTY. 245s You are welcome to redistribute it under certain conditions. 245s Type 'license()' or 'licence()' for distribution details. 245s 245s R is a collaborative project with many contributors. 245s Type 'contributors()' for more information and 245s 'citation()' on how to cite R or R packages in publications. 245s 245s Type 'demo()' for some demos, 'help()' for on-line help, or 245s 'help.start()' for an HTML browser interface to help. 245s Type 'q()' to quit R. 245s 245s > ## git2r, R bindings to the libgit2 library. 245s > ## Copyright (C) 2013-2023 The git2r contributors 245s > ## 245s > ## This program is free software; you can redistribute it and/or modify 245s > ## it under the terms of the GNU General Public License, version 2, 245s > ## as published by the Free Software Foundation. 245s > ## 245s > ## git2r is distributed in the hope that it will be useful, 245s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 245s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 245s > ## GNU General Public License for more details. 245s > ## 245s > ## You should have received a copy of the GNU General Public License along 245s > ## with this program; if not, write to the Free Software Foundation, Inc., 245s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 245s > 245s > library(git2r) 245s > source("util/check.R") 245s > 245s > ## For debugging 245s > sessionInfo() 245s R version 4.4.3 (2025-02-28) 245s Platform: x86_64-pc-linux-gnu 245s Running under: Ubuntu Plucky Puffin (development branch) 245s 245s Matrix products: default 245s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 245s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 245s 245s locale: 245s [1] C 245s 245s time zone: Etc/UTC 245s tzcode source: system (glibc) 245s 245s attached base packages: 245s [1] stats graphics grDevices utils datasets methods base 245s 245s other attached packages: 245s [1] git2r_0.35.0 245s 245s loaded via a namespace (and not attached): 245s [1] compiler_4.4.3 245s > libgit2_version() 245s $major 245s [1] 1 245s 245s $minor 245s [1] 9 245s 245s $rev 245s [1] 0 245s 245s > libgit2_features() 245s $threads 245s [1] TRUE 245s 245s $https 245s [1] TRUE 245s 245s $ssh 245s [1] TRUE 245s 245s > 245s > 245s > ## Create a directory in tempdir 245s > path <- tempfile(pattern = "git2r-") 245s > dir.create(path) 245s > 245s > ## Initialize a repository 245s > repo <- init(path, branch = "main") 245s > config(repo, user.name = "Alice", user.email = "alice@example.org") 245s > 245s > ## Create a file, add and commit 245s > writeLines("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 245s + con = file.path(path, "test.txt")) 245s > add(repo, "test.txt") 245s > commit_1 <- commit(repo, "Commit message 1") 245s > 245s > ## Create first branch, checkout, add file and commit 245s > b_1 <- branch_create(commit_1, "branch1") 245s > checkout(b_1) 245s > writeLines("Branch 1", file.path(path, "branch-1.txt")) 245s > add(repo, "branch-1.txt") 245s > commit_2 <- commit(repo, "Commit message branch 1") 245s > 245s > ## Create second branch, checkout, add file and commit 245s > b_2 <- branch_create(commit_1, "branch2") 245s > checkout(b_2) 245s > writeLines("Branch 2", file.path(path, "branch-2.txt")) 245s > add(repo, "branch-2.txt") 245s > commit_3 <- commit(repo, "Commit message branch 2") 245s > writeLines(c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 245s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 245s + con = file.path(path, "test.txt")) 245s > add(repo, "test.txt") 245s > commit_4 <- commit(repo, "Second commit message branch 2") 245s > 245s > ## Check that merge base equals commit_1 245s > stopifnot(identical(merge_base(commit_2, commit_3), commit_1)) 245s > 245s > ## Checkout main 245s > b <- branches(repo) 245s > checkout(b[sapply(b, "[", "name") == "main"][[1]], force = TRUE) 245s > 245s > ## Merge branch 1 245s > m_1 <- merge(b[sapply(b, "[", "name") == "branch1"][[1]]) 245s > stopifnot(identical(m_1$fast_forward, TRUE)) 245s > stopifnot(identical(m_1$conflicts, FALSE)) 245s > stopifnot(identical(sha(m_1), NA_character_)) 245s > stopifnot(identical(print(m_1), m_1)) 245s Merge: Fast-forward 245s > 245s > ## Merge branch 1 again 245s > m_1_again <- merge(b[sapply(b, "[", "name") == "branch1"][[1]]) 245s > stopifnot(identical(m_1_again$up_to_date, TRUE)) 245s > stopifnot(identical(m_1_again$fast_forward, FALSE)) 245s > stopifnot(identical(m_1_again$conflicts, FALSE)) 245s > stopifnot(identical(sha(m_1_again), NA_character_)) 245s > 245s > ## Merge branch 2 245s > m_2 <- merge(b[sapply(b, "[", "name") == "branch2"][[1]]) 245s > stopifnot(identical(m_2$fast_forward, FALSE)) 245s > stopifnot(identical(m_2$conflicts, FALSE)) 245s > stopifnot(identical(sha(m_2), sha(commits(repo)[[1]]))) 245s > 245s > ## Create third branch, checkout, change file and commit 245s > b_3 <- branch_create(lookup(repo, sha(m_2)), "branch3") 245s > checkout(b_3) 245s > writeLines(c("Lorem ipsum dolor amet sit, consectetur adipisicing elit, sed do", 245s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 245s + con = file.path(path, "test.txt")) 245s > add(repo, "test.txt") 245s > commit(repo, "Commit message branch 3") 245s [80ffe06] 2025-03-15: Commit message branch 3 245s > 245s > ## Checkout main and create a change that creates a conflict on 245s > ## merge 245s > b <- branches(repo) 245s > checkout(b[sapply(b, "[", "name") == "main"][[1]], force = TRUE) 245s > writeLines(c("Lorem ipsum dolor sit amet, adipisicing consectetur elit, sed do", 245s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 245s + con = file.path(path, "test.txt")) 245s > add(repo, "test.txt") 245s > commit(repo, "Some commit message branch 1") 245s [ecba13f] 2025-03-15: Some commit message branch 1 245s > 245s > ## Merge branch 3 with fail = TRUE 245s > m_3 <- merge(b[sapply(b, "[", "name") == "branch3"][[1]], fail = TRUE) 245s > stopifnot(identical(m_3$up_to_date, FALSE)) 245s > stopifnot(identical(m_3$fast_forward, FALSE)) 245s > stopifnot(identical(m_3$conflicts, TRUE)) 245s > stopifnot(identical(sha(m_3), NA_character_)) 245s > m_3 245s Merge: Conflicts 245s > 245s > ## Check status; Expect to have a clean working directory 245s > wd <- structure(list(staged = empty_named_list(), 245s + unstaged = empty_named_list(), 245s + untracked = empty_named_list()), 245s + class = "git_status") 246s > stopifnot(identical(status(repo), wd)) 246s > 246s > ## Merge branch 3 246s > m_3 <- merge(b[sapply(b, "[", "name") == "branch3"][[1]]) 246s > stopifnot(identical(m_3$up_to_date, FALSE)) 246s > stopifnot(identical(m_3$fast_forward, FALSE)) 246s > stopifnot(identical(m_3$conflicts, TRUE)) 246s > stopifnot(identical(sha(m_3), NA_character_)) 246s > m_3 246s Merge: Conflicts 246s > 246s > ## Check status; Expect to have one unstaged unmerged conflict. 246s > stopifnot(identical(status(repo), 246s + structure(list(staged = empty_named_list(), 246s + unstaged = list(conflicted = "test.txt"), 246s + untracked = empty_named_list()), 246s + class = "git_status"))) 246s > 246s > ## Cleanup 246s > unlink(path, recursive = TRUE) 246s > 246s BEGIN TEST merge_named_branch.R 246s 246s R version 4.4.3 (2025-02-28) -- "Trophy Case" 246s Copyright (C) 2025 The R Foundation for Statistical Computing 246s Platform: x86_64-pc-linux-gnu 246s 246s R is free software and comes with ABSOLUTELY NO WARRANTY. 246s You are welcome to redistribute it under certain conditions. 246s Type 'license()' or 'licence()' for distribution details. 246s 246s R is a collaborative project with many contributors. 246s Type 'contributors()' for more information and 246s 'citation()' on how to cite R or R packages in publications. 246s 246s Type 'demo()' for some demos, 'help()' for on-line help, or 246s 'help.start()' for an HTML browser interface to help. 246s Type 'q()' to quit R. 246s 246s > ## git2r, R bindings to the libgit2 library. 246s > ## Copyright (C) 2013-2023 The git2r contributors 246s > ## 246s > ## This program is free software; you can redistribute it and/or modify 246s > ## it under the terms of the GNU General Public License, version 2, 246s > ## as published by the Free Software Foundation. 246s > ## 246s > ## git2r is distributed in the hope that it will be useful, 246s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 246s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 246s > ## GNU General Public License for more details. 246s > ## 246s > ## You should have received a copy of the GNU General Public License along 246s > ## with this program; if not, write to the Free Software Foundation, Inc., 246s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 246s > 246s > library(git2r) 246s > source("util/check.R") 246s > 246s > ## For debugging 246s > sessionInfo() 246s R version 4.4.3 (2025-02-28) 246s Platform: x86_64-pc-linux-gnu 246s Running under: Ubuntu Plucky Puffin (development branch) 246s 246s Matrix products: default 246s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 246s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 246s 246s locale: 246s [1] C 246s 246s time zone: Etc/UTC 246s tzcode source: system (glibc) 246s 246s attached base packages: 246s [1] stats graphics grDevices utils datasets methods base 246s 246s other attached packages: 246s [1] git2r_0.35.0 246s 246s loaded via a namespace (and not attached): 246s [1] compiler_4.4.3 246s > libgit2_version() 246s $major 246s [1] 1 246s 246s $minor 246s [1] 9 246s 246s $rev 246s [1] 0 246s 246s > libgit2_features() 246s $threads 246s [1] TRUE 246s 246s $https 246s [1] TRUE 246s 246s $ssh 246s [1] TRUE 246s 246s > 246s > 246s > ## Create a directory in tempdir 246s > path <- tempfile(pattern = "git2r-") 246s > dir.create(path) 246s > 246s > ## Initialize a repository 246s > repo <- init(path, branch = "main") 246s > config(repo, user.name = "Alice", user.email = "alice@example.org") 246s > 246s > ## Create a file, add and commit 246s > writeLines("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 246s + con = file.path(path, "test.txt")) 246s > add(repo, "test.txt") 246s > commit_1 <- commit(repo, "Commit message 1") 246s > 246s > ## Create first branch, checkout, add file and commit 246s > checkout(repo, "branch1", create = TRUE) 246s > writeLines("Branch 1", file.path(path, "branch-1.txt")) 246s > add(repo, "branch-1.txt") 246s > commit_2 <- commit(repo, "Commit message branch 1") 246s > 246s > ## Create second branch, checkout, add file and commit 246s > b_2 <- branch_create(commit_1, "branch2") 246s > checkout(b_2) 246s > writeLines("Branch 2", file.path(path, "branch-2.txt")) 246s > add(repo, "branch-2.txt") 246s > commit_3 <- commit(repo, "Commit message branch 2") 246s > writeLines(c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 246s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 246s + con = file.path(path, "test.txt")) 246s > add(repo, "test.txt") 246s > commit_4 <- commit(repo, "Second commit message branch 2") 246s > 246s > ## Check that merge base equals commit_1 246s > stopifnot(identical(merge_base(commit_2, commit_3), commit_1)) 246s > 246s > ## Checkout main 246s > b <- branches(repo) 246s > checkout(b[sapply(b, "[", "name") == "main"][[1]], force = TRUE) 246s > 246s > ## Merge branch 1 246s > m_1 <- merge(repo, "branch1") 246s > stopifnot(identical(m_1$fast_forward, TRUE)) 246s > stopifnot(identical(m_1$conflicts, FALSE)) 246s > stopifnot(identical(sha(m_1), NA_character_)) 246s > 246s > ## Merge branch 2 246s > m_2 <- merge(path, "branch2") 246s > stopifnot(identical(m_2$fast_forward, FALSE)) 246s > stopifnot(identical(m_2$conflicts, FALSE)) 246s > stopifnot(identical(sha(m_2), sha(commits(repo)[[1]]))) 246s > 246s > ## Create third branch, checkout, change file and commit 246s > checkout(repo, "branch3", create = TRUE) 246s > writeLines(c("Lorem ipsum dolor amet sit, consectetur adipisicing elit, sed do", 246s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 246s + con = file.path(path, "test.txt")) 246s > add(repo, "test.txt") 246s > commit(repo, "Commit message branch 3") 246s [80ffe06] 2025-03-15: Commit message branch 3 246s > 246s > ## Checkout main and create a change that creates a merge conflict 246s > checkout(repo, "main", force = TRUE) 246s > writeLines(c("Lorem ipsum dolor sit amet, adipisicing consectetur elit, sed do", 246s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 246s + con = file.path(path, "test.txt")) 246s > add(repo, "test.txt") 246s > commit(repo, "Some commit message branch 1") 246s [ecba13f] 2025-03-15: Some commit message branch 1 246s > 246s > ## Merge branch 3 246s > m_3 <- merge(repo, "branch3") 246s > stopifnot(identical(m_3$up_to_date, FALSE)) 246s > stopifnot(identical(m_3$fast_forward, FALSE)) 246s > stopifnot(identical(m_3$conflicts, TRUE)) 246s > stopifnot(identical(sha(m_3), NA_character_)) 246s > 246s > ## Check status; Expect to have one unstaged unmerged conflict. 246s > stopifnot(identical(status(repo), 246s + structure(list(staged = empty_named_list(), 246s + unstaged = list(conflicted = "test.txt"), 246s + untracked = empty_named_list()), 246s + class = "git_status"))) 246s > 246s > ## Cleanup 246s > unlink(path, recursive = TRUE) 246s > 246s BEGIN TEST normal_merge.R 246s 246s R version 4.4.3 (2025-02-28) -- "Trophy Case" 246s Copyright (C) 2025 The R Foundation for Statistical Computing 246s Platform: x86_64-pc-linux-gnu 246s 246s R is free software and comes with ABSOLUTELY NO WARRANTY. 246s You are welcome to redistribute it under certain conditions. 246s Type 'license()' or 'licence()' for distribution details. 246s 246s R is a collaborative project with many contributors. 246s Type 'contributors()' for more information and 246s 'citation()' on how to cite R or R packages in publications. 246s 246s Type 'demo()' for some demos, 'help()' for on-line help, or 246s 'help.start()' for an HTML browser interface to help. 246s Type 'q()' to quit R. 246s 246s > ## git2r, R bindings to the libgit2 library. 246s > ## Copyright (C) 2013-2023 The git2r contributors 246s > ## 246s > ## This program is free software; you can redistribute it and/or modify 246s > ## it under the terms of the GNU General Public License, version 2, 246s > ## as published by the Free Software Foundation. 246s > ## 246s > ## git2r is distributed in the hope that it will be useful, 246s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 246s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 246s > ## GNU General Public License for more details. 246s > ## 246s > ## You should have received a copy of the GNU General Public License along 246s > ## with this program; if not, write to the Free Software Foundation, Inc., 246s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 246s > 246s > library(git2r) 246s > 246s > ## For debugging 246s > sessionInfo() 246s R version 4.4.3 (2025-02-28) 246s Platform: x86_64-pc-linux-gnu 246s Running under: Ubuntu Plucky Puffin (development branch) 246s 246s Matrix products: default 246s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 246s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 246s 246s locale: 246s [1] C 246s 246s time zone: Etc/UTC 246s tzcode source: system (glibc) 246s 246s attached base packages: 246s [1] stats graphics grDevices utils datasets methods base 246s 246s other attached packages: 246s [1] git2r_0.35.0 246s 246s loaded via a namespace (and not attached): 246s [1] compiler_4.4.3 246s > libgit2_version() 246s $major 246s [1] 1 246s 246s $minor 246s [1] 9 246s 246s $rev 246s [1] 0 246s 246s > libgit2_features() 246s $threads 246s [1] TRUE 246s 246s $https 246s [1] TRUE 246s 246s $ssh 246s [1] TRUE 246s 246s > 246s > 246s > ## Initialize a temporary repository 246s > path <- tempfile(pattern = "git2r-") 246s > dir.create(path) 246s > repo <- init(path, branch = "main") 246s > 246s > ## Create a user and commit a file 246s > config(repo, user.name = "Author", user.email = "author@example.org") 246s > writeLines(c("First line in file 1.", "Second line in file 1."), 246s + file.path(path, "example-1.txt")) 246s > add(repo, "example-1.txt") 246s > commit(repo, "First commit message") 246s [ee0cf36] 2025-03-15: First commit message 246s > 246s > ## Create and add one more file 246s > writeLines(c("First line in file 2.", "Second line in file 2."), 246s + file.path(path, "example-2.txt")) 246s > add(repo, "example-2.txt") 246s > commit(repo, "Second commit message") 246s [a778fc3] 2025-03-15: Second commit message 246s > 246s > ## Create a new branch 'fix' 246s > checkout(repo, "fix", create = TRUE) 246s > 246s > ## Update 'example-1.txt' (swap words in first line) and commit 246s > writeLines(c("line First in file 1.", "Second line in file 1."), 246s + file.path(path, "example-1.txt")) 246s > add(repo, "example-1.txt") 246s > commit(repo, "Third commit message") 246s [6cf9353] 2025-03-15: Third commit message 246s > 246s > checkout(repo, "main") 246s > 246s > ## Update 'example-2.txt' (swap words in second line) and commit 246s > writeLines(c("First line in file 2.", "line Second in file 2."), 246s + file.path(path, "example-2.txt")) 246s > add(repo, "example-2.txt") 246s > commit(repo, "Fourth commit message") 246s [29fdfca] 2025-03-15: Fourth commit message 246s > 246s > # Missing branch to merge with should throw an error 246s > tools::assertError(merge(repo)) 246s > 246s > ## Merge 'fix' 246s > m <- merge(repo, "fix", TRUE, default_signature(repo)) 246s > stopifnot(identical(format(m), "Merge")) 246s > 246s > ## Merge 'fix' again 246s > m <- merge(repo, "fix", TRUE, default_signature(repo)) 246s > stopifnot(identical(format(m), "Already up-to-date")) 246s > 246s > ## Check number of parents of each commit 246s > stopifnot(identical(sapply(commits(repo), function(x) length(parents(x))), 246s + c(2L, 1L, 1L, 1L, 0L))) 246s > 246s > ## Check that last commit is a merge 246s > stopifnot(is_merge(last_commit(repo))) 246s > summary(last_commit(repo)) 246s Commit: fa9875e4f225827322cf1e129e2ac53f51caa791 246s Merge: 29fdfcaeec2c0f951521e86e99992fddec947367 246s 6cf93531e2e4f1244e7128c250f0599764b318c9 246s Author: Author 246s When: 2025-03-15 22:14:11 GMT 246s 246s merge fix 246s 246s Commit message: 29fdfcaeec2c0f951521e86e99992fddec947367 246s Fourth commit message 246s 246s Commit message: 6cf93531e2e4f1244e7128c250f0599764b318c9 246s Third commit message 246s 246s > 246s > ## Check that metadata associated with merge is removed 246s > stopifnot(!file.exists(file.path(path, ".git", "MERGE_HEAD"))) 246s > 246s > ## Cleanup 246s > unlink(path, recursive = TRUE) 246s > 246s BEGIN TEST note.R 246s 246s R version 4.4.3 (2025-02-28) -- "Trophy Case" 246s Copyright (C) 2025 The R Foundation for Statistical Computing 246s Platform: x86_64-pc-linux-gnu 246s 246s R is free software and comes with ABSOLUTELY NO WARRANTY. 246s You are welcome to redistribute it under certain conditions. 246s Type 'license()' or 'licence()' for distribution details. 246s 246s R is a collaborative project with many contributors. 246s Type 'contributors()' for more information and 246s 'citation()' on how to cite R or R packages in publications. 246s 246s Type 'demo()' for some demos, 'help()' for on-line help, or 246s 'help.start()' for an HTML browser interface to help. 246s Type 'q()' to quit R. 246s 246s > ## git2r, R bindings to the libgit2 library. 246s > ## Copyright (C) 2013-2023 The git2r contributors 246s > ## 246s > ## This program is free software; you can redistribute it and/or modify 246s > ## it under the terms of the GNU General Public License, version 2, 246s > ## as published by the Free Software Foundation. 246s > ## 246s > ## git2r is distributed in the hope that it will be useful, 246s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 246s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 246s > ## GNU General Public License for more details. 246s > ## 246s > ## You should have received a copy of the GNU General Public License along 246s > ## with this program; if not, write to the Free Software Foundation, Inc., 246s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 246s > 246s > library("git2r") 246s > 246s > ## For debugging 246s > sessionInfo() 246s R version 4.4.3 (2025-02-28) 246s Platform: x86_64-pc-linux-gnu 246s Running under: Ubuntu Plucky Puffin (development branch) 246s 246s Matrix products: default 246s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 246s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 246s 246s locale: 246s [1] C 246s 246s time zone: Etc/UTC 246s tzcode source: system (glibc) 246s 246s attached base packages: 246s [1] stats graphics grDevices utils datasets methods base 246s 246s other attached packages: 246s [1] git2r_0.35.0 246s 246s loaded via a namespace (and not attached): 246s [1] compiler_4.4.3 246s > libgit2_version() 246s $major 246s [1] 1 246s 246s $minor 246s [1] 9 246s 246s $rev 246s [1] 0 246s 246s > libgit2_features() 246s $threads 246s [1] TRUE 246s 246s $https 246s [1] TRUE 246s 246s $ssh 246s [1] TRUE 246s 246s > 246s > 246s > ## Create a directory in tempdir 246s > path <- tempfile(pattern = "git2r-") 246s > dir.create(path) 246s > 246s > ## Initialize a repository 246s > repo <- init(path) 246s > config(repo, user.name = "Alice", user.email = "alice@example.org") 246s > 246s > ## Create a file, add and commit 246s > writeLines("Hello world!", file.path(path, "test.txt")) 246s > add(repo, "test.txt") 246s > commit_1 <- commit(repo, "Commit message 1") 246s > 246s > ## Create another commit 246s > writeLines(c("Hello world!", 246s + "HELLO WORLD!"), 246s + file.path(path, "test.txt")) 246s > add(repo, "test.txt") 246s > commit_2 <- commit(repo, "Commit message 2") 246s > 246s > ## Check default ref 246s > stopifnot(identical(note_default_ref(repo), 246s + "refs/notes/commits")) 246s > 246s > ## Check that an invalid object argument in note_create produce an 246s > ## error. 246s > tools::assertError(note_create(object = NULL, message = "test")) 246s > tools::assertError(note_create(object = 1, message = "test")) 246s > 246s > ## Check that notes is an empty list 246s > stopifnot(identical(notes(repo), list())) 246s > 246s > ## Create note in default namespace 246s > note_1 <- note_create(commit_1, "Note-1") 246s > stopifnot(identical(print(note_1), note_1)) 246s note: a801dfb10a85d13bc8ab304a9255b5cf180f94dd 246s > stopifnot(identical(length(notes(repo)), 1L)) 246s > stopifnot(identical(sha(note_1), note_1$sha)) 246s > tools::assertError(note_create(commit_1, "Note-2")) 246s > note_2 <- note_create(commit_1, "Note-2", force = TRUE) 246s > stopifnot(identical(length(notes(repo)), 1L)) 246s > 246s > ## Check that an invalid note argument in note_remove produce an 246s > ## error. 246s > tools::assertError(note_remove(note = 1)) 246s > 246s > ## Create note in named (review) namespace 246s > note_3 <- note_create(commit_1, "Note-3", ref = "refs/notes/review") 246s > note_4 <- note_create(commit_2, "Note-4", ref = "refs/notes/review") 246s > stopifnot(identical(length(notes(repo, ref = "refs/notes/review")), 2L)) 246s > note_remove(note_3) 246s > note_remove(note_4) 246s > stopifnot(identical(notes(repo, ref = "refs/notes/review"), list())) 246s > note_5 <- note_create(commit_1, "Note-5", ref = "review") 246s > note_6 <- note_create(commit_2, "Note-6", ref = "review") 246s > stopifnot(identical(length(notes(repo, ref = "review")), 2L)) 246s > note_remove(note_5) 246s > note_remove(note_6) 246s > stopifnot(identical(length(notes(repo, ref = "review")), 0L)) 246s > 246s > ## Create note on blob and tree 246s > tree_1 <- tree(commit_1) 246s > note_7 <- note_create(tree_1, "Note-7") 246s > stopifnot(is(object = lookup(repo, note_7$annotated), class2 = "git_tree")) 246s > stopifnot(identical(length(notes(repo)), 2L)) 246s > blob_1 <- lookup(repo, tree_1$id[1]) 246s > note_8 <- note_create(blob_1, "Note-8") 246s > stopifnot(is(object = lookup(repo, note_8$annotated), class2 = "git_blob")) 246s > stopifnot(identical(length(notes(repo)), 3L)) 246s > 246s > ## Cleanup 246s > unlink(path, recursive = TRUE) 246s > 246s BEGIN TEST odb_blobs.R 246s 246s R version 4.4.3 (2025-02-28) -- "Trophy Case" 246s Copyright (C) 2025 The R Foundation for Statistical Computing 246s Platform: x86_64-pc-linux-gnu 246s 246s R is free software and comes with ABSOLUTELY NO WARRANTY. 246s You are welcome to redistribute it under certain conditions. 246s Type 'license()' or 'licence()' for distribution details. 246s 246s R is a collaborative project with many contributors. 246s Type 'contributors()' for more information and 246s 'citation()' on how to cite R or R packages in publications. 246s 246s Type 'demo()' for some demos, 'help()' for on-line help, or 246s 'help.start()' for an HTML browser interface to help. 246s Type 'q()' to quit R. 246s 247s > ## git2r, R bindings to the libgit2 library. 247s > ## Copyright (C) 2013-2023 The git2r contributors 247s > ## 247s > ## This program is free software; you can redistribute it and/or modify 247s > ## it under the terms of the GNU General Public License, version 2, 247s > ## as published by the Free Software Foundation. 247s > ## 247s > ## git2r is distributed in the hope that it will be useful, 247s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 247s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 247s > ## GNU General Public License for more details. 247s > ## 247s > ## You should have received a copy of the GNU General Public License along 247s > ## with this program; if not, write to the Free Software Foundation, Inc., 247s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 247s > 247s > library("git2r") 247s > 247s > ## For debugging 247s > sessionInfo() 247s R version 4.4.3 (2025-02-28) 247s Platform: x86_64-pc-linux-gnu 247s Running under: Ubuntu Plucky Puffin (development branch) 247s 247s Matrix products: default 247s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 247s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 247s 247s locale: 247s [1] C 247s 247s time zone: Etc/UTC 247s tzcode source: system (glibc) 247s 247s attached base packages: 247s [1] stats graphics grDevices utils datasets methods base 247s 247s other attached packages: 247s [1] git2r_0.35.0 247s 247s loaded via a namespace (and not attached): 247s [1] compiler_4.4.3 247s > libgit2_version() 247s $major 247s [1] 1 247s 247s $minor 247s [1] 9 247s 247s $rev 247s [1] 0 247s 247s > libgit2_features() 247s $threads 247s [1] TRUE 247s 247s $https 247s [1] TRUE 247s 247s $ssh 247s [1] TRUE 247s 247s > 247s > 247s > ## Create a directory in tempdir 247s > path <- tempfile(pattern = "git2r-") 247s > dir.create(path) 247s > 247s > ## Initialize a repository 247s > repo <- init(path) 247s > config(repo, user.name = "Alice", user.email = "alice@@example.org") 247s > 247s > ## Create a file, add and commit 247s > writeLines("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 247s + con = file.path(path, "test.txt")) 247s > add(repo, "test.txt") 247s > commit(repo, "Commit message 1") 247s [795db72] 2025-03-15: Commit message 1 247s > 247s > ## Change file and commit 247s > writeLines(c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 247s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 247s + con = file.path(path, "test.txt")) 247s > add(repo, "test.txt") 247s > commit(repo, "Commit message 2") 247s [f316b7f] 2025-03-15: Commit message 2 247s > 247s > ## Commit same content under different name in a sub-directory 247s > dir.create(file.path(path, "sub-directory")) 247s > file.copy(file.path(path, "test.txt"), 247s + file.path(path, "sub-directory", "copy.txt")) 247s [1] TRUE 247s > add(repo, "sub-directory/copy.txt") 247s > commit(repo, "Commit message 3") 247s [c022f9c] 2025-03-15: Commit message 3 247s > 247s > ## List blobs 247s > b <- odb_blobs(repo) 247s > 247s > ## Order the data.frame before checking 247s > b <- b[order(b$name), ] 247s > 247s > ## Check blobs 247s > stopifnot(identical(nrow(b), 3L)) 247s > stopifnot(identical( 247s + colnames(b), 247s + c("sha", "path", "name", "len", "commit", "author", "when"))) 247s > stopifnot(identical(b$path, c("sub-directory", "", ""))) 247s > stopifnot(identical(b$name, c("copy.txt", "test.txt", "test.txt"))) 247s > stopifnot(identical(b$author, c("Alice", "Alice", "Alice"))) 247s > 247s > ## Cleanup 247s > unlink(path, recursive = TRUE) 247s > 247s BEGIN TEST pre-process-path.R 247s 247s R version 4.4.3 (2025-02-28) -- "Trophy Case" 247s Copyright (C) 2025 The R Foundation for Statistical Computing 247s Platform: x86_64-pc-linux-gnu 247s 247s R is free software and comes with ABSOLUTELY NO WARRANTY. 247s You are welcome to redistribute it under certain conditions. 247s Type 'license()' or 'licence()' for distribution details. 247s 247s R is a collaborative project with many contributors. 247s Type 'contributors()' for more information and 247s 'citation()' on how to cite R or R packages in publications. 247s 247s Type 'demo()' for some demos, 'help()' for on-line help, or 247s 'help.start()' for an HTML browser interface to help. 247s Type 'q()' to quit R. 247s 247s > ## git2r, R bindings to the libgit2 library. 247s > ## Copyright (C) 2013-2023 The git2r contributors 247s > ## 247s > ## This program is free software; you can redistribute it and/or modify 247s > ## it under the terms of the GNU General Public License, version 2, 247s > ## as published by the Free Software Foundation. 247s > ## 247s > ## git2r is distributed in the hope that it will be useful, 247s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 247s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 247s > ## GNU General Public License for more details. 247s > ## 247s > ## You should have received a copy of the GNU General Public License along 247s > ## with this program; if not, write to the Free Software Foundation, Inc., 247s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 247s > 247s > library(git2r) 247s > source("util/check.R") 247s > 247s > ## For debugging 247s > sessionInfo() 247s R version 4.4.3 (2025-02-28) 247s Platform: x86_64-pc-linux-gnu 247s Running under: Ubuntu Plucky Puffin (development branch) 247s 247s Matrix products: default 247s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 247s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 247s 247s locale: 247s [1] C 247s 247s time zone: Etc/UTC 247s tzcode source: system (glibc) 247s 247s attached base packages: 247s [1] stats graphics grDevices utils datasets methods base 247s 247s other attached packages: 247s [1] git2r_0.35.0 247s 247s loaded via a namespace (and not attached): 247s [1] compiler_4.4.3 247s > libgit2_version() 247s $major 247s [1] 1 247s 247s $minor 247s [1] 9 247s 247s $rev 247s [1] 0 247s 247s > libgit2_features() 247s $threads 247s [1] TRUE 247s 247s $https 247s [1] TRUE 247s 247s $ssh 247s [1] TRUE 247s 247s > 247s > 247s > ## Create a directory in tempdir 247s > path <- tempfile(pattern = "git2r-") 247s > dir.create(path) 247s > setwd(path) 247s > 247s > ## Initialize a repository 247s > repo <- init(path) 247s > config(repo, user.name = "Alice", user.email = "alice@example.org") 247s > 247s > ## Test to add file with a leading './' 247s > writeLines("foo-1", file.path(path, "foo-1")) 247s > add(repo, "./foo-1") 247s > status_exp <- structure(list(staged = list(new = "foo-1"), 247s + unstaged = empty_named_list(), 247s + untracked = empty_named_list()), 247s + class = "git_status") 247s > status_obs <- status(repo) 247s > str(status_exp) 247s List of 3 247s $ staged :List of 1 247s ..$ new: chr "foo-1" 247s $ unstaged : Named list() 247s $ untracked: Named list() 247s - attr(*, "class")= chr "git_status" 247s > str(status_obs) 247s List of 3 247s $ staged :List of 1 247s ..$ new: chr "foo-1" 247s $ unstaged : Named list() 247s $ untracked: Named list() 247s - attr(*, "class")= chr "git_status" 247s > stopifnot(identical(status_obs, status_exp)) 247s > 247s > ## Test to add file in sub-folder with sub-folder as working directory 247s > writeLines("foo-2", file.path(path, "foo-2")) 247s > dir.create(file.path(path, "foo_dir")) 247s > writeLines("foo-2", file.path(path, "foo_dir/foo-2")) 247s > setwd("./foo_dir") 247s > add(repo, "foo-2") 247s > status_exp <- structure(list(staged = list(new = "foo-1", 247s + new = "foo_dir/foo-2"), 247s + unstaged = empty_named_list(), 247s + untracked = list(untracked = "foo-2")), 247s + class = "git_status") 247s > status_obs <- status(repo) 247s > str(status_exp) 247s List of 3 247s $ staged :List of 2 247s ..$ new: chr "foo-1" 247s ..$ new: chr "foo_dir/foo-2" 247s $ unstaged : Named list() 247s $ untracked:List of 1 247s ..$ untracked: chr "foo-2" 247s - attr(*, "class")= chr "git_status" 247s > str(status_obs) 247s List of 3 247s $ staged :List of 2 247s ..$ new: chr "foo-1" 247s ..$ new: chr "foo_dir/foo-2" 247s $ unstaged : Named list() 247s $ untracked:List of 1 247s ..$ untracked: chr "foo-2" 247s - attr(*, "class")= chr "git_status" 247s > stopifnot(identical(status_obs, status_exp)) 247s > 247s > ## Test glob expansion 247s > setwd(tempdir()) 247s > dir.create(file.path(path, "glob_dir")) 247s > writeLines("a", file.path(path, "glob_dir/a.txt")) 247s > writeLines("b", file.path(path, "glob_dir/b.txt")) 247s > writeLines("c", file.path(path, "glob_dir/c.txt")) 247s > writeLines("d", file.path(path, "glob_dir/d.md")) 247s > add(repo, "glob_dir/*txt") 247s > status_exp <- structure(list(staged = list(new = "foo-1", 247s + new = "foo_dir/foo-2", 247s + new = "glob_dir/a.txt", 247s + new = "glob_dir/b.txt", 247s + new = "glob_dir/c.txt"), 247s + unstaged = empty_named_list(), 247s + untracked = list(untracked = "foo-2", 247s + untracked = "glob_dir/d.md")), 247s + class = "git_status") 247s > status_obs <- status(repo) 247s > str(status_exp) 247s List of 3 247s $ staged :List of 5 247s ..$ new: chr "foo-1" 247s ..$ new: chr "foo_dir/foo-2" 247s ..$ new: chr "glob_dir/a.txt" 247s ..$ new: chr "glob_dir/b.txt" 247s ..$ new: chr "glob_dir/c.txt" 247s $ unstaged : Named list() 247s $ untracked:List of 2 247s ..$ untracked: chr "foo-2" 247s ..$ untracked: chr "glob_dir/d.md" 247s - attr(*, "class")= chr "git_status" 247s > str(status_obs) 247s List of 3 247s $ staged :List of 5 247s ..$ new: chr "foo-1" 247s ..$ new: chr "foo_dir/foo-2" 247s ..$ new: chr "glob_dir/a.txt" 247s ..$ new: chr "glob_dir/b.txt" 247s ..$ new: chr "glob_dir/c.txt" 247s $ unstaged : Named list() 247s $ untracked:List of 2 247s ..$ untracked: chr "foo-2" 247s ..$ untracked: chr "glob_dir/d.md" 247s - attr(*, "class")= chr "git_status" 247s > stopifnot(identical(status_obs, status_exp)) 247s > 247s > ## Test glob expansion with relative path 247s > setwd(path) 247s > add(repo, "./glob_dir/*md") 247s > status_exp <- structure(list(staged = list(new = "foo-1", 247s + new = "foo_dir/foo-2", 247s + new = "glob_dir/a.txt", 247s + new = "glob_dir/b.txt", 247s + new = "glob_dir/c.txt", 247s + new = "glob_dir/d.md"), 247s + unstaged = empty_named_list(), 247s + untracked = list(untracked = "foo-2")), 247s + class = "git_status") 247s > status_obs <- status(repo) 247s > str(status_exp) 247s List of 3 247s $ staged :List of 6 247s ..$ new: chr "foo-1" 247s ..$ new: chr "foo_dir/foo-2" 247s ..$ new: chr "glob_dir/a.txt" 247s ..$ new: chr "glob_dir/b.txt" 247s ..$ new: chr "glob_dir/c.txt" 247s ..$ new: chr "glob_dir/d.md" 247s $ unstaged : Named list() 247s $ untracked:List of 1 247s ..$ untracked: chr "foo-2" 247s - attr(*, "class")= chr "git_status" 247s > str(status_obs) 247s List of 3 247s $ staged :List of 6 247s ..$ new: chr "foo-1" 247s ..$ new: chr "foo_dir/foo-2" 247s ..$ new: chr "glob_dir/a.txt" 247s ..$ new: chr "glob_dir/b.txt" 247s ..$ new: chr "glob_dir/c.txt" 247s ..$ new: chr "glob_dir/d.md" 247s $ unstaged : Named list() 247s $ untracked:List of 1 247s ..$ untracked: chr "foo-2" 247s - attr(*, "class")= chr "git_status" 247s > stopifnot(identical(status_obs, status_exp)) 247s > 247s > ## Test to add file in root of workdir when the file also exists in 247s > ## current workdir. 247s > setwd(tempdir()) 247s > writeLines("e", file.path(path, "e.txt")) 247s > writeLines("e", file.path(tempdir(), "e.txt")) 247s > add(repo, "e.txt") 247s > status_exp <- structure(list(staged = list(new = "e.txt", 247s + new = "foo-1", 247s + new = "foo_dir/foo-2", 247s + new = "glob_dir/a.txt", 247s + new = "glob_dir/b.txt", 247s + new = "glob_dir/c.txt", 247s + new = "glob_dir/d.md"), 247s + unstaged = empty_named_list(), 247s + untracked = list(untracked = "foo-2")), 247s + class = "git_status") 247s > status_obs <- status(repo) 247s > str(status_exp) 247s List of 3 247s $ staged :List of 7 247s ..$ new: chr "e.txt" 247s ..$ new: chr "foo-1" 247s ..$ new: chr "foo_dir/foo-2" 247s ..$ new: chr "glob_dir/a.txt" 247s ..$ new: chr "glob_dir/b.txt" 247s ..$ new: chr "glob_dir/c.txt" 247s ..$ new: chr "glob_dir/d.md" 247s $ unstaged : Named list() 247s $ untracked:List of 1 247s ..$ untracked: chr "foo-2" 247s - attr(*, "class")= chr "git_status" 247s > str(status_obs) 247s List of 3 247s $ staged :List of 7 247s ..$ new: chr "e.txt" 247s ..$ new: chr "foo-1" 247s ..$ new: chr "foo_dir/foo-2" 247s ..$ new: chr "glob_dir/a.txt" 247s ..$ new: chr "glob_dir/b.txt" 247s ..$ new: chr "glob_dir/c.txt" 247s ..$ new: chr "glob_dir/d.md" 247s $ unstaged : Named list() 247s $ untracked:List of 1 247s ..$ untracked: chr "foo-2" 247s - attr(*, "class")= chr "git_status" 247s > stopifnot(identical(status_obs, status_exp)) 247s > 247s > ## Cleanup 247s > unlink(path, recursive = TRUE) 247s > 247s BEGIN TEST pull.R 247s 247s R version 4.4.3 (2025-02-28) -- "Trophy Case" 247s Copyright (C) 2025 The R Foundation for Statistical Computing 247s Platform: x86_64-pc-linux-gnu 247s 247s R is free software and comes with ABSOLUTELY NO WARRANTY. 247s You are welcome to redistribute it under certain conditions. 247s Type 'license()' or 'licence()' for distribution details. 247s 247s R is a collaborative project with many contributors. 247s Type 'contributors()' for more information and 247s 'citation()' on how to cite R or R packages in publications. 247s 247s Type 'demo()' for some demos, 'help()' for on-line help, or 247s 'help.start()' for an HTML browser interface to help. 247s Type 'q()' to quit R. 247s 247s > ## git2r, R bindings to the libgit2 library. 247s > ## Copyright (C) 2013-2023 The git2r contributors 247s > ## 247s > ## This program is free software; you can redistribute it and/or modify 247s > ## it under the terms of the GNU General Public License, version 2, 247s > ## as published by the Free Software Foundation. 247s > ## 247s > ## git2r is distributed in the hope that it will be useful, 247s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 247s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 247s > ## GNU General Public License for more details. 247s > ## 247s > ## You should have received a copy of the GNU General Public License along 247s > ## with this program; if not, write to the Free Software Foundation, Inc., 247s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 247s > 247s > library(git2r) 247s > 247s > ## For debugging 247s > sessionInfo() 247s R version 4.4.3 (2025-02-28) 247s Platform: x86_64-pc-linux-gnu 247s Running under: Ubuntu Plucky Puffin (development branch) 247s 247s Matrix products: default 247s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 247s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 247s 247s locale: 247s [1] C 247s 247s time zone: Etc/UTC 247s tzcode source: system (glibc) 247s 247s attached base packages: 247s [1] stats graphics grDevices utils datasets methods base 247s 247s other attached packages: 247s [1] git2r_0.35.0 247s 247s loaded via a namespace (and not attached): 247s [1] compiler_4.4.3 247s > libgit2_version() 247s $major 247s [1] 1 247s 247s $minor 247s [1] 9 247s 247s $rev 247s [1] 0 247s 247s > libgit2_features() 247s $threads 247s [1] TRUE 247s 247s $https 247s [1] TRUE 247s 247s $ssh 247s [1] TRUE 247s 247s > 247s > 247s > ## Create directories for repositories in tempdir 247s > path_bare <- tempfile(pattern = "git2r-") 247s > path_repo_1 <- tempfile(pattern = "git2r-") 247s > path_repo_2 <- tempfile(pattern = "git2r-") 247s > 247s > dir.create(path_bare) 247s > dir.create(path_repo_1) 247s > dir.create(path_repo_2) 247s > 247s > ## Create bare repository 247s > bare_repo <- init(path_bare, bare = TRUE) 247s > 247s > ## Clone to repo 1 247s > repo_1 <- clone(path_bare, path_repo_1) 247s cloning into '/tmp/RtmpdSOvFX/git2r-a4e521fc9df'... 247s > config(repo_1, user.name = "Alice", user.email = "alice@example.org") 247s > 247s > ## Add changes to repo 1 and push to bare 247s > writeLines("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 247s + con = file.path(path_repo_1, "test-1.txt")) 247s > add(repo_1, "test-1.txt") 247s > commit_1 <- commit(repo_1, "First commit message") 247s > branch_name <- branches(repo_1)[[1]]$name 247s > push(repo_1, "origin", paste0("refs/heads/", branch_name)) 247s > 247s > ## Clone to repo 2 247s > repo_2 <- clone(path_bare, path_repo_2) 247s cloning into '/tmp/RtmpdSOvFX/git2r-a4eeb860ee'... 247s > config(repo_2, user.name = "Bob", user.email = "bob@example.org") 247s > 247s > ## Add more changes to repo 1 and push to bare 247s > writeLines(c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 247s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 247s + con = file.path(path_repo_1, "test-1.txt")) 247s > add(repo_1, "test-1.txt") 247s > commit_2 <- commit(repo_1, "Second commit message") 247s > push(repo_1, "origin", paste0("refs/heads/", branch_name)) 247s > 247s > ## Pull changes to repo_2 247s > pull(repo_2) 247s [updated] 522e61a8af..31d9de4a51 refs/remotes/origin/master 247s Merge: Fast-forward 247s > stopifnot(identical(length(commits(repo_2)), 2L)) 247s > 247s > ## Check remote url of repo_2 247s > stopifnot(identical( 247s + branch_remote_url(branch_get_upstream(repository_head(repo_2))), 247s + path_bare)) 247s > 247s > ## Unset remote remote tracking branch 247s > branch_set_upstream(repository_head(repo_2), NULL) 247s > stopifnot(is.null(branch_get_upstream(repository_head(repo_2)))) 247s > tools::assertError(pull(repo_2)) 247s > tools::assertError(branch_set_upstream(repository_head(repo_2), NULL)) 247s > 247s > ## Add more changes to repo 1 and push to bare 247s > writeLines( 247s + c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 247s + "eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad", 247s + "minim veniam, quis nostrud exercitation ullamco laboris nisi ut"), 247s + con = file.path(path_repo_1, "test-1.txt")) 247s > add(repo_1, "test-1.txt") 247s > commit_3 <- commit(repo_1, "Third commit message") 247s > push(repo_1) 247s > 247s > ## Set remote tracking branch 247s > branch_set_upstream(repository_head(repo_2), 247s + paste0("origin/", branch_name)) 247s > stopifnot(identical( 247s + branch_remote_url(branch_get_upstream(repository_head(repo_2))), 247s + path_bare)) 247s > 247s > ## Pull changes to repo_2 247s > pull(repo_2) 247s [updated] 31d9de4a51..97aac40374 refs/remotes/origin/master 247s Merge: Fast-forward 247s > stopifnot(identical(length(commits(repo_2)), 3L)) 247s > 247s > ## Check references in repo_1 and repo_2. Must clear the repo item 247s > ## since the repositories have different paths. 247s > stopifnot(identical(length(references(repo_1)), 2L)) 247s > 247s > ref_1 <- references(repo_1) 247s > lapply(seq_len(length(ref_1)), function(i) { 247s + ref_1[[i]]$repo <<- NULL 247s + }) 247s [[1]] 247s NULL 247s 247s [[2]] 247s NULL 247s 247s > 247s > ref_2 <- references(repo_2) 247s > lapply(seq_len(length(ref_2)), function(i) { 247s + ref_2[[i]]$repo <<- NULL 247s + }) 247s [[1]] 247s NULL 247s 247s [[2]] 247s NULL 247s 247s [[3]] 247s NULL 247s 247s > 247s > name <- paste0("refs/heads/", branch_name) 247s > stopifnot(identical(ref_1[[name]], ref_2[[name]])) 247s > 247s > name <- paste0("refs/remotes/", branch_name) 247s > stopifnot(identical(ref_1[[name]], ref_2[[name]])) 247s > 247s > ref_1 <- references(repo_1)[[paste0("refs/heads/", branch_name)]] 247s > stopifnot(identical(ref_1$name, paste0("refs/heads/", branch_name))) 247s > stopifnot(identical(ref_1$type, 1L)) 247s > stopifnot(identical(sha(ref_1), sha(commit_3))) 247s > stopifnot(identical(ref_1$target, NA_character_)) 247s > stopifnot(identical(ref_1$shorthand, branch_name)) 247s > 247s > ref_2 <- references(repo_1)[[paste0("refs/remotes/origin/", branch_name)]] 247s > stopifnot(identical(ref_2$name, paste0("refs/remotes/origin/", branch_name))) 247s > stopifnot(identical(ref_2$type, 1L)) 247s > stopifnot(identical(sha(ref_2), sha(commit_3))) 247s > stopifnot(identical(ref_2$target, NA_character_)) 247s > stopifnot(identical(ref_2$shorthand, paste0("origin/", branch_name))) 247s > 247s > ## Check references with missing repo argument 247s > wd <- setwd(path_repo_1) 247s > stopifnot(identical(length(references()), 2L)) 247s > if (!is.null(wd)) 247s + setwd(wd) 247s > 247s > ## Cleanup 247s > unlink(path_bare, recursive = TRUE) 247s > unlink(path_repo_1, recursive = TRUE) 247s > unlink(path_repo_2, recursive = TRUE) 247s > 247s BEGIN TEST push-force.R 247s 247s R version 4.4.3 (2025-02-28) -- "Trophy Case" 247s Copyright (C) 2025 The R Foundation for Statistical Computing 247s Platform: x86_64-pc-linux-gnu 247s 247s R is free software and comes with ABSOLUTELY NO WARRANTY. 247s You are welcome to redistribute it under certain conditions. 247s Type 'license()' or 'licence()' for distribution details. 247s 247s R is a collaborative project with many contributors. 247s Type 'contributors()' for more information and 247s 'citation()' on how to cite R or R packages in publications. 247s 247s Type 'demo()' for some demos, 'help()' for on-line help, or 247s 'help.start()' for an HTML browser interface to help. 247s Type 'q()' to quit R. 247s 247s > ## git2r, R bindings to the libgit2 library. 247s > ## Copyright (C) 2013-2023 The git2r contributors 247s > ## 247s > ## This program is free software; you can redistribute it and/or modify 247s > ## it under the terms of the GNU General Public License, version 2, 247s > ## as published by the Free Software Foundation. 247s > ## 247s > ## git2r is distributed in the hope that it will be useful, 247s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 247s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 247s > ## GNU General Public License for more details. 247s > ## 247s > ## You should have received a copy of the GNU General Public License along 247s > ## with this program; if not, write to the Free Software Foundation, Inc., 247s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 247s > 247s > library(git2r) 248s > 248s > ## For debugging 248s > sessionInfo() 248s R version 4.4.3 (2025-02-28) 248s Platform: x86_64-pc-linux-gnu 248s Running under: Ubuntu Plucky Puffin (development branch) 248s 248s Matrix products: default 248s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 248s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 248s 248s locale: 248s [1] C 248s 248s time zone: Etc/UTC 248s tzcode source: system (glibc) 248s 248s attached base packages: 248s [1] stats graphics grDevices utils datasets methods base 248s 248s other attached packages: 248s [1] git2r_0.35.0 248s 248s loaded via a namespace (and not attached): 248s [1] compiler_4.4.3 248s > libgit2_version() 248s $major 248s [1] 1 248s 248s $minor 248s [1] 9 248s 248s $rev 248s [1] 0 248s 248s > libgit2_features() 248s $threads 248s [1] TRUE 248s 248s $https 248s [1] TRUE 248s 248s $ssh 248s [1] TRUE 248s 248s > 248s > 248s > ## Create directories for repositories in tempdir 248s > path_bare <- tempfile(pattern = "git2r-") 248s > path_repo_1 <- tempfile(pattern = "git2r-") 248s > path_repo_2 <- tempfile(pattern = "git2r-") 248s > 248s > dir.create(path_bare) 248s > dir.create(path_repo_1) 248s > dir.create(path_repo_2) 248s > 248s > ## Create bare repository 248s > bare_repo <- init(path_bare, bare = TRUE) 248s > 248s > ## Clone to repo 1 248s > repo_1 <- clone(path_bare, path_repo_1) 248s cloning into '/tmp/RtmpGBvoF1/git2r-a5c5b2b5350'... 248s > config(repo_1, user.name = "Alice", user.email = "alice@example.org") 248s > 248s > ## Add changes to repo 1 and push to bare 248s > writeLines("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 248s + con = file.path(path_repo_1, "test-1.txt")) 248s > add(repo_1, "test-1.txt") 248s > commit_1 <- commit(repo_1, "First commit message") 248s > branch_name <- branches(repo_1)[[1]]$name 248s > push(repo_1, "origin", paste0("refs/heads/", branch_name)) 248s > 248s > ## Clone to repo 2 248s > repo_2 <- clone(path_bare, path_repo_2) 248s cloning into '/tmp/RtmpGBvoF1/git2r-a5c5d422632'... 248s > config(repo_2, user.name = "Bob", user.email = "bob@example.org") 248s > 248s > ## Add more changes to repo 1 and push to bare 248s > writeLines(c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 248s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 248s + con = file.path(path_repo_1, "test-1.txt")) 248s > add(repo_1, "test-1.txt") 248s > commit_2 <- commit(repo_1, "Second commit message") 248s > push(repo_1, "origin", paste0("refs/heads/", branch_name)) 248s > 248s > ## Add changes to repo 2 and push to bare 248s > writeLines( 248s + c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 248s + "eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad", 248s + "minim veniam, quis nostrud exercitation ullamco laboris nisi ut"), 248s + con = file.path(path_repo_2, "test-1.txt")) 248s > add(repo_2, "test-1.txt") 248s > commit_3 <- commit(repo_2, "Third commit message") 248s > 248s > ## We are behind, so this should fail 248s > tools::assertError(push(repo_2)) 248s > 248s > ## Push with force = TRUE 248s > push(repo_2, force = TRUE) 248s > 248s > ## Check commits 248s > stopifnot(identical(length(commits(bare_repo)), 2L)) 248s > stopifnot(identical(sha(commits(repo_2)[[1]]), sha(commits(bare_repo)[[1]]))) 248s > stopifnot(identical(sha(commits(repo_2)[[2]]), sha(commits(bare_repo)[[2]]))) 248s > 248s > ## Cleanup 248s > unlink(path_bare, recursive = TRUE) 248s > unlink(path_repo_1, recursive = TRUE) 248s > unlink(path_repo_2, recursive = TRUE) 248s > 248s BEGIN TEST push.R 248s 248s R version 4.4.3 (2025-02-28) -- "Trophy Case" 248s Copyright (C) 2025 The R Foundation for Statistical Computing 248s Platform: x86_64-pc-linux-gnu 248s 248s R is free software and comes with ABSOLUTELY NO WARRANTY. 248s You are welcome to redistribute it under certain conditions. 248s Type 'license()' or 'licence()' for distribution details. 248s 248s R is a collaborative project with many contributors. 248s Type 'contributors()' for more information and 248s 'citation()' on how to cite R or R packages in publications. 248s 248s Type 'demo()' for some demos, 'help()' for on-line help, or 248s 'help.start()' for an HTML browser interface to help. 248s Type 'q()' to quit R. 248s 248s > ## git2r, R bindings to the libgit2 library. 248s > ## Copyright (C) 2013-2023 The git2r contributors 248s > ## 248s > ## This program is free software; you can redistribute it and/or modify 248s > ## it under the terms of the GNU General Public License, version 2, 248s > ## as published by the Free Software Foundation. 248s > ## 248s > ## git2r is distributed in the hope that it will be useful, 248s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 248s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 248s > ## GNU General Public License for more details. 248s > ## 248s > ## You should have received a copy of the GNU General Public License along 248s > ## with this program; if not, write to the Free Software Foundation, Inc., 248s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 248s > 248s > library(git2r) 248s > 248s > ## For debugging 248s > sessionInfo() 248s R version 4.4.3 (2025-02-28) 248s Platform: x86_64-pc-linux-gnu 248s Running under: Ubuntu Plucky Puffin (development branch) 248s 248s Matrix products: default 248s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 248s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 248s 248s locale: 248s [1] C 248s 248s time zone: Etc/UTC 248s tzcode source: system (glibc) 248s 248s attached base packages: 248s [1] stats graphics grDevices utils datasets methods base 248s 248s other attached packages: 248s [1] git2r_0.35.0 248s 248s loaded via a namespace (and not attached): 248s [1] compiler_4.4.3 248s > libgit2_version() 248s $major 248s [1] 1 248s 248s $minor 248s [1] 9 248s 248s $rev 248s [1] 0 248s 248s > libgit2_features() 248s $threads 248s [1] TRUE 248s 248s $https 248s [1] TRUE 248s 248s $ssh 248s [1] TRUE 248s 248s > 248s > 248s > ## Create 2 directories in tempdir 248s > path_bare <- tempfile(pattern = "git2r-") 248s > path_repo <- tempfile(pattern = "git2r-") 248s > 248s > dir.create(path_bare) 248s > dir.create(path_repo) 248s > 248s > ## Create repositories 248s > bare_repo <- init(path_bare, bare = TRUE) 248s > repo <- clone(path_bare, path_repo) 248s cloning into '/tmp/RtmpCAVdRv/git2r-a6856657691'... 248s > 248s > ## Check the repositores 248s > stopifnot(identical(is_bare(bare_repo), TRUE)) 248s > stopifnot(identical(is_bare(repo), FALSE)) 248s > 248s > ## Config repositories 248s > config(repo, user.name = "Alice", user.email = "alice@example.org") 248s > 248s > ## Add changes to repo 248s > writeLines("Hello world", con = file.path(path_repo, "test.txt")) 248s > add(repo, "test.txt") 248s > commit_1 <- commit(repo, "Commit message") 248s > branch_name <- branches(repo)[[1]]$name 248s > 248s > ## Check commit 248s > stopifnot(identical(commit_1$author$name, "Alice")) 248s > stopifnot(identical(commit_1$author$email, "alice@example.org")) 248s > stopifnot(identical(length(commits(repo)), 1L)) 248s > stopifnot(identical(commits(repo)[[1]]$author$name, "Alice")) 248s > stopifnot(identical(commits(repo)[[1]]$author$email, "alice@example.org")) 248s > 248s > ## Check push arguments 248s > tools::assertError(push(repo, character(0), paste0("refs/heads/", branch_name))) 248s > tools::assertError(push(repo, NA_character_, paste0("refs/heads/", branch_name))) 248s > tools::assertError(push(repo, c("origin", "origin"), paste0("refs/heads/", branch_name))) 248s > tools::assertError(push(repo, "origin")) 248s > tools::assertError(push(repo, name = "origin")) 248s > push(repo, "origin", character(0)) 248s > push(repo, "origin", NA_character_) 248s > push(repo, "origin", c(NA_character_, NA_character_)) 248s > stopifnot(identical(reflog(repo, paste0("refs/remotes/origin/", branch_name)), 248s + structure(list(), class = "git_reflog"))) 248s > 248s > ## No tracking branch assigned to master 248s > tools::assertError(push(branches(repo)[[1]])) 248s > 248s > ## Push changes from repo to origin 248s > push(repo, "origin", paste0("refs/heads/", branch_name)) 248s > r <- reflog(repo, paste0("refs/remotes/origin/", branch_name)) 248s > stopifnot(identical(length(r), 1L)) 248s > r <- r[[1]] 248s > stopifnot(identical(sha(r), sha(commit_1))) 248s > stopifnot(identical(r$message, "update by push")) 248s > stopifnot(identical(r$index, 0L)) 248s > stopifnot(identical(r$committer$name, "Alice")) 248s > stopifnot(identical(r$committer$email, "alice@example.org")) 248s > stopifnot(identical(r$refname, paste0("refs/remotes/origin/", branch_name))) 248s > stopifnot(identical(r$repo$path, repo$path)) 248s > push(branches(repo)[[1]]) 248s > 248s > ## Check result in bare repository 248s > stopifnot(identical(length(commits(bare_repo)), 1L)) 248s > bare_commit_1 <- commits(bare_repo)[[1]] 248s > stopifnot(identical(sha(commit_1), sha(bare_commit_1))) 248s > stopifnot(identical(commit_1$author, bare_commit_1$author)) 248s > stopifnot(identical(commit_1$committer, bare_commit_1$committer)) 248s > stopifnot(identical(commit_1$summary, bare_commit_1$summary)) 248s > stopifnot(identical(commit_1$message, bare_commit_1$message)) 248s > stopifnot(!identical(commit_1$repo, bare_commit_1$repo)) 248s > 248s > ## Add changes to repo and push head 248s > writeLines(c("Hello world", "HELLO WORLD"), 248s + con = file.path(path_repo, "test.txt")) 248s > add(repo, "test.txt") 248s > commit_2 <- commit(repo, "Commit message 2") 248s > push(repo) 248s > bare_commit_2 <- lookup(bare_repo, sha(commit_2)) 248s > stopifnot(identical(sha(commit_2), sha(bare_commit_2))) 248s > stopifnot(identical(commit_2$author, bare_commit_2$author)) 248s > stopifnot(identical(commit_2$committer, bare_commit_2$committer)) 248s > stopifnot(identical(commit_2$summary, bare_commit_2$summary)) 248s > stopifnot(identical(commit_2$message, bare_commit_2$message)) 248s > stopifnot(!identical(commit_2$repo, bare_commit_2$repo)) 248s > 248s > ## Check 'set_upstream' 248s > branch_set_upstream(repository_head(repo), NULL) 248s > push(repo, "origin", paste0("refs/heads/", branch_name)) 248s > stopifnot(is.null(branch_get_upstream(repository_head(repo)))) 248s > push(repo, "origin", paste0("refs/heads/", branch_name), set_upstream = TRUE) 248s > stopifnot(!is.null(branch_get_upstream(repository_head(repo)))) 248s > 248s > ## Cleanup 248s > unlink(path_bare, recursive = TRUE) 248s > unlink(path_repo, recursive = TRUE) 248s > 248s BEGIN TEST reference.R 248s 248s R version 4.4.3 (2025-02-28) -- "Trophy Case" 248s Copyright (C) 2025 The R Foundation for Statistical Computing 248s Platform: x86_64-pc-linux-gnu 248s 248s R is free software and comes with ABSOLUTELY NO WARRANTY. 248s You are welcome to redistribute it under certain conditions. 248s Type 'license()' or 'licence()' for distribution details. 248s 248s R is a collaborative project with many contributors. 248s Type 'contributors()' for more information and 248s 'citation()' on how to cite R or R packages in publications. 248s 248s Type 'demo()' for some demos, 'help()' for on-line help, or 248s 'help.start()' for an HTML browser interface to help. 248s Type 'q()' to quit R. 248s 248s > ## git2r, R bindings to the libgit2 library. 248s > ## Copyright (C) 2013-2023 The git2r contributors 248s > ## 248s > ## This program is free software; you can redistribute it and/or modify 248s > ## it under the terms of the GNU General Public License, version 2, 248s > ## as published by the Free Software Foundation. 248s > ## 248s > ## git2r is distributed in the hope that it will be useful, 248s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 248s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 248s > ## GNU General Public License for more details. 248s > ## 248s > ## You should have received a copy of the GNU General Public License along 248s > ## with this program; if not, write to the Free Software Foundation, Inc., 248s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 248s > 248s > library(git2r) 248s > 248s > ## For debugging 248s > sessionInfo() 248s R version 4.4.3 (2025-02-28) 248s Platform: x86_64-pc-linux-gnu 248s Running under: Ubuntu Plucky Puffin (development branch) 248s 248s Matrix products: default 248s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 248s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 248s 248s locale: 248s [1] C 248s 248s time zone: Etc/UTC 248s tzcode source: system (glibc) 248s 248s attached base packages: 248s [1] stats graphics grDevices utils datasets methods base 248s 248s other attached packages: 248s [1] git2r_0.35.0 248s 248s loaded via a namespace (and not attached): 248s [1] compiler_4.4.3 248s > libgit2_version() 248s $major 248s [1] 1 248s 248s $minor 248s [1] 9 248s 248s $rev 248s [1] 0 248s 248s > libgit2_features() 248s $threads 248s [1] TRUE 248s 248s $https 248s [1] TRUE 248s 248s $ssh 248s [1] TRUE 248s 248s > 248s > 248s > ## Create a directory in tempdir 248s > path <- tempfile(pattern = "git2r-") 248s > dir.create(path) 248s > 248s > ## Initialize a repository 248s > repo <- init(path, branch = "main") 248s > config(repo, user.name = "Alice", user.email = "alice@example.org") 248s > 248s > ## Create a file 248s > writeLines("Hello world!", file.path(path, "test.txt")) 248s > 248s > ## add and commit 248s > add(repo, "test.txt") 248s > commit(repo, "Commit message") 248s [2898e57] 2025-03-15: Commit message 248s > 248s > ## Check dwim of reference shorthand 248s > stopifnot(identical(.Call(git2r:::git2r_reference_dwim, repo, "")$name, 248s + "refs/heads/main")) 248s > stopifnot(identical(.Call(git2r:::git2r_reference_dwim, repo, "main")$name, 248s + "refs/heads/main")) 248s > stopifnot(identical( 248s + .Call(git2r:::git2r_reference_dwim, repo, "refs/heads/main")$name, 248s + "refs/heads/main")) 248s > 248s > ## print reference 248s > r <- .Call(git2r:::git2r_reference_dwim, repo, "refs/heads/main") 248s > stopifnot(identical(print(r), r)) 248s [2898e5] main 248s > 248s > ## Cleanup 248s > unlink(path, recursive = TRUE) 248s > 248s BEGIN TEST reflog.R 248s 248s R version 4.4.3 (2025-02-28) -- "Trophy Case" 248s Copyright (C) 2025 The R Foundation for Statistical Computing 248s Platform: x86_64-pc-linux-gnu 248s 248s R is free software and comes with ABSOLUTELY NO WARRANTY. 248s You are welcome to redistribute it under certain conditions. 248s Type 'license()' or 'licence()' for distribution details. 248s 248s R is a collaborative project with many contributors. 248s Type 'contributors()' for more information and 248s 'citation()' on how to cite R or R packages in publications. 248s 248s Type 'demo()' for some demos, 'help()' for on-line help, or 248s 'help.start()' for an HTML browser interface to help. 248s Type 'q()' to quit R. 248s 248s > ## git2r, R bindings to the libgit2 library. 248s > ## Copyright (C) 2013-2023 The git2r contributors 248s > ## 248s > ## This program is free software; you can redistribute it and/or modify 248s > ## it under the terms of the GNU General Public License, version 2, 248s > ## as published by the Free Software Foundation. 248s > ## 248s > ## git2r is distributed in the hope that it will be useful, 248s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 248s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 248s > ## GNU General Public License for more details. 248s > ## 248s > ## You should have received a copy of the GNU General Public License along 248s > ## with this program; if not, write to the Free Software Foundation, Inc., 248s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 248s > 248s > library("git2r") 248s > 248s > ## For debugging 248s > sessionInfo() 248s R version 4.4.3 (2025-02-28) 248s Platform: x86_64-pc-linux-gnu 248s Running under: Ubuntu Plucky Puffin (development branch) 248s 248s Matrix products: default 248s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 248s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 248s 248s locale: 248s [1] C 248s 248s time zone: Etc/UTC 248s tzcode source: system (glibc) 248s 248s attached base packages: 248s [1] stats graphics grDevices utils datasets methods base 248s 248s other attached packages: 248s [1] git2r_0.35.0 248s 248s loaded via a namespace (and not attached): 248s [1] compiler_4.4.3 248s > libgit2_version() 248s $major 248s [1] 1 248s 248s $minor 248s [1] 9 248s 248s $rev 248s [1] 0 248s 248s > libgit2_features() 248s $threads 248s [1] TRUE 248s 248s $https 248s [1] TRUE 248s 248s $ssh 248s [1] TRUE 248s 248s > 248s > 248s > ## Create a directory in tempdir 248s > path <- tempfile(pattern = "git2r-") 248s > dir.create(path) 248s > 248s > ## Initialize a repository 248s > repo <- init(path) 248s > config(repo, user.name = "Alice", user.email = "alice@example.org") 248s > 248s > ## Check that reflog is empty 248s > stopifnot(identical(reflog(repo), structure(list(), class = "git_reflog"))) 248s > 248s > ## Create a file 248s > writeLines("Hello world!", file.path(path, "test.txt")) 248s > 248s > ## add and commit 248s > add(repo, "test.txt") 248s > commit_1 <- commit(repo, "Commit message") 248s > 248s > ## Check that reflog is not empry 248s > stopifnot(identical(length(reflog(repo)), 1L)) 248s > reflog_entry <- reflog(repo)[[1]] 248s > stopifnot(identical(sha(reflog_entry), sha(commit_1))) 248s > stopifnot(identical(reflog_entry$refname, "HEAD")) 248s > stopifnot(identical(reflog_entry$index, 0L)) 248s > stopifnot(identical(reflog_entry$committer$email, "alice@example.org")) 248s > stopifnot(identical(reflog_entry$message, "commit (initial): Commit message")) 248s > 248s > ## Check printing 248s > r <- reflog(repo) 248s > stopifnot(identical(print(r), r)) 248s [2898e57] HEAD@{0}: commit (initial): Commit message 248s > 248s > ## Cleanup 248s > unlink(path, recursive = TRUE) 248s > 248s BEGIN TEST refspec.R 248s 248s R version 4.4.3 (2025-02-28) -- "Trophy Case" 248s Copyright (C) 2025 The R Foundation for Statistical Computing 248s Platform: x86_64-pc-linux-gnu 248s 248s R is free software and comes with ABSOLUTELY NO WARRANTY. 248s You are welcome to redistribute it under certain conditions. 248s Type 'license()' or 'licence()' for distribution details. 248s 248s R is a collaborative project with many contributors. 248s Type 'contributors()' for more information and 248s 'citation()' on how to cite R or R packages in publications. 248s 248s Type 'demo()' for some demos, 'help()' for on-line help, or 248s 'help.start()' for an HTML browser interface to help. 248s Type 'q()' to quit R. 248s 248s > ## git2r, R bindings to the libgit2 library. 248s > ## Copyright (C) 2013-2023 The git2r contributors 248s > ## 248s > ## This program is free software; you can redistribute it and/or modify 248s > ## it under the terms of the GNU General Public License, version 2, 248s > ## as published by the Free Software Foundation. 248s > ## 248s > ## git2r is distributed in the hope that it will be useful, 248s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 248s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 248s > ## GNU General Public License for more details. 248s > ## 248s > ## You should have received a copy of the GNU General Public License along 248s > ## with this program; if not, write to the Free Software Foundation, Inc., 248s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 248s > 248s > library("git2r") 248s > 248s > ## For debugging 248s > sessionInfo() 248s R version 4.4.3 (2025-02-28) 248s Platform: x86_64-pc-linux-gnu 248s Running under: Ubuntu Plucky Puffin (development branch) 248s 248s Matrix products: default 248s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 248s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 248s 248s locale: 248s [1] C 248s 248s time zone: Etc/UTC 248s tzcode source: system (glibc) 248s 248s attached base packages: 248s [1] stats graphics grDevices utils datasets methods base 248s 248s other attached packages: 248s [1] git2r_0.35.0 248s 248s loaded via a namespace (and not attached): 248s [1] compiler_4.4.3 248s > libgit2_version() 248s $major 248s [1] 1 248s 248s $minor 248s [1] 9 248s 248s $rev 248s [1] 0 248s 248s > libgit2_features() 248s $threads 248s [1] TRUE 248s 248s $https 248s [1] TRUE 248s 248s $ssh 248s [1] TRUE 248s 248s > 248s > 248s > ## Create directories for repositories in tempdir 248s > path_bare <- tempfile(pattern = "git2r-") 248s > path_repo <- tempfile(pattern = "git2r-") 248s > 248s > dir.create(path_bare) 248s > dir.create(path_repo) 248s > 248s > ## Create bare repository 248s > bare_repo <- init(path_bare, bare = TRUE) 248s > 248s > ## Clone to repo 248s > repo <- clone(path_bare, path_repo) 248s cloning into '/tmp/Rtmp835BTy/git2r-a8c6a33d68e'... 248s > config(repo, user.name = "Alice", user.email = "alice@example.org") 248s > 248s > ## Add changes to repo 248s > writeLines("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 248s + con = file.path(path_repo, "test.txt")) 248s > add(repo, "test.txt") 248s > commit_1 <- commit(repo, "First commit message") 248s > 248s > ## Add more changes to repo 248s > writeLines(c("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do", 248s + "eiusmod tempor incididunt ut labore et dolore magna aliqua."), 248s + con = file.path(path_repo, "test.txt")) 248s > add(repo, "test.txt") 248s > commit_2 <- commit(repo, "Second commit message") 248s > 248s > ## Check remote 248s > stopifnot(identical( 248s + git2r:::get_refspec(repo, spec = "master")$remote, 248s + "origin")) 248s > 248s > ## Detach 248s > checkout(commit_1) 248s > tools::assertError(git2r:::get_refspec(repo)) 249s > 249s > ## Cleanup 249s > unlink(path_bare, recursive = TRUE) 249s > unlink(path_repo, recursive = TRUE) 249s > 249s BEGIN TEST remotes.R 249s 249s R version 4.4.3 (2025-02-28) -- "Trophy Case" 249s Copyright (C) 2025 The R Foundation for Statistical Computing 249s Platform: x86_64-pc-linux-gnu 249s 249s R is free software and comes with ABSOLUTELY NO WARRANTY. 249s You are welcome to redistribute it under certain conditions. 249s Type 'license()' or 'licence()' for distribution details. 249s 249s R is a collaborative project with many contributors. 249s Type 'contributors()' for more information and 249s 'citation()' on how to cite R or R packages in publications. 249s 249s Type 'demo()' for some demos, 'help()' for on-line help, or 249s 'help.start()' for an HTML browser interface to help. 249s Type 'q()' to quit R. 249s 249s > ## git2r, R bindings to the libgit2 library. 249s > ## Copyright (C) 2013-2023 The git2r contributors 249s > ## 249s > ## This program is free software; you can redistribute it and/or modify 249s > ## it under the terms of the GNU General Public License, version 2, 249s > ## as published by the Free Software Foundation. 249s > ## 249s > ## git2r is distributed in the hope that it will be useful, 249s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 249s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 249s > ## GNU General Public License for more details. 249s > ## 249s > ## You should have received a copy of the GNU General Public License along 249s > ## with this program; if not, write to the Free Software Foundation, Inc., 249s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 249s > 249s > library("git2r") 249s > 249s > ## For debugging 249s > sessionInfo() 249s R version 4.4.3 (2025-02-28) 249s Platform: x86_64-pc-linux-gnu 249s Running under: Ubuntu Plucky Puffin (development branch) 249s 249s Matrix products: default 249s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 249s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 249s 249s locale: 249s [1] C 249s 249s time zone: Etc/UTC 249s tzcode source: system (glibc) 249s 249s attached base packages: 249s [1] stats graphics grDevices utils datasets methods base 249s 249s other attached packages: 249s [1] git2r_0.35.0 249s 249s loaded via a namespace (and not attached): 249s [1] compiler_4.4.3 249s > libgit2_version() 249s $major 249s [1] 1 249s 249s $minor 249s [1] 9 249s 249s $rev 249s [1] 0 249s 249s > libgit2_features() 249s $threads 249s [1] TRUE 249s 249s $https 249s [1] TRUE 249s 249s $ssh 249s [1] TRUE 249s 249s > 249s > 249s > ## Create a directory in tempdir 249s > path <- tempfile(pattern = "git2r-") 249s > dir.create(path) 249s > 249s > ## Initialize a repository 249s > repo <- init(path) 249s > config(repo, user.name = "Alice", user.email = "alice@example.org") 249s > 249s > ## Create a file 249s > writeLines("Hello world!", file.path(path, "test.txt")) 249s > 249s > ## Add and commit 249s > add(repo, "test.txt") 249s > commit_1 <- commit(repo, "Commit message") 249s > 249s > ## Add a remote 249s > remote_add(repo, "playground", 249s + "https://github.com/gaborcsardi/playground") 249s > 249s > stopifnot(identical(remotes(repo), "playground")) 249s > stopifnot(identical(remote_url(repo, "playground"), 249s + "https://github.com/gaborcsardi/playground")) 249s > stopifnot(identical(remote_url(repo), 249s + "https://github.com/gaborcsardi/playground")) 249s > 249s > ## Rename a remote 249s > remote_rename(repo, "playground", "foobar") 249s > 249s > stopifnot(identical(remotes(repo), "foobar")) 249s > stopifnot(identical(remote_url(repo, "foobar"), 249s + "https://github.com/gaborcsardi/playground")) 249s > 249s > ## Set remote url 249s > remote_set_url(repo, "foobar", "https://github.com/stewid/playground") 249s > stopifnot(identical(remote_url(repo, "foobar"), 249s + "https://github.com/stewid/playground")) 249s > 249s > ## Remove a remote 249s > remote_remove(repo, "foobar") 249s > 249s > stopifnot(identical(remotes(repo), character(0))) 249s > 249s > if (identical(Sys.getenv("NOT_CRAN"), "true")) { 249s + if (isTRUE(libgit2_features()$https)) { 249s + refs <- remote_ls("https://github.com/ropensci/git2r") 249s + stopifnot(length(refs) > 0) 249s + stopifnot(names(refs) > 0) 249s + stopifnot(any(names(refs) == "HEAD")) 249s + } 249s + } 249s > 249s > # an invalid URL should throw an error 249s > tools::assertError(remote_ls("bad")) 249s > 249s > ## Cleanup 249s > unlink(path, recursive = TRUE) 249s > 249s BEGIN TEST remove.R 249s 249s R version 4.4.3 (2025-02-28) -- "Trophy Case" 249s Copyright (C) 2025 The R Foundation for Statistical Computing 249s Platform: x86_64-pc-linux-gnu 249s 249s R is free software and comes with ABSOLUTELY NO WARRANTY. 249s You are welcome to redistribute it under certain conditions. 249s Type 'license()' or 'licence()' for distribution details. 249s 249s R is a collaborative project with many contributors. 249s Type 'contributors()' for more information and 249s 'citation()' on how to cite R or R packages in publications. 249s 249s Type 'demo()' for some demos, 'help()' for on-line help, or 249s 'help.start()' for an HTML browser interface to help. 249s Type 'q()' to quit R. 249s 249s > ## git2r, R bindings to the libgit2 library. 249s > ## Copyright (C) 2013-2023 The git2r contributors 249s > ## 249s > ## This program is free software; you can redistribute it and/or modify 249s > ## it under the terms of the GNU General Public License, version 2, 249s > ## as published by the Free Software Foundation. 249s > ## 249s > ## git2r is distributed in the hope that it will be useful, 249s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 249s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 249s > ## GNU General Public License for more details. 249s > ## 249s > ## You should have received a copy of the GNU General Public License along 249s > ## with this program; if not, write to the Free Software Foundation, Inc., 249s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 249s > 249s > library("git2r") 249s > 249s > ## For debugging 249s > sessionInfo() 249s R version 4.4.3 (2025-02-28) 249s Platform: x86_64-pc-linux-gnu 249s Running under: Ubuntu Plucky Puffin (development branch) 249s 249s Matrix products: default 249s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 249s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 249s 249s locale: 249s [1] C 249s 249s time zone: Etc/UTC 249s tzcode source: system (glibc) 249s 249s attached base packages: 249s [1] stats graphics grDevices utils datasets methods base 249s 249s other attached packages: 249s [1] git2r_0.35.0 249s 249s loaded via a namespace (and not attached): 249s [1] compiler_4.4.3 249s > libgit2_version() 249s $major 249s [1] 1 249s 249s $minor 249s [1] 9 249s 249s $rev 249s [1] 0 249s 249s > libgit2_features() 249s $threads 249s [1] TRUE 249s 249s $https 249s [1] TRUE 249s 249s $ssh 249s [1] TRUE 249s 249s > 249s > 249s > ## Create a directory in tempdir 249s > path <- tempfile(pattern = "git2r-") 249s > dir.create(path) 249s > 249s > ## Initialize a repository 249s > repo <- init(path) 249s > config(repo, user.name = "Alice", user.email = "alice@example.org") 249s > 249s > ## Add files 249s > invisible(lapply(file.path(path, letters[1:4]), writeLines, text = "")) 249s > add(repo, letters) 249s > commit(repo, "init") 249s [bbe3ca6] 2025-03-15: init 249s > 249s > ## Remove one file 249s > rm_file(repo, letters[1]) 249s > commit(repo, "remove") 249s [87bfa0d] 2025-03-15: remove 249s > 249s > ## Remove two files. Don't raise warnings 249s > withCallingHandlers(rm_file(repo, letters[2:3]), warning = function(w) stop(w)) 249s > 249s > ## Remove one file using the absolute path to the file. 249s > rm_file(repo, file.path(path, letters[4])) 249s > 249s > ## Cleanup 249s > unlink(path, recursive = TRUE) 249s > 249s BEGIN TEST repository.R 249s 249s R version 4.4.3 (2025-02-28) -- "Trophy Case" 249s Copyright (C) 2025 The R Foundation for Statistical Computing 249s Platform: x86_64-pc-linux-gnu 249s 249s R is free software and comes with ABSOLUTELY NO WARRANTY. 249s You are welcome to redistribute it under certain conditions. 249s Type 'license()' or 'licence()' for distribution details. 249s 249s R is a collaborative project with many contributors. 249s Type 'contributors()' for more information and 249s 'citation()' on how to cite R or R packages in publications. 249s 249s Type 'demo()' for some demos, 'help()' for on-line help, or 249s 'help.start()' for an HTML browser interface to help. 249s Type 'q()' to quit R. 249s 249s Warning message: 249s In normalizePath(path) : 249s path[1]="/tmp/Rtmp3Hi5KE/git2r-ab01db81dbd/doesntexist.txt": No such file or directory 249s > ## git2r, R bindings to the libgit2 library. 249s > ## Copyright (C) 2013-2023 The git2r contributors 249s > ## 249s > ## This program is free software; you can redistribute it and/or modify 249s > ## it under the terms of the GNU General Public License, version 2, 249s > ## as published by the Free Software Foundation. 249s > ## 249s > ## git2r is distributed in the hope that it will be useful, 249s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 249s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 249s > ## GNU General Public License for more details. 249s > ## 249s > ## You should have received a copy of the GNU General Public License along 249s > ## with this program; if not, write to the Free Software Foundation, Inc., 249s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 249s > 249s > library(git2r) 249s > source("util/check.R") 249s > 249s > ## For debugging 249s > sessionInfo() 249s R version 4.4.3 (2025-02-28) 249s Platform: x86_64-pc-linux-gnu 249s Running under: Ubuntu Plucky Puffin (development branch) 249s 249s Matrix products: default 249s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 249s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 249s 249s locale: 249s [1] C 249s 249s time zone: Etc/UTC 249s tzcode source: system (glibc) 249s 249s attached base packages: 249s [1] stats graphics grDevices utils datasets methods base 249s 249s other attached packages: 249s [1] git2r_0.35.0 249s 249s loaded via a namespace (and not attached): 249s [1] compiler_4.4.3 249s > libgit2_version() 249s $major 249s [1] 1 249s 249s $minor 249s [1] 9 249s 249s $rev 249s [1] 0 249s 249s > libgit2_features() 249s $threads 249s [1] TRUE 249s 249s $https 249s [1] TRUE 249s 249s $ssh 249s [1] TRUE 249s 249s > 249s > 249s > ## Create a directory in tempdir 249s > path <- tempfile(pattern = "git2r-") 249s > dir.create(path) 249s > 249s > ## is_bare: "Invalid repository" 249s > tools::assertError(is_bare(new("git_repository"))) 249s > 249s > ## is_empty: "Invalid repository" 249s > tools::assertError(is_empty(new("git_repository"))) 249s > 249s > ## Check that open an invalid repository fails 249s > tools::assertError(repository(path)) 249s > tools::assertError(repository(path, discover = FALSE)) 249s > 249s > ## Check that it fails to open/init a repository with a path to a 249s > ## file. 249s > writeLines("test", file.path(path, "test.txt")) 249s > tools::assertError(repository(file.path(path, "test.txt"), 249s + discover = FALSE)) 249s > tools::assertError(init(file.path(path, "test.txt"))) 249s > unlink(file.path(path, "test.txt")) 249s > 249s > ## Initialize a repository 249s > repo <- init(path) 249s > stopifnot(identical(print(repo), repo)) 249s Local: /tmp/Rtmp3Hi5KE/git2r-ab01db81dbd 249s Head: nothing commited (yet) 249s > 249s > ## Check the state of the repository 249s > stopifnot(identical(is_bare(repo), FALSE)) 249s > stopifnot(identical(is_empty(repo), TRUE)) 249s > stopifnot(identical(is_shallow(repo), FALSE)) 249s > stopifnot(identical(branches(repo), empty_named_list())) 249s > stopifnot(identical(references(repo), empty_named_list())) 249s > stopifnot(identical(commits(repo), list())) 249s > stopifnot(identical(repository_head(repo), NULL)) 249s > 249s > # check that we can find repository from a path 249s > wd <- sub(paste0("[", .Platform$file.sep, "]$"), "", workdir(repo)) 249s > writeLines("test file", con = file.path(wd, "myfile.txt")) 249s > stopifnot(identical(discover_repository(file.path(wd, "myfile.txt")), 249s + file.path(wd, ".git"))) 249s > stopifnot(identical(discover_repository(file.path(wd, "doesntexist.txt")), 249s + NULL)) 249s > 249s > # Check that we can use ceiling in discover repostiory 249s > dir.create(file.path(wd, "temp")) 249s > stopifnot(identical(discover_repository(file.path(wd, "temp"), 0), NULL)) 249s > stopifnot(identical(discover_repository(file.path(wd, "temp"), 1), 249s + file.path(wd, ".git"))) 249s > tools::assertError(discover_repository(file.path(wd, "temp"), 2)) 249s > 249s > ## Check that lookup with a sha of less than 4 characters or more than 249s > ## 40 characters fail. 249s > tools::assertError(lookup(repo, paste0(rep("a", 3), collapse = ""))) 249s > tools::assertError(lookup(repo, paste0(rep("a", 41), collapse = ""))) 249s > 249s > ## Check in_repository 249s > stopifnot(identical(in_repository(path), TRUE)) 249s > 249s > ## Check: 249s > ## - in_repository method with missing path argument 249s > ## - repository method with missing path argument 249s > ## - workdir method with missing path argument 249s > ## - is_empty method with missing repo argument 249s > ## - is_shallow method with missing repo argument 249s > wd <- setwd(path) 249s > stopifnot(identical(in_repository(), TRUE)) 249s > stopifnot(identical(workdir(repository(path)), workdir(repository()))) 249s > stopifnot(identical(workdir(repository(path)), workdir())) 249s > stopifnot(identical(is_empty(), TRUE)) 249s > stopifnot(identical(is_shallow(), FALSE)) 249s > if (!is.null(wd)) 249s + setwd(wd) 249s > 249s > ## Cleanup 249s > unlink(path, recursive = TRUE) 249s > 249s BEGIN TEST reset.R 249s 249s R version 4.4.3 (2025-02-28) -- "Trophy Case" 249s Copyright (C) 2025 The R Foundation for Statistical Computing 249s Platform: x86_64-pc-linux-gnu 249s 249s R is free software and comes with ABSOLUTELY NO WARRANTY. 249s You are welcome to redistribute it under certain conditions. 249s Type 'license()' or 'licence()' for distribution details. 249s 249s R is a collaborative project with many contributors. 249s Type 'contributors()' for more information and 249s 'citation()' on how to cite R or R packages in publications. 249s 249s Type 'demo()' for some demos, 'help()' for on-line help, or 249s 'help.start()' for an HTML browser interface to help. 249s Type 'q()' to quit R. 249s 249s > ## git2r, R bindings to the libgit2 library. 249s > ## Copyright (C) 2013-2023 The git2r contributors 249s > ## 249s > ## This program is free software; you can redistribute it and/or modify 249s > ## it under the terms of the GNU General Public License, version 2, 249s > ## as published by the Free Software Foundation. 249s > ## 249s > ## git2r is distributed in the hope that it will be useful, 249s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 249s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 249s > ## GNU General Public License for more details. 249s > ## 249s > ## You should have received a copy of the GNU General Public License along 249s > ## with this program; if not, write to the Free Software Foundation, Inc., 249s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 249s > 249s > library(git2r) 249s > source("util/check.R") 249s > 249s > ## For debugging 249s > sessionInfo() 249s R version 4.4.3 (2025-02-28) 249s Platform: x86_64-pc-linux-gnu 249s Running under: Ubuntu Plucky Puffin (development branch) 249s 249s Matrix products: default 249s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 249s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 249s 249s locale: 249s [1] C 249s 249s time zone: Etc/UTC 249s tzcode source: system (glibc) 249s 249s attached base packages: 249s [1] stats graphics grDevices utils datasets methods base 249s 249s other attached packages: 249s [1] git2r_0.35.0 249s 249s loaded via a namespace (and not attached): 249s [1] compiler_4.4.3 249s > libgit2_version() 249s $major 249s [1] 1 249s 249s $minor 249s [1] 9 249s 249s $rev 249s [1] 0 249s 249s > libgit2_features() 249s $threads 249s [1] TRUE 249s 249s $https 249s [1] TRUE 249s 249s $ssh 249s [1] TRUE 249s 249s > 249s > 249s > ## Create a directory in tempdir 249s > path <- tempfile(pattern = "git2r-") 249s > dir.create(path) 249s > 249s > ## Initialize a repository 249s > repo <- init(path) 249s > config(repo, user.name = "Alice", user.email = "alice@example.org") 249s > 249s > ## Create a file 249s > writeLines("Hello world!", file.path(path, "test-1.txt")) 249s > 249s > ## Add and reset an empty repository using a path 249s > add(repo, "test-1.txt") 249s > stopifnot(identical( 249s + status(repo), 249s + structure(list(staged = list(new = "test-1.txt"), 249s + unstaged = empty_named_list(), 249s + untracked = empty_named_list()), 249s + class = "git_status"))) 249s > reset(repo, path = "test-1.txt") 249s > stopifnot(identical( 249s + status(repo), 249s + structure(list(staged = empty_named_list(), 249s + unstaged = empty_named_list(), 249s + untracked = list(untracked = "test-1.txt")), 249s + class = "git_status"))) 249s > 249s > ## Add and reset a non-empty repository using a path 249s > add(repo, "test-1.txt") 249s > commit(repo, "First commit") 249s [0ece716] 2025-03-15: First commit 249s > writeLines(c("Hello world!", "HELLO WORLD!"), file.path(path, "test-1.txt")) 249s > add(repo, "test-1.txt") 249s > stopifnot(identical( 249s + status(repo), 249s + structure(list(staged = list(modified = "test-1.txt"), 249s + unstaged = empty_named_list(), 249s + untracked = empty_named_list()), 249s + class = "git_status"))) 249s > reset(repo, path = "test-1.txt") 249s > stopifnot(identical( 249s + status(repo), 249s + structure(list(staged = empty_named_list(), 249s + unstaged = list(modified = "test-1.txt"), 249s + untracked = empty_named_list()), 249s + class = "git_status"))) 249s > 249s > ## add and commit 249s > add(repo, "test-1.txt") 249s > commit_1 <- commit(repo, "Commit message") 249s > 249s > ## Make one more commit 249s > writeLines(c("Hello world!", "HELLO WORLD!", "hello world!"), 249s + file.path(path, "test-1.txt")) 249s > add(repo, "test-1.txt") 249s > commit(repo, "Next commit message") 249s [70d77c9] 2025-03-15: Next commit message 249s > 249s > ## Create one more file 249s > writeLines("Hello world!", file.path(path, "test-2.txt")) 249s > 249s > ## 'soft' reset to first commit 249s > reset(commit_1) 249s > soft_exp <- structure(list(staged = list(modified = "test-1.txt"), 249s + unstaged = empty_named_list(), 249s + untracked = list(untracked = "test-2.txt")), 249s + class = "git_status") 249s > soft_obs <- status(repo) 249s > stopifnot(identical(soft_obs, soft_exp)) 249s > stopifnot(identical(length(commits(repo)), 2L)) 249s > stopifnot(identical(commits(repo)[[1]], commit_1)) 249s > 249s > ## 'mixed' reset to first commit 249s > commit(repo, "Next commit message") 249s [70d77c9] 2025-03-15: Next commit message 249s > reset(commit_1, "mixed") 249s > mixed_exp <- structure(list(staged = empty_named_list(), 249s + unstaged = list(modified = "test-1.txt"), 249s + untracked = list(untracked = "test-2.txt")), 249s + class = "git_status") 249s > mixed_obs <- status(repo) 249s > stopifnot(identical(mixed_obs, mixed_exp)) 249s > stopifnot(identical(length(commits(repo)), 2L)) 249s > stopifnot(identical(commits(repo)[[1]], commit_1)) 249s > 249s > ## 'hard' reset to first commit 249s > add(repo, "test-1.txt") 249s > commit(repo, "Next commit message") 249s [70d77c9] 2025-03-15: Next commit message 249s > reset(commit_1, "hard") 249s > hard_exp <- structure(list(staged = empty_named_list(), 249s + unstaged = empty_named_list(), 249s + untracked = list(untracked = "test-2.txt")), 249s + class = "git_status") 249s > hard_obs <- status(repo) 249s > stopifnot(identical(hard_obs, hard_exp)) 249s > stopifnot(identical(length(commits(repo)), 2L)) 249s > stopifnot(identical(commits(repo)[[1]], commit_1)) 249s > 249s > ## Cleanup 249s > unlink(path, recursive = TRUE) 249s > 249s BEGIN TEST revparse.R 250s 250s R version 4.4.3 (2025-02-28) -- "Trophy Case" 250s Copyright (C) 2025 The R Foundation for Statistical Computing 250s Platform: x86_64-pc-linux-gnu 250s 250s R is free software and comes with ABSOLUTELY NO WARRANTY. 250s You are welcome to redistribute it under certain conditions. 250s Type 'license()' or 'licence()' for distribution details. 250s 250s R is a collaborative project with many contributors. 250s Type 'contributors()' for more information and 250s 'citation()' on how to cite R or R packages in publications. 250s 250s Type 'demo()' for some demos, 'help()' for on-line help, or 250s 'help.start()' for an HTML browser interface to help. 250s Type 'q()' to quit R. 250s 250s > ## git2r, R bindings to the libgit2 library. 250s > ## Copyright (C) 2013-2023 The git2r contributors 250s > ## 250s > ## This program is free software; you can redistribute it and/or modify 250s > ## it under the terms of the GNU General Public License, version 2, 250s > ## as published by the Free Software Foundation. 250s > ## 250s > ## git2r is distributed in the hope that it will be useful, 250s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 250s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 250s > ## GNU General Public License for more details. 250s > ## 250s > ## You should have received a copy of the GNU General Public License along 250s > ## with this program; if not, write to the Free Software Foundation, Inc., 250s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 250s > 250s > library("git2r") 250s > 250s > ## For debugging 250s > sessionInfo() 250s R version 4.4.3 (2025-02-28) 250s Platform: x86_64-pc-linux-gnu 250s Running under: Ubuntu Plucky Puffin (development branch) 250s 250s Matrix products: default 250s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 250s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 250s 250s locale: 250s [1] C 250s 250s time zone: Etc/UTC 250s tzcode source: system (glibc) 250s 250s attached base packages: 250s [1] stats graphics grDevices utils datasets methods base 250s 250s other attached packages: 250s [1] git2r_0.35.0 250s 250s loaded via a namespace (and not attached): 250s [1] compiler_4.4.3 250s > libgit2_version() 250s $major 250s [1] 1 250s 250s $minor 250s [1] 9 250s 250s $rev 250s [1] 0 250s 250s > libgit2_features() 250s $threads 250s [1] TRUE 250s 250s $https 250s [1] TRUE 250s 250s $ssh 250s [1] TRUE 250s 250s > 250s > 250s > ## Create a directory in tempdir 250s > path <- tempfile(pattern = "git2r-") 250s > dir.create(path) 250s > 250s > ## Initialize a repository 250s > repo <- init(path) 250s > config(repo, user.name = "Alice", user.email = "alice@example.org") 250s > 250s > ## Create a file 250s > writeLines("Hello world!", file.path(path, "test.txt")) 250s > 250s > ## Add and commit 250s > add(repo, "test.txt") 250s > commit_1 <- commit(repo, "First commit message") 250s > 250s > tools::assertError(revparse_single(repo, "HEAD^")) 250s > 250s > ## Add another commit 250s > writeLines(c("Hello world!", "HELLO WORLD!"), file.path(path, "test.txt")) 250s > add(repo, "test.txt") 250s > commit(repo, "Second commit message") 250s [a90d3e1] 2025-03-15: Second commit message 250s > 250s > stopifnot(identical(revparse_single(repo, "HEAD^"), commit_1)) 250s > stopifnot(is_blob(revparse_single(repo, "HEAD:test.txt"))) 250s > 250s > ## Cleanup 250s > unlink(path, recursive = TRUE) 250s > 250s BEGIN TEST signature.R 250s 250s R version 4.4.3 (2025-02-28) -- "Trophy Case" 250s Copyright (C) 2025 The R Foundation for Statistical Computing 250s Platform: x86_64-pc-linux-gnu 250s 250s R is free software and comes with ABSOLUTELY NO WARRANTY. 250s You are welcome to redistribute it under certain conditions. 250s Type 'license()' or 'licence()' for distribution details. 250s 250s R is a collaborative project with many contributors. 250s Type 'contributors()' for more information and 250s 'citation()' on how to cite R or R packages in publications. 250s 250s Type 'demo()' for some demos, 'help()' for on-line help, or 250s 'help.start()' for an HTML browser interface to help. 250s Type 'q()' to quit R. 250s 250s > ## git2r, R bindings to the libgit2 library. 250s > ## Copyright (C) 2013-2023 The git2r contributors 250s > ## 250s > ## This program is free software; you can redistribute it and/or modify 250s > ## it under the terms of the GNU General Public License, version 2, 250s > ## as published by the Free Software Foundation. 250s > ## 250s > ## git2r is distributed in the hope that it will be useful, 250s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 250s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 250s > ## GNU General Public License for more details. 250s > ## 250s > ## You should have received a copy of the GNU General Public License along 250s > ## with this program; if not, write to the Free Software Foundation, Inc., 250s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 250s > 250s > library("git2r") 250s > 250s > ## For debugging 250s > sessionInfo() 250s R version 4.4.3 (2025-02-28) 250s Platform: x86_64-pc-linux-gnu 250s Running under: Ubuntu Plucky Puffin (development branch) 250s 250s Matrix products: default 250s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 250s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 250s 250s locale: 250s [1] C 250s 250s time zone: Etc/UTC 250s tzcode source: system (glibc) 250s 250s attached base packages: 250s [1] stats graphics grDevices utils datasets methods base 250s 250s other attached packages: 250s [1] git2r_0.35.0 250s 250s loaded via a namespace (and not attached): 250s [1] compiler_4.4.3 250s > libgit2_version() 250s $major 250s [1] 1 250s 250s $minor 250s [1] 9 250s 250s $rev 250s [1] 0 250s 250s > libgit2_features() 250s $threads 250s [1] TRUE 250s 250s $https 250s [1] TRUE 250s 250s $ssh 250s [1] TRUE 250s 250s > 250s > 250s > ## Check printing of a class git_signature 250s > when <- structure(list(time = 1395567947, offset = 60), 250s + class = "git_time") 250s > 250s > signature <- structure(list(name = "Alice", 250s + email = "alice@example.org", 250s + when = when), 250s + class = "git_signature") 250s > stopifnot(identical(print(signature), signature)) 250s name: Alice 250s email: alice@example.org 250s when: 2014-03-23 09:45:47 GMT 250s > 250s BEGIN TEST stash.R 250s 250s R version 4.4.3 (2025-02-28) -- "Trophy Case" 250s Copyright (C) 2025 The R Foundation for Statistical Computing 250s Platform: x86_64-pc-linux-gnu 250s 250s R is free software and comes with ABSOLUTELY NO WARRANTY. 250s You are welcome to redistribute it under certain conditions. 250s Type 'license()' or 'licence()' for distribution details. 250s 250s R is a collaborative project with many contributors. 250s Type 'contributors()' for more information and 250s 'citation()' on how to cite R or R packages in publications. 250s 250s Type 'demo()' for some demos, 'help()' for on-line help, or 250s 'help.start()' for an HTML browser interface to help. 250s Type 'q()' to quit R. 250s 250s > ## git2r, R bindings to the libgit2 library. 250s > ## Copyright (C) 2013-2023 The git2r contributors 250s > ## 250s > ## This program is free software; you can redistribute it and/or modify 250s > ## it under the terms of the GNU General Public License, version 2, 250s > ## as published by the Free Software Foundation. 250s > ## 250s > ## git2r is distributed in the hope that it will be useful, 250s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 250s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 250s > ## GNU General Public License for more details. 250s > ## 250s > ## You should have received a copy of the GNU General Public License along 250s > ## with this program; if not, write to the Free Software Foundation, Inc., 250s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 250s > 250s > library("git2r") 250s > 250s > ## For debugging 250s > sessionInfo() 250s R version 4.4.3 (2025-02-28) 250s Platform: x86_64-pc-linux-gnu 250s Running under: Ubuntu Plucky Puffin (development branch) 250s 250s Matrix products: default 250s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 250s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 250s 250s locale: 250s [1] C 250s 250s time zone: Etc/UTC 250s tzcode source: system (glibc) 250s 250s attached base packages: 250s [1] stats graphics grDevices utils datasets methods base 250s 250s other attached packages: 250s [1] git2r_0.35.0 250s 250s loaded via a namespace (and not attached): 250s [1] compiler_4.4.3 250s > libgit2_version() 250s $major 250s [1] 1 250s 250s $minor 250s [1] 9 250s 250s $rev 250s [1] 0 250s 250s > libgit2_features() 250s $threads 250s [1] TRUE 250s 250s $https 250s [1] TRUE 250s 250s $ssh 250s [1] TRUE 250s 250s > 250s > 250s > ## Create a directory in tempdir 250s > path <- tempfile(pattern = "git2r-") 250s > dir.create(path) 250s > 250s > ## Initialize a repository 250s > repo <- init(path) 250s > config(repo, user.name = "Alice", user.email = "alice@example.org") 250s > 250s > ## Create a file 250s > writeLines("Hello world!", file.path(path, "test-1.txt")) 250s > 250s > ## add and commit 250s > add(repo, "test-1.txt") 250s > commit(repo, "Commit message") 250s [4d03296] 2025-03-15: Commit message 250s > 250s > ## Pop stash 250s > writeLines(c("Hello world!", "HELLO WORLD!"), file.path(path, "test-1.txt")) 250s > stash(repo) 250s > stopifnot(identical("Hello world!", 250s + readLines(file.path(path, "test-1.txt")))) 250s > stash_pop(repo) 250s > stopifnot(identical(c("Hello world!", "HELLO WORLD!"), 250s + readLines(file.path(path, "test-1.txt")))) 250s > 250s > ## Make one more commit 250s > add(repo, "test-1.txt") 250s > commit(repo, "Next commit message") 250s [10f79d2] 2025-03-15: Next commit message 250s > 250s > ## Check that there are no stashes 250s > stopifnot(identical(stash_list(repo), list())) 250s > 250s > ## Apply stash 250s > writeLines(c("Hello world!", "HELLO WORLD!", "hello world!"), 250s + file.path(path, "test-1.txt")) 250s > stash(repo) 250s > stopifnot(identical(c("Hello world!", "HELLO WORLD!"), 250s + readLines(file.path(path, "test-1.txt")))) 250s > stash_apply(repo) 250s > stopifnot(identical(c("Hello world!", "HELLO WORLD!", "hello world!"), 250s + readLines(file.path(path, "test-1.txt")))) 250s > stopifnot(identical(length(stash_list(repo)), 1L)) 250s > stash_drop(repo, 1) 250s > stopifnot(identical(stash_list(repo), list())) 250s > 250s > ## Make one more commit 250s > add(repo, "test-1.txt") 250s > commit(repo, "Apply stash commit message") 250s [b683d64] 2025-03-15: Apply stash commit message 250s > 250s > ## Create one more file 250s > writeLines("Hello world!", file.path(path, "test-2.txt")) 250s > 250s > ## Check that there are no stashes 250s > stopifnot(identical(stash_list(repo), list())) 250s > 250s > ## Stash 250s > stash(repo) 250s > stopifnot(identical(stash_list(repo), list())) 250s > s <- stash(repo, untracked = TRUE) 250s > stopifnot(identical(print(s), s)) 250s On master: 2025-03-15 22:14:15.700544 250s 250s > summary(s) 250s message: On master: 2025-03-15 22:14:15.700544 250s stasher: Alice 250s when: 2025-03-15 22:14:15 GMT 250s sha: af61b1c300c7d444ba4f329fdf492bad4854c59b 250s 250s > stopifnot(identical(length(stash_list(repo)), 1L)) 250s > tree(stash_list(repo)[[1]]) 250s tree: af5711badde07055d853088e98c6d988bfdd139f 250s 250s mode type sha name 250s 1 100644 blob 5b168e5ff4e9eeff020b99a3c1c83c4979294e76 test-1.txt 250s > 250s > ## Drop stash 250s > stash_drop(repo, 1) 250s > stopifnot(identical(stash_list(repo), list())) 250s > 250s > ## Check stash_drop argument 250s > tools::assertError(stash_drop(repo)) 250s > tools::assertError(stash_drop(repo, -1)) 250s > tools::assertError(stash_drop(repo, 0.5)) 250s > 250s > ## Create one more file 250s > writeLines("Hello world!", file.path(path, "test-3.txt")) 250s > 250s > ## Create stash in repository 250s > stash(repo, untracked = TRUE) 250s > stopifnot(identical(length(stash_list(repo)), 1L)) 250s > 250s > ## Check stash_list method with missing repo argument 250s > wd <- setwd(path) 250s > stopifnot(identical(length(stash_list()), 1L)) 250s > if (!is.null(wd)) 250s + setwd(wd) 250s > 250s > ## Drop git_stash object in repository 250s > stash_drop(stash_list(repo)[[1]]) 250s > 250s > ## Cleanup 250s > unlink(path, recursive = TRUE) 250s > 250s BEGIN TEST status.R 250s 250s R version 4.4.3 (2025-02-28) -- "Trophy Case" 250s Copyright (C) 2025 The R Foundation for Statistical Computing 250s Platform: x86_64-pc-linux-gnu 250s 250s R is free software and comes with ABSOLUTELY NO WARRANTY. 250s You are welcome to redistribute it under certain conditions. 250s Type 'license()' or 'licence()' for distribution details. 250s 250s R is a collaborative project with many contributors. 250s Type 'contributors()' for more information and 250s 'citation()' on how to cite R or R packages in publications. 250s 250s Type 'demo()' for some demos, 'help()' for on-line help, or 250s 'help.start()' for an HTML browser interface to help. 250s Type 'q()' to quit R. 250s 250s > ## git2r, R bindings to the libgit2 library. 250s > ## Copyright (C) 2013-2023 The git2r contributors 250s > ## 250s > ## This program is free software; you can redistribute it and/or modify 250s > ## it under the terms of the GNU General Public License, version 2, 250s > ## as published by the Free Software Foundation. 250s > ## 250s > ## git2r is distributed in the hope that it will be useful, 250s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 250s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 250s > ## GNU General Public License for more details. 250s > ## 250s > ## You should have received a copy of the GNU General Public License along 250s > ## with this program; if not, write to the Free Software Foundation, Inc., 250s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 250s > 250s > library(git2r) 250s > source("util/check.R") 250s > 250s > ## For debugging 250s > sessionInfo() 250s R version 4.4.3 (2025-02-28) 250s Platform: x86_64-pc-linux-gnu 250s Running under: Ubuntu Plucky Puffin (development branch) 250s 250s Matrix products: default 250s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 250s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 250s 250s locale: 250s [1] C 250s 250s time zone: Etc/UTC 250s tzcode source: system (glibc) 250s 250s attached base packages: 250s [1] stats graphics grDevices utils datasets methods base 250s 250s other attached packages: 250s [1] git2r_0.35.0 250s 250s loaded via a namespace (and not attached): 250s [1] compiler_4.4.3 250s > libgit2_version() 250s $major 250s [1] 1 250s 250s $minor 250s [1] 9 250s 250s $rev 250s [1] 0 250s 250s > libgit2_features() 250s $threads 250s [1] TRUE 250s 250s $https 250s [1] TRUE 250s 250s $ssh 250s [1] TRUE 250s 250s > 250s > 250s > ## Create a directory in tempdir 250s > path <- tempfile(pattern = "git2r-") 250s > dir.create(path) 250s > 250s > ## Initialize a repository 250s > repo <- init(path) 250s > config(repo, user.name = "Alice", user.email = "alice@example.org") 250s > 250s > ## Status case 1 250s > status_exp_1 <- structure(list(staged = empty_named_list(), 250s + unstaged = empty_named_list(), 250s + untracked = empty_named_list()), 250s + class = "git_status") 250s > status_obs_1 <- status(repo) 250s > stopifnot(identical(print(status_obs_1), status_obs_1)) 250s working directory clean 250s > str(status_exp_1) 250s List of 3 250s $ staged : Named list() 250s $ unstaged : Named list() 250s $ untracked: Named list() 250s - attr(*, "class")= chr "git_status" 250s > str(status_obs_1) 250s List of 3 250s $ staged : Named list() 250s $ unstaged : Named list() 250s $ untracked: Named list() 250s - attr(*, "class")= chr "git_status" 250s > stopifnot(identical(status_obs_1, status_exp_1)) 250s > stopifnot(identical(capture.output(status(repo)), 250s + "working directory clean")) 250s > 250s > ## Status case 2, include ignored files 250s > status_exp_2 <- structure(list(staged = empty_named_list(), 250s + unstaged = empty_named_list(), 250s + untracked = empty_named_list(), 250s + ignored = empty_named_list()), 250s + class = "git_status") 250s > status_obs_2 <- status(repo, ignored = TRUE) 250s > status_obs_2 250s working directory clean 250s > str(status_exp_2) 250s List of 4 250s $ staged : Named list() 250s $ unstaged : Named list() 250s $ untracked: Named list() 250s $ ignored : Named list() 250s - attr(*, "class")= chr "git_status" 250s > str(status_obs_2) 250s List of 4 250s $ staged : Named list() 250s $ unstaged : Named list() 250s $ untracked: Named list() 250s $ ignored : Named list() 250s - attr(*, "class")= chr "git_status" 250s > stopifnot(identical(status_obs_2, status_exp_2)) 250s > stopifnot(identical(capture.output(status(repo, ignored = TRUE)), 250s + "working directory clean")) 250s > 250s > ## Create 4 files 250s > writeLines("File-1", file.path(path, "test-1.txt")) 250s > writeLines("File-2", file.path(path, "test-2.txt")) 250s > writeLines("File-3", file.path(path, "test-3.txt")) 250s > writeLines("File-4", file.path(path, "test-4.txt")) 250s > 250s > ## Status case 3: 4 untracked files 250s > status_exp_3 <- structure(list(staged = empty_named_list(), 250s + unstaged = empty_named_list(), 250s + untracked = list(untracked = "test-1.txt", 250s + untracked = "test-2.txt", 250s + untracked = "test-3.txt", 250s + untracked = "test-4.txt")), 250s + class = "git_status") 250s > status_obs_3 <- status(repo) 250s > status_obs_3 250s Untracked files: 250s Untracked: test-1.txt 250s Untracked: test-2.txt 250s Untracked: test-3.txt 250s Untracked: test-4.txt 250s 250s > str(status_exp_3) 250s List of 3 250s $ staged : Named list() 250s $ unstaged : Named list() 250s $ untracked:List of 4 250s ..$ untracked: chr "test-1.txt" 251s ..$ untracked: chr "test-2.txt" 251s ..$ untracked: chr "test-3.txt" 251s ..$ untracked: chr "test-4.txt" 251s - attr(*, "class")= chr "git_status" 251s > str(status_obs_3) 251s List of 3 251s $ staged : Named list() 251s $ unstaged : Named list() 251s $ untracked:List of 4 251s ..$ untracked: chr "test-1.txt" 251s ..$ untracked: chr "test-2.txt" 251s ..$ untracked: chr "test-3.txt" 251s ..$ untracked: chr "test-4.txt" 251s - attr(*, "class")= chr "git_status" 251s > stopifnot(identical(status_obs_3, status_exp_3)) 251s > 251s > ## Add file 1 and 2 to the repository and commit 251s > add(repo, c("test-1.txt", "test-2.txt")) 251s > commit(repo, "Commit message") 251s [dc052ea] 2025-03-15: Commit message 251s > 251s > ## Status case 4: 2 untracked files 251s > status_exp_4 <- structure(list(staged = empty_named_list(), 251s + unstaged = empty_named_list(), 251s + untracked = list(untracked = "test-3.txt", 251s + untracked = "test-4.txt")), 251s + class = "git_status") 251s > status_obs_4 <- status(repo) 251s > status_obs_4 251s Untracked files: 251s Untracked: test-3.txt 251s Untracked: test-4.txt 251s 251s > str(status_exp_4) 251s List of 3 251s $ staged : Named list() 251s $ unstaged : Named list() 251s $ untracked:List of 2 251s ..$ untracked: chr "test-3.txt" 251s ..$ untracked: chr "test-4.txt" 251s - attr(*, "class")= chr "git_status" 251s > str(status_obs_4) 251s List of 3 251s $ staged : Named list() 251s $ unstaged : Named list() 251s $ untracked:List of 2 251s ..$ untracked: chr "test-3.txt" 251s ..$ untracked: chr "test-4.txt" 251s - attr(*, "class")= chr "git_status" 251s > stopifnot(identical(status_obs_4, status_exp_4)) 251s > 251s > ## Update file 1 & 2 251s > writeLines(c("File-1", "Hello world"), file.path(path, "test-1.txt")) 251s > writeLines(c("File-2", "Hello world"), file.path(path, "test-2.txt")) 251s > 251s > ## Add file 1 251s > add(repo, "test-1.txt") 251s > 251s > ## Status case 5: 1 staged file, 1 unstaged file and 2 untracked files 251s > status_exp_5 <- structure(list(staged = list(modified = "test-1.txt"), 251s + unstaged = list(modified = "test-2.txt"), 251s + untracked = list(untracked = "test-3.txt", 251s + untracked = "test-4.txt")), 251s + class = "git_status") 251s > status_obs_5 <- status(repo) 251s > status_obs_5 251s Untracked files: 251s Untracked: test-3.txt 251s Untracked: test-4.txt 251s 251s Unstaged changes: 251s Modified: test-2.txt 251s 251s Staged changes: 251s Modified: test-1.txt 251s 251s > str(status_exp_5) 251s List of 3 251s $ staged :List of 1 251s ..$ modified: chr "test-1.txt" 251s $ unstaged :List of 1 251s ..$ modified: chr "test-2.txt" 251s $ untracked:List of 2 251s ..$ untracked: chr "test-3.txt" 251s ..$ untracked: chr "test-4.txt" 251s - attr(*, "class")= chr "git_status" 251s > str(status_obs_5) 251s List of 3 251s $ staged :List of 1 251s ..$ modified: chr "test-1.txt" 251s $ unstaged :List of 1 251s ..$ modified: chr "test-2.txt" 251s $ untracked:List of 2 251s ..$ untracked: chr "test-3.txt" 251s ..$ untracked: chr "test-4.txt" 251s - attr(*, "class")= chr "git_status" 251s > stopifnot(identical(status_obs_5, status_exp_5)) 251s > 251s > ## Add .gitignore file with file test-4.txt 251s > writeLines("test-4.txt", file.path(path, ".gitignore")) 251s > 251s > ## Status case 6: 1 staged file, 1 unstaged file, 2 untracked files 251s > ## and 1 ignored file 251s > status_exp_6 <- structure(list(staged = list(modified = "test-1.txt"), 251s + unstaged = list(modified = "test-2.txt"), 251s + untracked = list(untracked = ".gitignore", 251s + untracked = "test-3.txt"), 251s + ignored = list(ignored = "test-4.txt")), 251s + class = "git_status") 251s > status_obs_6 <- status(repo, ignore = TRUE) 251s > status_obs_6 251s Ignored files: 251s Ignored: test-4.txt 251s 251s Untracked files: 251s Untracked: .gitignore 251s Untracked: test-3.txt 251s 251s Unstaged changes: 251s Modified: test-2.txt 251s 251s Staged changes: 251s Modified: test-1.txt 251s 251s > str(status_exp_6) 251s List of 4 251s $ staged :List of 1 251s ..$ modified: chr "test-1.txt" 251s $ unstaged :List of 1 251s ..$ modified: chr "test-2.txt" 251s $ untracked:List of 2 251s ..$ untracked: chr ".gitignore" 251s ..$ untracked: chr "test-3.txt" 251s $ ignored :List of 1 251s ..$ ignored: chr "test-4.txt" 251s - attr(*, "class")= chr "git_status" 251s > str(status_obs_6) 251s List of 4 251s $ staged :List of 1 251s ..$ modified: chr "test-1.txt" 251s $ unstaged :List of 1 251s ..$ modified: chr "test-2.txt" 251s $ untracked:List of 2 251s ..$ untracked: chr ".gitignore" 251s ..$ untracked: chr "test-3.txt" 251s $ ignored :List of 1 251s ..$ ignored: chr "test-4.txt" 251s - attr(*, "class")= chr "git_status" 251s > stopifnot(identical(status_obs_6, status_exp_6)) 251s > 251s > ## Cleanup 251s > unlink(path, recursive = TRUE) 251s > 251s BEGIN TEST tag.R 251s 251s R version 4.4.3 (2025-02-28) -- "Trophy Case" 251s Copyright (C) 2025 The R Foundation for Statistical Computing 251s Platform: x86_64-pc-linux-gnu 251s 251s R is free software and comes with ABSOLUTELY NO WARRANTY. 251s You are welcome to redistribute it under certain conditions. 251s Type 'license()' or 'licence()' for distribution details. 251s 251s R is a collaborative project with many contributors. 251s Type 'contributors()' for more information and 251s 'citation()' on how to cite R or R packages in publications. 251s 251s Type 'demo()' for some demos, 'help()' for on-line help, or 251s 'help.start()' for an HTML browser interface to help. 251s Type 'q()' to quit R. 251s 251s > ## git2r, R bindings to the libgit2 library. 251s > ## Copyright (C) 2013-2023 The git2r contributors 251s > ## 251s > ## This program is free software; you can redistribute it and/or modify 251s > ## it under the terms of the GNU General Public License, version 2, 251s > ## as published by the Free Software Foundation. 251s > ## 251s > ## git2r is distributed in the hope that it will be useful, 251s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 251s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 251s > ## GNU General Public License for more details. 251s > ## 251s > ## You should have received a copy of the GNU General Public License along 251s > ## with this program; if not, write to the Free Software Foundation, Inc., 251s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 251s > 251s > library(git2r) 251s > source("util/check.R") 251s > 251s > ## For debugging 251s > sessionInfo() 251s R version 4.4.3 (2025-02-28) 251s Platform: x86_64-pc-linux-gnu 251s Running under: Ubuntu Plucky Puffin (development branch) 251s 251s Matrix products: default 251s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 251s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 251s 251s locale: 251s [1] C 251s 251s time zone: Etc/UTC 251s tzcode source: system (glibc) 251s 251s attached base packages: 251s [1] stats graphics grDevices utils datasets methods base 251s 251s other attached packages: 251s [1] git2r_0.35.0 251s 251s loaded via a namespace (and not attached): 251s [1] compiler_4.4.3 251s > libgit2_version() 251s $major 251s [1] 1 251s 251s $minor 251s [1] 9 251s 251s $rev 251s [1] 0 251s 251s > libgit2_features() 251s $threads 251s [1] TRUE 251s 251s $https 251s [1] TRUE 251s 251s $ssh 251s [1] TRUE 251s 251s > 251s > 251s > ## Create a directory in tempdir 251s > path <- tempfile(pattern = "git2r-") 251s > dir.create(path) 251s > 251s > ## Initialize a repository 251s > repo <- init(path) 251s > config(repo, user.name = "Alice", user.email = "alice@example.org") 251s > 251s > ## Create a file 251s > writeLines("Hello world!", file.path(path, "test.txt")) 251s > 251s > ## add and commit 251s > add(repo, "test.txt") 251s > commit(repo, "Commit message") 251s [415f71e] 2025-03-15: Commit message 251s > 251s > ## Check tags, no tag added 251s > stopifnot(identical(tags(repo), empty_named_list())) 251s > 251s > ## Create tag 251s > new_tag <- tag(repo, "Tagname", "Tag message") 251s > stopifnot(identical(print(new_tag), new_tag)) 251s [415f71] Tagname 251s > summary(new_tag) 251s name: Tagname 251s target: 415f71ef1914369039ec9643442b6a3caac443b2 251s tagger: Alice 251s when: 2025-03-15 22:14:16 GMT 251s message: Tag message 251s > 251s > ## Check tag 251s > stopifnot(identical(lookup(repo, sha(new_tag)), new_tag)) 251s > stopifnot(identical(new_tag$name, "Tagname")) 251s > stopifnot(identical(new_tag$message, "Tag message")) 251s > stopifnot(identical(new_tag$tagger$name, "Alice")) 251s > stopifnot(identical(new_tag$tagger$email, "alice@example.org")) 251s > stopifnot(identical(length(tags(repo)), 1L)) 251s > stopifnot(identical(tags(repo)[[1]]$name, "Tagname")) 251s > stopifnot(identical(tags(repo)[[1]]$message, "Tag message")) 251s > stopifnot(identical(tags(repo)[[1]]$tagger$name, "Alice")) 251s > stopifnot(identical(tags(repo)[[1]]$tagger$email, "alice@example.org")) 251s > 251s > ## Check objects in object database 251s > stopifnot(identical(table(odb_objects(repo)$type), 251s + structure(c(1L, 1L, 1L, 1L), 251s + .Dim = 4L, 251s + .Dimnames = structure(list( 251s + c("blob", "commit", "tag", "tree")), 251s + .Names = ""), 251s + class = "table"))) 251s > 251s > ## Delete tag 251s > tag_delete(new_tag) 251s > stopifnot(identical(length(tags(repo)), 0L)) 251s > 251s > ## Create tag with session info 251s > tag(repo, "Tagname", "Tag message", session = TRUE) 251s > stopifnot(grep("git2r", tags(repo)[[1]]$message) > 0) 251s > 251s > ## Check tags method with default repo argument 251s > wd <- setwd(path) 251s > stopifnot(identical(length(tags()), 1L)) 251s > tag_delete(name = "Tagname") 251s > stopifnot(identical(length(tags()), 0L)) 251s > if (!is.null(wd)) 251s + setwd(wd) 251s > 251s > ## Cleanup 251s > unlink(path, recursive = TRUE) 251s > 251s BEGIN TEST time.R 251s 251s R version 4.4.3 (2025-02-28) -- "Trophy Case" 251s Copyright (C) 2025 The R Foundation for Statistical Computing 251s Platform: x86_64-pc-linux-gnu 251s 251s R is free software and comes with ABSOLUTELY NO WARRANTY. 251s You are welcome to redistribute it under certain conditions. 251s Type 'license()' or 'licence()' for distribution details. 251s 251s R is a collaborative project with many contributors. 251s Type 'contributors()' for more information and 251s 'citation()' on how to cite R or R packages in publications. 251s 251s Type 'demo()' for some demos, 'help()' for on-line help, or 251s 'help.start()' for an HTML browser interface to help. 251s Type 'q()' to quit R. 251s 251s > ## git2r, R bindings to the libgit2 library. 251s > ## Copyright (C) 2013-2023 The git2r contributors 251s > ## 251s > ## This program is free software; you can redistribute it and/or modify 251s > ## it under the terms of the GNU General Public License, version 2, 251s > ## as published by the Free Software Foundation. 251s > ## 251s > ## git2r is distributed in the hope that it will be useful, 251s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 251s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 251s > ## GNU General Public License for more details. 251s > ## 251s > ## You should have received a copy of the GNU General Public License along 251s > ## with this program; if not, write to the Free Software Foundation, Inc., 251s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 251s > 251s > library(git2r) 251s > 251s > ## For debugging 251s > sessionInfo() 251s R version 4.4.3 (2025-02-28) 251s Platform: x86_64-pc-linux-gnu 251s Running under: Ubuntu Plucky Puffin (development branch) 251s 251s Matrix products: default 251s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 251s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 251s 251s locale: 251s [1] C 251s 251s time zone: Etc/UTC 251s tzcode source: system (glibc) 251s 251s attached base packages: 251s [1] stats graphics grDevices utils datasets methods base 251s 251s other attached packages: 251s [1] git2r_0.35.0 251s 251s loaded via a namespace (and not attached): 251s [1] compiler_4.4.3 251s > libgit2_version() 251s $major 251s [1] 1 251s 251s $minor 251s [1] 9 251s 251s $rev 251s [1] 0 251s 251s > libgit2_features() 251s $threads 251s [1] TRUE 251s 251s $https 251s [1] TRUE 251s 251s $ssh 251s [1] TRUE 251s 251s > 251s > 251s > ## Test to coerce 251s > git_t <- structure(list(time = 1395567947, offset = 60), 251s + class = "git_time") 251s > stopifnot(identical(as.character(git_t), "2014-03-23 09:45:47 GMT")) 251s > stopifnot(identical(as.character(git_t, usetz = FALSE), "2014-03-23 09:45:47")) 251s > stopifnot(identical(as.POSIXct(git_t), 251s + as.POSIXct(1395567947, tz = "GMT", origin = "1970-01-01"))) 251s > stopifnot(identical(print(git_t), git_t)) 251s 2014-03-23 09:45:47 GMT 251s > 251s > as.POSIXct(1395567947, origin = "1970-01-01", tz = "-03") 251s [1] "2014-03-23 09:45:47" 251s > 251s > ## Test that origin/tz can be passed to as.POSIXct 251s > stopifnot(identical(as.POSIXct(git_t, tz = "Europe/Stockholm", 251s + origin = "1980-02-02"), 251s + as.POSIXct(1395567947, tz = "Europe/Stockholm", 251s + origin = "1980-02-02"))) 251s > 251s > ## Test that origin/tz can be passed to as.character 251s > stopifnot(identical(as.character(git_t, tz = "Europe/Stockholm", 251s + origin = "1980-02-02"), 251s + "2024-04-23 11:45:47 CEST")) 251s > stopifnot(identical(as.character(git_t, tz = "Europe/Stockholm", 251s + origin = "1980-02-02", usetz = FALSE), 251s + "2024-04-23 11:45:47")) 251s > 251s > ## Test that origin/tz can be passed to print 251s > stopifnot(identical( 251s + utils::capture.output(print(git_t, tz = "Europe/Stockholm", 251s + origin = "1980-02-02")), 251s + "2024-04-23 11:45:47 CEST" 251s + )) 251s > stopifnot(identical( 251s + utils::capture.output(print(git_t, tz = "Europe/Stockholm", 251s + origin = "1980-02-02", usetz = FALSE)), 251s + "2024-04-23 11:45:47" 251s + )) 251s > 251s BEGIN TEST tree.R 251s 251s R version 4.4.3 (2025-02-28) -- "Trophy Case" 251s Copyright (C) 2025 The R Foundation for Statistical Computing 251s Platform: x86_64-pc-linux-gnu 251s 251s R is free software and comes with ABSOLUTELY NO WARRANTY. 251s You are welcome to redistribute it under certain conditions. 251s Type 'license()' or 'licence()' for distribution details. 251s 251s R is a collaborative project with many contributors. 251s Type 'contributors()' for more information and 251s 'citation()' on how to cite R or R packages in publications. 251s 251s Type 'demo()' for some demos, 'help()' for on-line help, or 251s 'help.start()' for an HTML browser interface to help. 251s Type 'q()' to quit R. 251s 251s > ## git2r, R bindings to the libgit2 library. 251s > ## Copyright (C) 2013-2023 The git2r contributors 251s > ## 251s > ## This program is free software; you can redistribute it and/or modify 251s > ## it under the terms of the GNU General Public License, version 2, 251s > ## as published by the Free Software Foundation. 251s > ## 251s > ## git2r is distributed in the hope that it will be useful, 251s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 251s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 251s > ## GNU General Public License for more details. 251s > ## 251s > ## You should have received a copy of the GNU General Public License along 251s > ## with this program; if not, write to the Free Software Foundation, Inc., 251s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 251s > 251s > library("git2r") 251s > 251s > ## For debugging 251s > sessionInfo() 251s R version 4.4.3 (2025-02-28) 251s Platform: x86_64-pc-linux-gnu 251s Running under: Ubuntu Plucky Puffin (development branch) 251s 251s Matrix products: default 251s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 251s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 251s 251s locale: 251s [1] C 251s 251s time zone: Etc/UTC 251s tzcode source: system (glibc) 251s 251s attached base packages: 251s [1] stats graphics grDevices utils datasets methods base 251s 251s other attached packages: 251s [1] git2r_0.35.0 251s 251s loaded via a namespace (and not attached): 251s [1] compiler_4.4.3 251s > libgit2_version() 251s $major 251s [1] 1 251s 251s $minor 251s [1] 9 251s 251s $rev 251s [1] 0 251s 251s > libgit2_features() 251s $threads 251s [1] TRUE 251s 251s $https 251s [1] TRUE 251s 251s $ssh 251s [1] TRUE 251s 251s > 251s > 251s > ## Create a directory in tempdir 251s > path <- tempfile(pattern = "git2r-") 251s > dir.create(path) 251s > 251s > ## Initialize a repository 251s > repo <- init(path) 251s > config(repo, user.name = "Alice", user.email = "alice@example.org") 251s > 251s > ## Create a file 251s > f <- file(file.path(path, "test.txt"), "wb") 251s > writeChar("Hello world!\n", f, eos = NULL) 251s > close(f) 251s > 251s > ## add and commit 251s > add(repo, "test.txt") 251s > commit(repo, "Commit message") 251s [415f71e] 2025-03-15: Commit message 251s > 251s > ## Check tree 251s > stopifnot(is_tree(lookup(repo, "a0b0b9e615e9e433eb5f11859e9feac4564c58c5"))) 251s > stopifnot(identical( 251s + sha(lookup(repo, "a0b0b9e615e9e433eb5f11859e9feac4564c58c5")), 251s + "a0b0b9e615e9e433eb5f11859e9feac4564c58c5")) 251s > stopifnot(is_tree(tree(commits(repo)[[1]]))) 251s > stopifnot(identical(lookup(repo, "a0b0b9e615e9e433eb5f11859e9feac4564c58c5"), 251s + tree(commits(repo)[[1]]))) 251s > stopifnot(identical(length(tree(commits(repo)[[1]])), 1L)) 251s > 251s > ## Coerce to a data.frame and check column names 251s > stopifnot(identical(names(as.data.frame(tree(commits(repo)[[1]]))), 251s + c("mode", "type", "sha", "name"))) 251s > 251s > ## Coerce to list and check length 251s > stopifnot(identical(length(as.list(tree(last_commit(repo)))), 1L)) 251s > 251s > ## Print and summary 251s > stopifnot(identical(print(tree(last_commit(repo))), tree(last_commit(repo)))) 251s tree: a0b0b9e615e9e433eb5f11859e9feac4564c58c5 251s 251s mode type sha name 251s 1 100644 blob cd0875583aabe89ee197ea133980a9085d08e497 test.txt 251s > summary(tree(last_commit(repo))) 251s mode type sha name 251s 1 100644 blob cd0875583aabe89ee197ea133980a9085d08e497 test.txt 251s > 251s > ## Check indexing 251s > stopifnot(is_blob(tree(last_commit(repo))[TRUE])) 251s > stopifnot(is_blob(tree(last_commit(repo))["test.txt"])) 251s > res <- tools::assertError(tree(last_commit(repo))[data.frame()]) 251s > stopifnot(length(grep("Invalid index", res[[1]]$message)) > 0) 251s > 251s > ## Check ls_tree 251s > stopifnot(identical(ls_tree(repo = repo), ls_tree(repo = path))) 251s > stopifnot(identical(ls_tree(tree = sha(tree(last_commit(repo))), repo = repo), 251s + ls_tree(repo = repo))) 251s > 251s > ## Cleanup 251s > unlink(path, recursive = TRUE) 251s > 251s BEGIN TEST when.R 251s 251s R version 4.4.3 (2025-02-28) -- "Trophy Case" 251s Copyright (C) 2025 The R Foundation for Statistical Computing 251s Platform: x86_64-pc-linux-gnu 251s 251s R is free software and comes with ABSOLUTELY NO WARRANTY. 251s You are welcome to redistribute it under certain conditions. 251s Type 'license()' or 'licence()' for distribution details. 251s 251s R is a collaborative project with many contributors. 251s Type 'contributors()' for more information and 251s 'citation()' on how to cite R or R packages in publications. 251s 251s Type 'demo()' for some demos, 'help()' for on-line help, or 251s 'help.start()' for an HTML browser interface to help. 251s Type 'q()' to quit R. 251s 251s > ## git2r, R bindings to the libgit2 library. 251s > ## Copyright (C) 2013-2023 The git2r contributors 251s > ## 251s > ## This program is free software; you can redistribute it and/or modify 251s > ## it under the terms of the GNU General Public License, version 2, 251s > ## as published by the Free Software Foundation. 251s > ## 251s > ## git2r is distributed in the hope that it will be useful, 251s > ## but WITHOUT ANY WARRANTY; without even the implied warranty of 251s > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 251s > ## GNU General Public License for more details. 251s > ## 251s > ## You should have received a copy of the GNU General Public License along 251s > ## with this program; if not, write to the Free Software Foundation, Inc., 251s > ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 251s > 251s > library("git2r") 251s > 251s > ## For debugging 251s > sessionInfo() 251s R version 4.4.3 (2025-02-28) 251s Platform: x86_64-pc-linux-gnu 251s Running under: Ubuntu Plucky Puffin (development branch) 251s 251s Matrix products: default 251s BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.1 251s LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.1; LAPACK version 3.12.0 251s 251s locale: 251s [1] C 251s 251s time zone: Etc/UTC 251s tzcode source: system (glibc) 251s 251s attached base packages: 251s [1] stats graphics grDevices utils datasets methods base 251s 251s other attached packages: 251s [1] git2r_0.35.0 251s 251s loaded via a namespace (and not attached): 251s [1] compiler_4.4.3 251s > libgit2_version() 251s $major 251s [1] 1 251s 251s $minor 251s [1] 9 251s 251s $rev 251s [1] 0 251s 251s > libgit2_features() 251s $threads 251s [1] TRUE 251s 251s $https 251s [1] TRUE 251s 251s $ssh 251s [1] TRUE 251s 251s > 251s > 251s > ## Check when method 251s > w1 <- structure(list(time = 1395567947, offset = 60), 251s + class = "git_time") 251s > stopifnot(identical(when(w1), "2014-03-23 09:45:47 GMT")) 251s > stopifnot(identical(when(w1, usetz = FALSE), "2014-03-23 09:45:47")) 251s > stopifnot(identical(when(w1, tz = "Europe/Stockholm", origin = "1980-02-02"), 251s + "2024-04-23 11:45:47 CEST")) 251s > 251s > s1 <- structure(list(name = "Alice", email = "alice@example.org", when = w1), 251s + class = "git_signature") 251s > stopifnot(identical(when(s1), "2014-03-23 09:45:47 GMT")) 251s > stopifnot(identical(when(s1, usetz = FALSE), "2014-03-23 09:45:47")) 251s > stopifnot(identical(when(s1, tz = "Europe/Stockholm", origin = "1980-02-02"), 251s + "2024-04-23 11:45:47 CEST")) 251s > 251s > w2 <- structure(list(time = 1395567950, offset = 60), 251s + class = "git_time") 251s > s2 <- structure(list(name = "Alice", email = "alice@example.org", when = w2), 251s + class = "git_signature") 251s > c1 <- structure(list(sha = "166f3f779fd7e4165aaa43f2828050ce040052b0", 251s + author = s1, 251s + committer = s2, 251s + summary = "A commit summary", 251s + message = "A commit message"), 251s + class = "git_commit") 251s > stopifnot(identical(when(c1), "2014-03-23 09:45:47 GMT")) 251s > stopifnot(identical(when(c1, usetz = FALSE), "2014-03-23 09:45:47")) 251s > stopifnot(identical(when(c1, tz = "Europe/Stockholm", origin = "1980-02-02"), 251s + "2024-04-23 11:45:47 CEST")) 251s > 251s > t1 <- structure(list(sha = "166f3f779fd7e4165aaa43f2828050ce040052b0", 251s + message = "A tag message", 251s + name = "A tage name", 251s + tagger = s1, 251s + target = "166f3f779fd7e4165aaa43f2828050ce040052b0"), 251s + class = "git_tag") 251s > stopifnot(identical(when(t1), "2014-03-23 09:45:47 GMT")) 251s > stopifnot(identical(when(t1, usetz = FALSE), "2014-03-23 09:45:47")) 251s > stopifnot(identical(when(t1, tz = "Europe/Stockholm", origin = "1980-02-02"), 251s + "2024-04-23 11:45:47 CEST")) 251s > 252s autopkgtest [22:14:17]: test run-unit-test: -----------------------] 252s autopkgtest [22:14:17]: test run-unit-test: - - - - - - - - - - results - - - - - - - - - - 252s run-unit-test PASS 253s autopkgtest [22:14:18]: test pkg-r-autopkgtest: preparing testbed 253s Reading package lists... 253s Building dependency tree... 253s Reading state information... 253s Starting pkgProblemResolver with broken count: 0 253s Starting 2 pkgProblemResolver with broken count: 0 253s Done 254s The following NEW packages will be installed: 254s build-essential cpp cpp-14 cpp-14-x86-64-linux-gnu cpp-x86-64-linux-gnu 254s dctrl-tools g++ g++-14 g++-14-x86-64-linux-gnu g++-x86-64-linux-gnu gcc 254s gcc-14 gcc-14-x86-64-linux-gnu gcc-x86-64-linux-gnu gfortran gfortran-14 254s gfortran-14-x86-64-linux-gnu gfortran-x86-64-linux-gnu icu-devtools libasan8 254s libblas-dev libbz2-dev libcc1-0 libdeflate-dev libgcc-14-dev 254s libgfortran-14-dev libhwasan0 libicu-dev libisl23 libitm1 libjpeg-dev 254s libjpeg-turbo8-dev libjpeg8-dev liblapack-dev liblsan0 liblzma-dev libmpc3 254s libncurses-dev libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 254s libpkgconf3 libpng-dev libquadmath0 libreadline-dev libstdc++-14-dev 254s libtirpc-dev libtsan2 libubsan1 pkg-r-autopkgtest pkgconf pkgconf-bin 254s r-base-dev zlib1g-dev 254s 0 upgraded, 55 newly installed, 0 to remove and 0 not upgraded. 254s Need to get 103 MB of archives. 254s After this operation, 363 MB of additional disk space will be used. 254s Get:1 http://ftpmaster.internal/ubuntu plucky/main amd64 libisl23 amd64 0.27-1 [685 kB] 254s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 libmpc3 amd64 1.3.1-1build2 [55.3 kB] 254s Get:3 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-14-x86-64-linux-gnu amd64 14.2.0-17ubuntu3 [11.9 MB] 255s Get:4 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-14 amd64 14.2.0-17ubuntu3 [1030 B] 255s Get:5 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp-x86-64-linux-gnu amd64 4:14.2.0-1ubuntu1 [5586 B] 255s Get:6 http://ftpmaster.internal/ubuntu plucky/main amd64 cpp amd64 4:14.2.0-1ubuntu1 [22.4 kB] 255s Get:7 http://ftpmaster.internal/ubuntu plucky/main amd64 libcc1-0 amd64 15-20250222-0ubuntu1 [47.0 kB] 255s Get:8 http://ftpmaster.internal/ubuntu plucky/main amd64 libitm1 amd64 15-20250222-0ubuntu1 [28.6 kB] 255s Get:9 http://ftpmaster.internal/ubuntu plucky/main amd64 libasan8 amd64 15-20250222-0ubuntu1 [3055 kB] 255s Get:10 http://ftpmaster.internal/ubuntu plucky/main amd64 liblsan0 amd64 15-20250222-0ubuntu1 [1355 kB] 255s Get:11 http://ftpmaster.internal/ubuntu plucky/main amd64 libtsan2 amd64 15-20250222-0ubuntu1 [2756 kB] 255s Get:12 http://ftpmaster.internal/ubuntu plucky/main amd64 libubsan1 amd64 15-20250222-0ubuntu1 [1205 kB] 255s Get:13 http://ftpmaster.internal/ubuntu plucky/main amd64 libhwasan0 amd64 15-20250222-0ubuntu1 [1677 kB] 255s Get:14 http://ftpmaster.internal/ubuntu plucky/main amd64 libquadmath0 amd64 15-20250222-0ubuntu1 [152 kB] 255s Get:15 http://ftpmaster.internal/ubuntu plucky/main amd64 libgcc-14-dev amd64 14.2.0-17ubuntu3 [2816 kB] 255s Get:16 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-14-x86-64-linux-gnu amd64 14.2.0-17ubuntu3 [23.3 MB] 256s Get:17 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-14 amd64 14.2.0-17ubuntu3 [536 kB] 256s Get:18 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc-x86-64-linux-gnu amd64 4:14.2.0-1ubuntu1 [1208 B] 256s Get:19 http://ftpmaster.internal/ubuntu plucky/main amd64 gcc amd64 4:14.2.0-1ubuntu1 [5004 B] 256s Get:20 http://ftpmaster.internal/ubuntu plucky/main amd64 libstdc++-14-dev amd64 14.2.0-17ubuntu3 [2486 kB] 256s Get:21 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-14-x86-64-linux-gnu amd64 14.2.0-17ubuntu3 [13.4 MB] 257s Get:22 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-14 amd64 14.2.0-17ubuntu3 [21.8 kB] 257s Get:23 http://ftpmaster.internal/ubuntu plucky/main amd64 g++-x86-64-linux-gnu amd64 4:14.2.0-1ubuntu1 [968 B] 257s Get:24 http://ftpmaster.internal/ubuntu plucky/main amd64 g++ amd64 4:14.2.0-1ubuntu1 [1100 B] 257s Get:25 http://ftpmaster.internal/ubuntu plucky/main amd64 build-essential amd64 12.10ubuntu1 [4928 B] 257s Get:26 http://ftpmaster.internal/ubuntu plucky/main amd64 dctrl-tools amd64 2.24-3build3 [106 kB] 257s Get:27 http://ftpmaster.internal/ubuntu plucky/main amd64 libgfortran-14-dev amd64 14.2.0-17ubuntu3 [966 kB] 257s Get:28 http://ftpmaster.internal/ubuntu plucky/main amd64 gfortran-14-x86-64-linux-gnu amd64 14.2.0-17ubuntu3 [12.6 MB] 257s Get:29 http://ftpmaster.internal/ubuntu plucky/main amd64 gfortran-14 amd64 14.2.0-17ubuntu3 [13.6 kB] 257s Get:30 http://ftpmaster.internal/ubuntu plucky/main amd64 gfortran-x86-64-linux-gnu amd64 4:14.2.0-1ubuntu1 [1022 B] 257s Get:31 http://ftpmaster.internal/ubuntu plucky/main amd64 gfortran amd64 4:14.2.0-1ubuntu1 [1174 B] 257s Get:32 http://ftpmaster.internal/ubuntu plucky/main amd64 icu-devtools amd64 76.1-1ubuntu2 [237 kB] 257s Get:33 http://ftpmaster.internal/ubuntu plucky/main amd64 libblas-dev amd64 3.12.1-2 [338 kB] 257s Get:34 http://ftpmaster.internal/ubuntu plucky/main amd64 libbz2-dev amd64 1.0.8-6 [33.8 kB] 257s Get:35 http://ftpmaster.internal/ubuntu plucky/main amd64 libdeflate-dev amd64 1.23-1 [71.7 kB] 257s Get:36 http://ftpmaster.internal/ubuntu plucky/main amd64 libicu-dev amd64 76.1-1ubuntu2 [12.6 MB] 257s Get:37 http://ftpmaster.internal/ubuntu plucky/main amd64 libjpeg-turbo8-dev amd64 2.1.5-3ubuntu2 [324 kB] 257s Get:38 http://ftpmaster.internal/ubuntu plucky/main amd64 libjpeg8-dev amd64 8c-2ubuntu11 [1484 B] 257s Get:39 http://ftpmaster.internal/ubuntu plucky/main amd64 libjpeg-dev amd64 8c-2ubuntu11 [1482 B] 257s Get:40 http://ftpmaster.internal/ubuntu plucky/main amd64 liblapack-dev amd64 3.12.1-2 [6489 kB] 257s Get:41 http://ftpmaster.internal/ubuntu plucky/main amd64 libncurses-dev amd64 6.5+20250216-2 [424 kB] 257s Get:42 http://ftpmaster.internal/ubuntu plucky/main amd64 libpcre2-16-0 amd64 10.45-1 [268 kB] 257s Get:43 http://ftpmaster.internal/ubuntu plucky/main amd64 libpcre2-32-0 amd64 10.45-1 [251 kB] 257s Get:44 http://ftpmaster.internal/ubuntu plucky/main amd64 libpcre2-posix3 amd64 10.45-1 [7204 B] 257s Get:45 http://ftpmaster.internal/ubuntu plucky/main amd64 libpcre2-dev amd64 10.45-1 [908 kB] 257s Get:46 http://ftpmaster.internal/ubuntu plucky/main amd64 libpkgconf3 amd64 1.8.1-4 [32.3 kB] 257s Get:47 http://ftpmaster.internal/ubuntu plucky/main amd64 zlib1g-dev amd64 1:1.3.dfsg+really1.3.1-1ubuntu1 [895 kB] 257s Get:48 http://ftpmaster.internal/ubuntu plucky/main amd64 libpng-dev amd64 1.6.47-1 [298 kB] 257s Get:49 http://ftpmaster.internal/ubuntu plucky/main amd64 libreadline-dev amd64 8.2-6 [184 kB] 257s Get:50 http://ftpmaster.internal/ubuntu plucky/main amd64 liblzma-dev amd64 5.6.4-1 [189 kB] 257s Get:51 http://ftpmaster.internal/ubuntu plucky/main amd64 pkgconf-bin amd64 1.8.1-4 [21.6 kB] 257s Get:52 http://ftpmaster.internal/ubuntu plucky/main amd64 pkgconf amd64 1.8.1-4 [16.8 kB] 257s Get:53 http://ftpmaster.internal/ubuntu plucky/main amd64 libtirpc-dev amd64 1.3.4+ds-1.3 [193 kB] 257s Get:54 http://ftpmaster.internal/ubuntu plucky/universe amd64 r-base-dev all 4.4.3-1 [4176 B] 257s Get:55 http://ftpmaster.internal/ubuntu plucky/universe amd64 pkg-r-autopkgtest all 20231212ubuntu1 [6448 B] 258s Fetched 103 MB in 4s (28.0 MB/s) 258s Selecting previously unselected package libisl23:amd64. 258s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 79263 files and directories currently installed.) 258s Preparing to unpack .../00-libisl23_0.27-1_amd64.deb ... 258s Unpacking libisl23:amd64 (0.27-1) ... 258s Selecting previously unselected package libmpc3:amd64. 258s Preparing to unpack .../01-libmpc3_1.3.1-1build2_amd64.deb ... 258s Unpacking libmpc3:amd64 (1.3.1-1build2) ... 258s Selecting previously unselected package cpp-14-x86-64-linux-gnu. 258s Preparing to unpack .../02-cpp-14-x86-64-linux-gnu_14.2.0-17ubuntu3_amd64.deb ... 258s Unpacking cpp-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 258s Selecting previously unselected package cpp-14. 258s Preparing to unpack .../03-cpp-14_14.2.0-17ubuntu3_amd64.deb ... 258s Unpacking cpp-14 (14.2.0-17ubuntu3) ... 258s Selecting previously unselected package cpp-x86-64-linux-gnu. 258s Preparing to unpack .../04-cpp-x86-64-linux-gnu_4%3a14.2.0-1ubuntu1_amd64.deb ... 258s Unpacking cpp-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 258s Selecting previously unselected package cpp. 258s Preparing to unpack .../05-cpp_4%3a14.2.0-1ubuntu1_amd64.deb ... 258s Unpacking cpp (4:14.2.0-1ubuntu1) ... 258s Selecting previously unselected package libcc1-0:amd64. 258s Preparing to unpack .../06-libcc1-0_15-20250222-0ubuntu1_amd64.deb ... 258s Unpacking libcc1-0:amd64 (15-20250222-0ubuntu1) ... 258s Selecting previously unselected package libitm1:amd64. 258s Preparing to unpack .../07-libitm1_15-20250222-0ubuntu1_amd64.deb ... 258s Unpacking libitm1:amd64 (15-20250222-0ubuntu1) ... 258s Selecting previously unselected package libasan8:amd64. 258s Preparing to unpack .../08-libasan8_15-20250222-0ubuntu1_amd64.deb ... 258s Unpacking libasan8:amd64 (15-20250222-0ubuntu1) ... 258s Selecting previously unselected package liblsan0:amd64. 258s Preparing to unpack .../09-liblsan0_15-20250222-0ubuntu1_amd64.deb ... 258s Unpacking liblsan0:amd64 (15-20250222-0ubuntu1) ... 258s Selecting previously unselected package libtsan2:amd64. 258s Preparing to unpack .../10-libtsan2_15-20250222-0ubuntu1_amd64.deb ... 258s Unpacking libtsan2:amd64 (15-20250222-0ubuntu1) ... 258s Selecting previously unselected package libubsan1:amd64. 258s Preparing to unpack .../11-libubsan1_15-20250222-0ubuntu1_amd64.deb ... 258s Unpacking libubsan1:amd64 (15-20250222-0ubuntu1) ... 259s Selecting previously unselected package libhwasan0:amd64. 259s Preparing to unpack .../12-libhwasan0_15-20250222-0ubuntu1_amd64.deb ... 259s Unpacking libhwasan0:amd64 (15-20250222-0ubuntu1) ... 259s Selecting previously unselected package libquadmath0:amd64. 259s Preparing to unpack .../13-libquadmath0_15-20250222-0ubuntu1_amd64.deb ... 259s Unpacking libquadmath0:amd64 (15-20250222-0ubuntu1) ... 259s Selecting previously unselected package libgcc-14-dev:amd64. 259s Preparing to unpack .../14-libgcc-14-dev_14.2.0-17ubuntu3_amd64.deb ... 259s Unpacking libgcc-14-dev:amd64 (14.2.0-17ubuntu3) ... 259s Selecting previously unselected package gcc-14-x86-64-linux-gnu. 259s Preparing to unpack .../15-gcc-14-x86-64-linux-gnu_14.2.0-17ubuntu3_amd64.deb ... 259s Unpacking gcc-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 259s Selecting previously unselected package gcc-14. 259s Preparing to unpack .../16-gcc-14_14.2.0-17ubuntu3_amd64.deb ... 259s Unpacking gcc-14 (14.2.0-17ubuntu3) ... 259s Selecting previously unselected package gcc-x86-64-linux-gnu. 259s Preparing to unpack .../17-gcc-x86-64-linux-gnu_4%3a14.2.0-1ubuntu1_amd64.deb ... 259s Unpacking gcc-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 259s Selecting previously unselected package gcc. 259s Preparing to unpack .../18-gcc_4%3a14.2.0-1ubuntu1_amd64.deb ... 259s Unpacking gcc (4:14.2.0-1ubuntu1) ... 259s Selecting previously unselected package libstdc++-14-dev:amd64. 259s Preparing to unpack .../19-libstdc++-14-dev_14.2.0-17ubuntu3_amd64.deb ... 259s Unpacking libstdc++-14-dev:amd64 (14.2.0-17ubuntu3) ... 259s Selecting previously unselected package g++-14-x86-64-linux-gnu. 259s Preparing to unpack .../20-g++-14-x86-64-linux-gnu_14.2.0-17ubuntu3_amd64.deb ... 259s Unpacking g++-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 260s Selecting previously unselected package g++-14. 260s Preparing to unpack .../21-g++-14_14.2.0-17ubuntu3_amd64.deb ... 260s Unpacking g++-14 (14.2.0-17ubuntu3) ... 260s Selecting previously unselected package g++-x86-64-linux-gnu. 260s Preparing to unpack .../22-g++-x86-64-linux-gnu_4%3a14.2.0-1ubuntu1_amd64.deb ... 260s Unpacking g++-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 260s Selecting previously unselected package g++. 260s Preparing to unpack .../23-g++_4%3a14.2.0-1ubuntu1_amd64.deb ... 260s Unpacking g++ (4:14.2.0-1ubuntu1) ... 260s Selecting previously unselected package build-essential. 260s Preparing to unpack .../24-build-essential_12.10ubuntu1_amd64.deb ... 260s Unpacking build-essential (12.10ubuntu1) ... 260s Selecting previously unselected package dctrl-tools. 260s Preparing to unpack .../25-dctrl-tools_2.24-3build3_amd64.deb ... 260s Unpacking dctrl-tools (2.24-3build3) ... 260s Selecting previously unselected package libgfortran-14-dev:amd64. 260s Preparing to unpack .../26-libgfortran-14-dev_14.2.0-17ubuntu3_amd64.deb ... 260s Unpacking libgfortran-14-dev:amd64 (14.2.0-17ubuntu3) ... 260s Selecting previously unselected package gfortran-14-x86-64-linux-gnu. 260s Preparing to unpack .../27-gfortran-14-x86-64-linux-gnu_14.2.0-17ubuntu3_amd64.deb ... 260s Unpacking gfortran-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 260s Selecting previously unselected package gfortran-14. 260s Preparing to unpack .../28-gfortran-14_14.2.0-17ubuntu3_amd64.deb ... 260s Unpacking gfortran-14 (14.2.0-17ubuntu3) ... 260s Selecting previously unselected package gfortran-x86-64-linux-gnu. 260s Preparing to unpack .../29-gfortran-x86-64-linux-gnu_4%3a14.2.0-1ubuntu1_amd64.deb ... 260s Unpacking gfortran-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 260s Selecting previously unselected package gfortran. 260s Preparing to unpack .../30-gfortran_4%3a14.2.0-1ubuntu1_amd64.deb ... 260s Unpacking gfortran (4:14.2.0-1ubuntu1) ... 260s Selecting previously unselected package icu-devtools. 260s Preparing to unpack .../31-icu-devtools_76.1-1ubuntu2_amd64.deb ... 260s Unpacking icu-devtools (76.1-1ubuntu2) ... 260s Selecting previously unselected package libblas-dev:amd64. 260s Preparing to unpack .../32-libblas-dev_3.12.1-2_amd64.deb ... 260s Unpacking libblas-dev:amd64 (3.12.1-2) ... 260s Selecting previously unselected package libbz2-dev:amd64. 260s Preparing to unpack .../33-libbz2-dev_1.0.8-6_amd64.deb ... 260s Unpacking libbz2-dev:amd64 (1.0.8-6) ... 260s Selecting previously unselected package libdeflate-dev:amd64. 260s Preparing to unpack .../34-libdeflate-dev_1.23-1_amd64.deb ... 260s Unpacking libdeflate-dev:amd64 (1.23-1) ... 260s Selecting previously unselected package libicu-dev:amd64. 260s Preparing to unpack .../35-libicu-dev_76.1-1ubuntu2_amd64.deb ... 260s Unpacking libicu-dev:amd64 (76.1-1ubuntu2) ... 261s Selecting previously unselected package libjpeg-turbo8-dev:amd64. 261s Preparing to unpack .../36-libjpeg-turbo8-dev_2.1.5-3ubuntu2_amd64.deb ... 261s Unpacking libjpeg-turbo8-dev:amd64 (2.1.5-3ubuntu2) ... 261s Selecting previously unselected package libjpeg8-dev:amd64. 261s Preparing to unpack .../37-libjpeg8-dev_8c-2ubuntu11_amd64.deb ... 261s Unpacking libjpeg8-dev:amd64 (8c-2ubuntu11) ... 261s Selecting previously unselected package libjpeg-dev:amd64. 261s Preparing to unpack .../38-libjpeg-dev_8c-2ubuntu11_amd64.deb ... 261s Unpacking libjpeg-dev:amd64 (8c-2ubuntu11) ... 261s Selecting previously unselected package liblapack-dev:amd64. 261s Preparing to unpack .../39-liblapack-dev_3.12.1-2_amd64.deb ... 261s Unpacking liblapack-dev:amd64 (3.12.1-2) ... 261s Selecting previously unselected package libncurses-dev:amd64. 261s Preparing to unpack .../40-libncurses-dev_6.5+20250216-2_amd64.deb ... 261s Unpacking libncurses-dev:amd64 (6.5+20250216-2) ... 261s Selecting previously unselected package libpcre2-16-0:amd64. 261s Preparing to unpack .../41-libpcre2-16-0_10.45-1_amd64.deb ... 261s Unpacking libpcre2-16-0:amd64 (10.45-1) ... 261s Selecting previously unselected package libpcre2-32-0:amd64. 261s Preparing to unpack .../42-libpcre2-32-0_10.45-1_amd64.deb ... 261s Unpacking libpcre2-32-0:amd64 (10.45-1) ... 261s Selecting previously unselected package libpcre2-posix3:amd64. 261s Preparing to unpack .../43-libpcre2-posix3_10.45-1_amd64.deb ... 261s Unpacking libpcre2-posix3:amd64 (10.45-1) ... 261s Selecting previously unselected package libpcre2-dev:amd64. 261s Preparing to unpack .../44-libpcre2-dev_10.45-1_amd64.deb ... 261s Unpacking libpcre2-dev:amd64 (10.45-1) ... 261s Selecting previously unselected package libpkgconf3:amd64. 261s Preparing to unpack .../45-libpkgconf3_1.8.1-4_amd64.deb ... 261s Unpacking libpkgconf3:amd64 (1.8.1-4) ... 261s Selecting previously unselected package zlib1g-dev:amd64. 261s Preparing to unpack .../46-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu1_amd64.deb ... 261s Unpacking zlib1g-dev:amd64 (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 261s Selecting previously unselected package libpng-dev:amd64. 261s Preparing to unpack .../47-libpng-dev_1.6.47-1_amd64.deb ... 261s Unpacking libpng-dev:amd64 (1.6.47-1) ... 261s Selecting previously unselected package libreadline-dev:amd64. 261s Preparing to unpack .../48-libreadline-dev_8.2-6_amd64.deb ... 261s Unpacking libreadline-dev:amd64 (8.2-6) ... 261s Selecting previously unselected package liblzma-dev:amd64. 261s Preparing to unpack .../49-liblzma-dev_5.6.4-1_amd64.deb ... 261s Unpacking liblzma-dev:amd64 (5.6.4-1) ... 261s Selecting previously unselected package pkgconf-bin. 261s Preparing to unpack .../50-pkgconf-bin_1.8.1-4_amd64.deb ... 261s Unpacking pkgconf-bin (1.8.1-4) ... 261s Selecting previously unselected package pkgconf:amd64. 261s Preparing to unpack .../51-pkgconf_1.8.1-4_amd64.deb ... 261s Unpacking pkgconf:amd64 (1.8.1-4) ... 261s Selecting previously unselected package libtirpc-dev:amd64. 261s Preparing to unpack .../52-libtirpc-dev_1.3.4+ds-1.3_amd64.deb ... 261s Unpacking libtirpc-dev:amd64 (1.3.4+ds-1.3) ... 261s Selecting previously unselected package r-base-dev. 261s Preparing to unpack .../53-r-base-dev_4.4.3-1_all.deb ... 261s Unpacking r-base-dev (4.4.3-1) ... 261s Selecting previously unselected package pkg-r-autopkgtest. 261s Preparing to unpack .../54-pkg-r-autopkgtest_20231212ubuntu1_all.deb ... 261s Unpacking pkg-r-autopkgtest (20231212ubuntu1) ... 261s Setting up libjpeg-turbo8-dev:amd64 (2.1.5-3ubuntu2) ... 261s Setting up libncurses-dev:amd64 (6.5+20250216-2) ... 261s Setting up libreadline-dev:amd64 (8.2-6) ... 261s Setting up libpcre2-16-0:amd64 (10.45-1) ... 261s Setting up libpcre2-32-0:amd64 (10.45-1) ... 261s Setting up libtirpc-dev:amd64 (1.3.4+ds-1.3) ... 261s Setting up libpkgconf3:amd64 (1.8.1-4) ... 261s Setting up libquadmath0:amd64 (15-20250222-0ubuntu1) ... 261s Setting up libmpc3:amd64 (1.3.1-1build2) ... 261s Setting up icu-devtools (76.1-1ubuntu2) ... 261s Setting up pkgconf-bin (1.8.1-4) ... 261s Setting up liblzma-dev:amd64 (5.6.4-1) ... 261s Setting up libubsan1:amd64 (15-20250222-0ubuntu1) ... 261s Setting up zlib1g-dev:amd64 (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 261s Setting up libpcre2-posix3:amd64 (10.45-1) ... 261s Setting up libhwasan0:amd64 (15-20250222-0ubuntu1) ... 261s Setting up libasan8:amd64 (15-20250222-0ubuntu1) ... 261s Setting up libtsan2:amd64 (15-20250222-0ubuntu1) ... 261s Setting up libjpeg8-dev:amd64 (8c-2ubuntu11) ... 261s Setting up libisl23:amd64 (0.27-1) ... 261s Setting up libdeflate-dev:amd64 (1.23-1) ... 261s Setting up libicu-dev:amd64 (76.1-1ubuntu2) ... 261s Setting up libcc1-0:amd64 (15-20250222-0ubuntu1) ... 261s Setting up liblsan0:amd64 (15-20250222-0ubuntu1) ... 261s Setting up libblas-dev:amd64 (3.12.1-2) ... 261s update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so to provide /usr/lib/x86_64-linux-gnu/libblas.so (libblas.so-x86_64-linux-gnu) in auto mode 261s Setting up dctrl-tools (2.24-3build3) ... 261s Setting up libitm1:amd64 (15-20250222-0ubuntu1) ... 261s Setting up libbz2-dev:amd64 (1.0.8-6) ... 261s Setting up libpcre2-dev:amd64 (10.45-1) ... 261s Setting up libpng-dev:amd64 (1.6.47-1) ... 261s Setting up libjpeg-dev:amd64 (8c-2ubuntu11) ... 261s Setting up pkgconf:amd64 (1.8.1-4) ... 261s Setting up liblapack-dev:amd64 (3.12.1-2) ... 261s update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so to provide /usr/lib/x86_64-linux-gnu/liblapack.so (liblapack.so-x86_64-linux-gnu) in auto mode 261s Setting up cpp-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 261s Setting up cpp-14 (14.2.0-17ubuntu3) ... 261s Setting up libgcc-14-dev:amd64 (14.2.0-17ubuntu3) ... 261s Setting up libstdc++-14-dev:amd64 (14.2.0-17ubuntu3) ... 261s Setting up cpp-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 261s Setting up libgfortran-14-dev:amd64 (14.2.0-17ubuntu3) ... 261s Setting up cpp (4:14.2.0-1ubuntu1) ... 261s Setting up gcc-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 261s Setting up gcc-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 261s Setting up gcc-14 (14.2.0-17ubuntu3) ... 261s Setting up gfortran-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 261s Setting up g++-14-x86-64-linux-gnu (14.2.0-17ubuntu3) ... 261s Setting up g++-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 261s Setting up g++-14 (14.2.0-17ubuntu3) ... 261s Setting up gfortran-14 (14.2.0-17ubuntu3) ... 261s Setting up gfortran-x86-64-linux-gnu (4:14.2.0-1ubuntu1) ... 261s Setting up gcc (4:14.2.0-1ubuntu1) ... 261s Setting up g++ (4:14.2.0-1ubuntu1) ... 261s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 261s Setting up build-essential (12.10ubuntu1) ... 261s Setting up gfortran (4:14.2.0-1ubuntu1) ... 261s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f95 (f95) in auto mode 261s update-alternatives: warning: skip creation of /usr/share/man/man1/f95.1.gz because associated file /usr/share/man/man1/gfortran.1.gz (of link group f95) doesn't exist 261s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f77 (f77) in auto mode 261s update-alternatives: warning: skip creation of /usr/share/man/man1/f77.1.gz because associated file /usr/share/man/man1/gfortran.1.gz (of link group f77) doesn't exist 261s Setting up r-base-dev (4.4.3-1) ... 261s Setting up pkg-r-autopkgtest (20231212ubuntu1) ... 261s Processing triggers for libc-bin (2.41-1ubuntu2) ... 261s Processing triggers for man-db (2.13.0-1) ... 263s Processing triggers for install-info (7.1.1-1) ... 264s autopkgtest [22:14:29]: test pkg-r-autopkgtest: /usr/share/dh-r/pkg-r-autopkgtest 264s autopkgtest [22:14:29]: test pkg-r-autopkgtest: [----------------------- 264s Test: Try to load the R library git2r 264s 264s R version 4.4.3 (2025-02-28) -- "Trophy Case" 264s Copyright (C) 2025 The R Foundation for Statistical Computing 264s Platform: x86_64-pc-linux-gnu 264s 264s R is free software and comes with ABSOLUTELY NO WARRANTY. 264s You are welcome to redistribute it under certain conditions. 264s Type 'license()' or 'licence()' for distribution details. 264s 264s R is a collaborative project with many contributors. 264s Type 'contributors()' for more information and 264s 'citation()' on how to cite R or R packages in publications. 264s 264s Type 'demo()' for some demos, 'help()' for on-line help, or 264s 'help.start()' for an HTML browser interface to help. 264s Type 'q()' to quit R. 264s 264s > library('git2r') 264s > 264s > 264s Other tests are currently unsupported! 264s They will be progressively added. 264s autopkgtest [22:14:29]: test pkg-r-autopkgtest: -----------------------] 265s autopkgtest [22:14:30]: test pkg-r-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 265s pkg-r-autopkgtest PASS 265s autopkgtest [22:14:30]: @@@@@@@@@@@@@@@@@@@@ summary 265s run-unit-test PASS 265s pkg-r-autopkgtest PASS 282s nova [W] Skipping flock for amd64 282s Creating nova instance adt-plucky-amd64-r-cran-git2r-20250315-221005-juju-7f2275-prod-proposed-migration-environment-20-32b31230-86ab-48d1-b0ab-b7ad6fe8722d from image adt/ubuntu-plucky-amd64-server-20250304.img (UUID 9c7d4da5-d95f-4c85-ac1f-51eb37e75c4c)... 282s nova [W] Timed out waiting for 49bfd11a-cd70-45c9-a54a-86b8c62f4726 to get deleted.