On Sun, Jul 30, 2017 at 9:36 AM, John Covici <cov...@ccs.covici.com> wrote:
> On Sun, 30 Jul 2017 09:07:03 -0400,
> Rich Freeman wrote:
>>
>> On Sat, Jul 29, 2017 at 10:58 PM, John Covici <cov...@ccs.covici.com> wrote:
>> >
>> > Well, clone-depth = 0 gave me a syntax error
>>
>> Can you provide the entire contents of your repos.conf, and the error
>> it gives you?
>>
>> I wouldn't use a manual checkout for /usr/portage.  You can of course
>> do a checkout elsewhere but your permissions will probably get messed
>> up if you checkout /usr/portage by hand.
>
> Well, I don't have the error message anymore and I did what I thought
> you suggested -- beffore I got your last message -- I just did a git
> clone of the repository to /usr/portage and the only unusual thing was
> the first time I ran portage, it did its global updates and it seems
> to be working.
>

Well, if your repos.conf still says to use rsync then you can't use
clone-depth in it, since that doesn't work with rsync.  It might also
mean that you now have files owned by root in /usr/portage which an
emerge --sync is going to have trouble dealing with, since it runs
with reduced permissions.  It isn't a big deal - just get repos.conf
the way you want it (either with git or rsync), delete /usr/portage,
and let an emerge --sync re-create it.

If you want to do a git clone I'd do it someplace other than /usr/portage.

You really have a few options here:

1.  If you look at history all the time just set up /usr/portage to be
a git repository with clone-depth=0.  Make sure you use the repository
I linked which has metadata pre-generated - if you sync from the
official Gentoo repo you'll have to rebuild the metadata all the time.
Plus the mirror I linked also has QA checks so that when a developer
breaks something it just won't update until somebody fixes it, which
will save you some grief (maybe 1-2x a year it ends up being a few
days stale).

2.  If you almost never look at history and you care about disk space
then either use rsync or sync with clone-depth=1 to minimize the size
of /usr/portage, and then do a temporary git clone when you really
need it, or browse history online.

Personally I do #1.  I have full history, and it syncs a lot faster
than rsync.  Git is smarter about syncing since it knows about history
and thus what has changed.  However, it has to send all the commits
in-between your current and target state.  If you only sync once a
month it might be faster to use rsync, since rsync only sends the
final version, and not every intermediate one, so files that were both
added and removed in the interim don't get sent.  However, rsync
doesn't know anything about history and has to scan the entire tree to
figure out what has changed.

Oh, if /usr/portage is a git repository refrain from editing anything
in it unless you know what you're doing.  With rsync portage will just
overwrite anything you mess with on the next sync.  With git it will
try to keep those changes around, and it might result in the tree not
syncing if things conflict.  If you're messing with a file for testing
purposes you need to remember to reset/clean when you're done.


-- 
Rich

Reply via email to