Why is it experimental? well it hasn't been officially accepted into portage, and as far as I know I'm the only one using it. One of the reason's it's not officially accepted is I haven't documented it.
WARNING: enabling it will cause auto git detection to fail, so if you don't finish setting it up portage will default to rsync.
So first you need to be using my regen2 tree, or get the ebuild and the patch from my tree, and enable the experimental-git flag for sys-apps/portage.
Now, like all the other protocols portage supports you need to set the SYNC variable in /etc/make.conf.
SYNC="git://github.com/regen2/portage.git"the first 6 characters need to be git:// for git to work.
if you don't already have a git repository then sync will clone the repository at this url, in fact you may need to delete your portage and do a fresh clone for things to work in certain situations. I never discerned the reason for this.
now you need to set your method the most reliable, yet slowest is checkout.
PORTAGE_GIT_METHOD="checkout"I believe this method will never experience the problem that drobbins was referring to.
for checkout you also need to set the remote branch you want to run off.
PORTAGE_GIT_REMOTE="origin/regen2.org" changing this variable and resyncing will allow you to change branches. checkout is even immune to upstreams forced updates, which is why I prefer to use it myself as sometimes I force updates on my development branch.PORTAGE_GIT_LOCAL="regen2.org" is also a valid variable, however checkout doesn't use it. It's used by the methods rebase, which will run the git rebase command, this is recommended for people who don't run their own remote repo yet have there own custom git patches.The final method available is merge, it works similar to the current pull behavior of portage, except it will actually merge from whatever remote you have specified into whatever local you have specified.
all methods use git remote update to avoid problems figuring out where to get updates from. I had problems with git knowing what to do with pull, when my origin was my personal repo on github and where I really needed to be updating from was funtoo not origin.
WARNING: git-experimental will probably be where I merge patches such as the upcoming manifest patch.
I'm testing the regen2 portage tree and the new patches for portage. Works fine for now. :)
ReplyDeleteyeah, I think my bug was only caused when you switched method's, and TBH it never made any sense.
ReplyDeleteside note: I'm getting comments in my inbox again, now that I found out that gmail was marking them spam, yay.