Gentoo Archives: gentoo-scm

From: "Robin H. Johnson" <robbat2@g.o>
To: gentoo-scm@l.g.o
Subject: Re: [gentoo-scm] Notes from a recent meeting; Updated conversion
Date: Tue, 26 Oct 2010 19:15:53
Message-Id: robbat2-20101026T191339-973593876Z@orbis-terrarum.net
In Reply to: [gentoo-scm] Notes from a recent meeting; Updated conversion by Donnie Berkholz
1 On Tue, Oct 26, 2010 at 11:35:51AM -0500, Donnie Berkholz wrote:
2 > 1. http://etherpad.osuosl.org/gsoc-gentoo-dev
3 I don't trust the durability of this link, so I'm including the
4 plaintext version here.
5
6 Gentoo Developers Meeting:
7
8 Attending:
9 * ramereth - Lance Albertson
10 * dberkholz - Donnie Berkholz
11 * robbat2 - Robin H. Johnson
12 * calchan - Denis Dupeyron
13 * John "warthog9" Hawley @ kernel.org
14 * Shawn Pierce @ git
15 * bicatali - Sebastien Fabbro
16 * Corbin "MostAwesomeDude" Simpson @ OSUOSL
17 * Harris Wong - Inclusive Design Institute
18 * Francecsco Biscani @ European Space Agency (gentoo users...)
19 * Dario Izzo @ ESA
20
21 Switching to git:
22 * Talked about it for 4 years
23 * People are too busy
24 * Tracker bug: http://bugs.gentoo.org/show_bug.cgi?id=333531
25 * Last status: http://archives.gentoo.org/gentoo-scm/msg_c0f2f8f123f85bb8b664827b4a1dcb09.xml
26
27 Main Topics: Signing Commits, Repository Layout, Other Blockers
28
29 Signed commits / verifying pusher ID
30 * Preventing forgery in commits via signing commits
31 * JH: overdesigning the fix
32 * Mercurial has the functionality but has other issues like performance
33 * Can we trust our developers? We don't trust people to keep their machines secure.
34 * Want all developers to have commit access
35
36 Can we use tags for signed commits?
37 * Can't revoke a tag
38 * Can't remove the tags
39 * Non-fast-forward merges would lose signatures
40 * The commit ID changes post-merge, and it's part of the SHA1 so the sig fails on signed tags (or anything else based on `git show`)
41 * If rebases are required before pushing, this should eliminate the problem
42
43 How about git notes?
44 * git show | gpg foo | git note
45 * What happens if someone edits the note afterwards? Hard to look through the notes
46 * notes are separate
47 * Using notes as a gpg-signed "signed-off-by"
48 * Post-hook putting username/date in the note on the server would verify the pusher, so forgery of author/committer would not allow shifting the "blame"
49
50 Other options
51 * The "update-paranoid" hook in git/contrib/ maps usernames on the server to committers
52 * Unfortunately this breaks pulling from any other committers without adding them to the "verified committer" list for that user
53 * The Gerrit code-review tool has repository-management controls so we could force all commits through it
54 * Turning on the git reflog on the server
55 * Check who's pushing, look up GECOS data and fill out committer line
56 * Set reflogs to never expire
57 * Could commit reflogs to a git submodule that's cloned on-demand for anyone wanting to verify
58 * Unfortunately the last reflog commit couldn't be signed, but everything up to that could be
59 * Developers could use signed tags for each push and upload to individual repos. Then a server process would look for tags, verify them, pull the branch, but strip the tags so the main repo doesn't clog up.
60
61
62 Repo layout
63 * Natural option (seems to be used by most projects) is one package per repo
64 * Main problems: how to manage initial clones, updates, package moves, category moves
65 * The "repo" tool written for Android can handle most of this
66 * Renaming packages a problem (requires admin participation)
67 * Average 1-2/week over the past few years
68 * Moving packages between categories can be done by committers
69
70 What the problem is:
71
72 -------------- ---> git.git
73 | giant .git |
74 --------------
75
76 In Gentoo terms, pulling one package from an overlay or other small repository (git.git) into the main repository (giant .git) is basically impossible while preserving history. This gets even more complex if you envision managing the upstream source in the same repo as the ebuild, with patches as commits (see vcs-pkg.org for discussion on best practices with DVCS).
77
78
79 Thin Manifests
80 * Avoid conflicts with digests of every file and signatures in the Manifest
81 * Already implemented for Funtoo
82
83
84 Preupload tracker bug #333685 - solution on the ML but needs a patch written, should be trivial
85 * Basic idea: don't let people do initial clones on the repo because repacking is too demanding. Require them to externally download a git bundle for initial setup (or extremely outdated clones).
86 * Checks the "I have this commit" passed at upload time
87 * Existing patch to git list needs to get rewritten (ford_prefect)
88 * Security concern that users on local system wouldn't trust it
89 * Solution: A new config option to git-daemon supplied on the CLI that is passed on the CLI to upload-pack.
90
91
92 Narrow (partial-tree) clones
93 * Nice but not a requirement
94 * Recent patch on git list
95 * Multiple per-package repos would also solve this
96
97
98 --
99 Robin Hugh Johnson
100 Gentoo Linux: Developer, Trustee & Infrastructure Lead
101 E-Mail : robbat2@g.o
102 GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85

Replies

Subject Author
[gentoo-scm] meeting followup: repo layout "Robin H. Johnson" <robbat2@g.o>
[gentoo-scm] meeting followup: commit signing "Robin H. Johnson" <robbat2@g.o>