Hi. When EVCS_OFFLINE is set, then package_LIVE_COMMIT is ignored and the latest commit is checked out instead. Reproducible: Always Steps to Reproduce: Tested with these 2 lines in /etc/portage/package.env net-im/utox utox.conf net-libs/tox tox.conf plus these 2 lines in /etc/portage/env/tox.conf tox_LIVE_COMMIT="61f8e65c0157049ac26bf9b081ba6842d7defdeb" EVCS_OFFLINE=1 plus these 3 lines in /etc/portage/env/utox.conf utox_LIVE_COMMIT="b623d58311288c1c89d54cd570a4b79777097a80" EVCS_OFFLINE=1 EGIT_BRANCH="develop" then # emerge -v tox utox Actual Results: the commits in _LIVE_COMMIT are ignored and latest commit is checked out instead (seen after emerge, the version of utox was 6 something, instead of 0.5.1 something) Expected Results: expected results should be the same as when the line EVCS_OFFLINE=1 is commented out! that is, the specified commits in _LIVE_COMMIT are used instead. # emerge --info tox utox Portage 2.2.27 (python 3.4.3-final-0, default/linux/amd64/13.0/no-multilib, gcc-5.3.0, glibc-2.22-r2, 4.5.0-rc5 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-4.5.0-rc5-x86_64-AMD_A6-3400M_APU_with_Radeon-tm-_HD_Graphics-with-gentoo-2.2 KiB Mem: 15875456 total, 14421080 free KiB Swap: 0 total, 0 free Timestamp of repository gentoo: Sat, 27 Feb 2016 15:00:01 +0000 sh bash 4.3_p42-r2 ld GNU ld (Gentoo 2.25.1 p1.1) 2.25.1 ccache version 3.2.4 [enabled] app-shells/bash: 4.3_p42-r2::gentoo dev-lang/perl: 5.22.1::gentoo dev-lang/python: 2.7.11-r2::gentoo, 3.4.3-r7::gentoo dev-util/ccache: 3.2.4::gentoo dev-util/cmake: 3.4.3::gentoo dev-util/pkgconfig: 0.29::gentoo sys-apps/baselayout: 2.2::gentoo sys-apps/openrc: 0.20.5::gentoo sys-apps/sandbox: 2.10-r1::gentoo sys-devel/autoconf: 2.13::gentoo, 2.69-r1::gentoo sys-devel/automake: 1.13.4-r1::gentoo, 1.14.1-r1::gentoo, 1.15-r2::gentoo sys-devel/binutils: 2.25.1-r1::gentoo sys-devel/gcc: 5.3.0::gentoo sys-devel/gcc-config: 1.8-r1::gentoo sys-devel/libtool: 2.4.6-r2::gentoo sys-devel/make: 4.1-r1::gentoo sys-kernel/linux-headers: 4.4::gentoo (virtual/os-headers) sys-libs/glibc: 2.22-r2::gentoo Repositories: gentoo location: /usr/portage sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: -1000 sync-rsync-vcs-ignore: false tox-overlay location: /var/lib/layman/tox-overlay masters: gentoo priority: 50 ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="@FREE" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -march=native -g0 -fno-var-tracking-assignments -fomit-frame-pointer -ftrack-macro-expansion=0 -fno-stack-protector -fPIC" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -pipe -march=native -g0 -fno-var-tracking-assignments -fomit-frame-pointer -ftrack-macro-expansion=0 -fno-stack-protector -fPIC" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs ccache cgroup collision-protect config-protect-if-modified distlocks downgrade-backup ebuild-locks fakeroot fixlafiles force-mirror ipc-sandbox merge-sync multilib-strict network-sandbox news nostrip parallel-fetch prelink-checksums preserve-libs sandbox sfperms skiprocheck split-elog split-log strict suidctl unknown-features-warn unmerge-logs userfetch userpriv usersandbox webrsync-gpg" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://de-mirror.org/gentoo/ http://gd.tuwien.ac.at/opsys/linux/gentoo/ http://ftp.romnet.org/gentoo/ http://tux.rainside.sk/gentoo/ http://www.las.ic.unicamp.br/pub/gentoo/" INSTALL_MASK="/lib/systemd /lib32/systemd /lib64/systemd /usr/lib/systemd /usr/lib32/systemd /usr/lib64/systemd /etc/systemd" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" USE="3dnow 3dnowext X acl amd64 berkdb bindist btrfs bzip2 cli consolekit crypt cryptsetup cscope cxx dbus device-mapper dri extensions gdbm git gpg gpm gtk3 iconv jpeg lm_sensors lock mmx mmxext modules mosh-hardening ncurses nptl ogg openmp opus pam pcre pie png policykit popcnt pulseaudio qt4 readline seccomp session smp sse sse2 sse3 sse4a ssl ssp startup-notification strong-security xcomposite zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="3dnow 3dnowext mmx mmxext popcnt sse sse2 sse3 sse4a" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="keyboard synaptics evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby20 ruby21" USERLAND="GNU" VIDEO_CARDS="radeon" XFCE_PLUGINS="brightness clock trash battery power" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" USE_PYTHON="2.7" Unset: CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS ================================================================= Package Settings ================================================================= net-libs/tox-9999::tox-overlay was built with the following: USE="av -daemon -log -log-debug -log-error -log-info -log-trace -log-warn -ntox -static-libs -test" net-im/utox-9999::tox-overlay was built with the following: USE="dbus -filter_audio" Also see: https://devmanual.gentoo.org/eclass-reference/git-2.eclass/index.html
(In reply to Emanuel Czirai from comment #0) > Hi. > When EVCS_OFFLINE is set, then package_LIVE_COMMIT is ignored and the latest > commit is checked out instead. The ebuild inherits git-r3.eclass: https://github.com/Tox/gentoo-overlay-tox/blob/master/net-libs/tox/tox-9999.ebuild
This is pretty much a design issue since EVCS_OFFLINE pretty much disables everything but checking out whatever was checked out last. Help changing that would be appreciated. I'm not sure what would be the best solution. Possibly we could change 'fetch' to disable only operations actually involving network I/O while leave repo modifications on.
Good news! It turns out that my code was better than I thought, and it was quite easy to disable the fetching part without disabling the ref-update part. Pushed now, there might be minor bugs in rare scenarios but seems to work well for switching branches/tags/commits. commit b6f85379dcb5e962ccd6136ab03e2637542eb5e0 Author: Michał Górny <mgorny@gentoo.org> Date: Thu May 26 12:09:38 2016 git-r3.eclass: Support switching refs with EVCS_OFFLINE, #575898