Gentoo Archives: gentoo-dev

From: Brian Dolbec <dolsen@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: My masterplan for git migration (+ looking for infra to test it)
Date: Tue, 16 Sep 2014 18:41:17
Message-Id: 20140916114055.37702674.dolsen@gentoo.org
In Reply to: Re: [gentoo-dev] Re: My masterplan for git migration (+ looking for infra to test it) by "W. Trevor King"
1 On Tue, 16 Sep 2014 10:52:13 -0700
2 "W. Trevor King" <wking@×××××××.us> wrote:
3
4 > On Tue, Sep 16, 2014 at 05:35:08PM +0000, Duncan wrote:
5 > > W. Trevor King posted on Mon, 15 Sep 2014 13:33:46 -0700 as
6 > > excerpted:
7 > > > On Mon, Sep 15, 2014 at 01:29:44PM -0700, W. Trevor King wrote:
8 > > >> I don't see any benefit to using rsync vs. a shallow clone as the
9 > > >> transmission protocol.
10 > > >
11 > > > Other than the fact that before you dropped it you'd need to push
12 > > > a ‘emerge sync’ that could handle either rsync or Git, stabilize
13 > > > that Portage, and then wait for folks to adopt it.
14 > >
15 > > Portage already handles it. =:^)
16 >
17 > Oh, lovely :). Looks like that landed in 2.2.0 with 47e8d22d (Add
18 > support for multiple repositories in `emerge --sync`, 2013-07-23).
19 > There are older Portages in the tree though (back to 2.1.6.7_p1), so
20 > you'd still want to wait until those were gone before dropping rsync.
21 >
22 > Also, I don't see a way to say “use Git to sync, but keep a shallow
23 > repository”. Ideally, we'd want:
24 >
25 > $ git clone --depth=1 git://git.gentoo.org/gentoo-portage.git
26 >
27 > for the initial clone (modulo whatever URI), and:
28 >
29 > $ git pull --depth=1
30 >
31 > for subsequent syncs. pym/_emerge/actions.py currently hardcodes ‘git
32 > pull’ for the latter, and doesn't seem to have any code for the
33 > former. On the other hand, it wouldn't be too terrible to force users
34 > to shallow their history manually whenever they felt like it.
35 >
36 > Cheers,
37 > Trevor
38 >
39
40 The depth option will be added to the new portage plugin-sync system in
41 final stages of development now.
42
43 There will be 2 new repos.conf options
44
45 1 for new repo install
46 eg. git clone: --depth=1
47
48 another for sync options:
49 eg. git pull: --rebase origin master
50 this will allow changes to a repo in a different branch be
51 updated from the master branch.
52
53 they will be repo specific options, not global.
54
55
56 The new system will allow
57 emerge-webrync type repos to be synced via emerge --sync instead of the
58 emerge-webrsync command. Plus it will add an svn type and the ability
59 for a layman type which layman already has code for. Layman is just
60 waiting for the new sync system to land in portage's master branch
61 before enabling it to be installed. It will also allow for third party
62 sync modules to be created and easily installed. So a squashfs sync
63 type could be created and installed for those repos where that a
64 squashfs tree is offered.
65
66 --
67 Brian Dolbec <dolsen>

Attachments

File name MIME type
signature.asc application/pgp-signature