I’d been waiting for Git sync for very long time since I knew Funtoo Linux has it. Three months after reading about new portage plug-in sync system news item, I finally have the first taste of Git sync.

Note

In August, three months after this post was originally published, Gentoo’s development has switched to Git and there is also an annoucement on mailing list. (2015-09-17T23:01:52Z)

You only need to edit /etc/portage/repos.conf/gentoo.conf as follows, which uses gentoo-mirror repository:


[gentoo]
# sync-type = rsync
# sync-uri = rsync://rsync.us.gentoo.org/gentoo-portage

# location = /var/db/repos/gentoo
location = /usr/portage
sync-type = git
sync-uri = https://github.com/gentoo-mirror/gentoo
auto-sync = true

I decided to keep using /usr/portage instead of /var/db/repos/gentoo, don’t know if there is any drawback. I did the following as root:


% mv /usr/portage{,.old}
% eix-sync
% rm -rf /usr/portage.old

eix-sync runs normally without any modifications. I don’t use any overlay, so I don’t think the repository would get unnecessary multiple syncs.

I checked with emerge.log, the rsync took about 300 seconds, Git sync only little over 120 seconds.

I also checked the disk usage with du -sh, the old one is 3GB, the Git is little shy of 1GB. I don’t know why there is such big difference. I actually expected to see a slighter bigger in Git, even it’s default shallow clone, it must have some additional files. Surprise, it’s less than half.

Anyway, it’s very easy to make a switch. Happy Git-syncing, fellows!