From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org)
	by finch.gentoo.org with esmtp (Exim 4.60)
	(envelope-from <gentoo-dev+bounces-52105-garchives=archives.gentoo.org@lists.gentoo.org>)
	id 1SaRCo-0001Qe-0e
	for garchives@archives.gentoo.org; Fri, 01 Jun 2012 12:43:50 +0000
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id E8C0CE0517;
	Fri,  1 Jun 2012 12:43:24 +0000 (UTC)
Received: from mail-bk0-f53.google.com (mail-bk0-f53.google.com [209.85.214.53])
	by pigeon.gentoo.org (Postfix) with ESMTP id 29137E04D2
	for <gentoo-dev@lists.gentoo.org>; Fri,  1 Jun 2012 12:42:27 +0000 (UTC)
Received: by bkcjk13 with SMTP id jk13so2058068bkc.40
        for <gentoo-dev@lists.gentoo.org>; Fri, 01 Jun 2012 05:42:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=mime-version:sender:in-reply-to:references:date
         :x-google-sender-auth:message-id:subject:from:to:content-type
         :content-transfer-encoding;
        bh=aRzzDaikFcqZxdi8+KLR58zdQz2D0yXvrJtr3aUU2fI=;
        b=Q+seNcj6is4i+hnVMIi+dlgMi3h3lAs/oSz8/XXPcQR8jQHzM89S8s/0vRj/qs/7YX
         QFjMj1gHZjMKH72XQtELqmcSldROU6jPp7fsag+mKRW48V9lJ2KoXvGq8wKjdezFTxBS
         HhQNBFWvoSxhJUk0PUSjxFVh/efRRMuRCTuMJgbdOfkbSe922mrdi7uaA3+ckb7RSQir
         KXXMvpVaKvEqPgnuq1UBUAn+84+rqobniQks+SjeHyiM5ZuKvUAmR8bYX+cpFTAQloQx
         lJJBLfY1kcpPvOGzEtMnK5Rl2L/F6HSwNB83YM2gUyPG2X/jNXV7CtoGExtWgvh1Fwox
         yI+w==
Precedence: bulk
List-Post: <mailto:gentoo-dev@lists.gentoo.org>
List-Help: <mailto:gentoo-dev+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-dev+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-dev+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-dev.gentoo.org>
X-BeenThere: gentoo-dev@lists.gentoo.org
Reply-to: gentoo-dev@lists.gentoo.org
MIME-Version: 1.0
Received: by 10.204.149.216 with SMTP id u24mr1679192bkv.36.1338554547079;
 Fri, 01 Jun 2012 05:42:27 -0700 (PDT)
Sender: freemanrich@gmail.com
Received: by 10.204.149.211 with HTTP; Fri, 1 Jun 2012 05:42:27 -0700 (PDT)
In-Reply-To: <CAATnKFA0qe4n55Yv1j2DJZYPwrV8pVaeBi+MRO1r4wLUfJrE_w@mail.gmail.com>
References: <ddd8ff651a1f5d00ea13fbd9e105ddfa@omrb.pnpi.spb.ru>
	<CAGfcS_kOCDZ6Ur37+YYx4DR+1b3c-VWE6eNiefS7HJbqtuKKJA@mail.gmail.com>
	<pan.2012.05.30.09.38.51@cox.net>
	<CAKmKYaCgdi8uFssF=7rMhAunAs4=qRPgycT0uJYLVGQOhXkuLA@mail.gmail.com>
	<CAGfcS_kezhc3ZyfU6Kt1kXCDZqd3VydTjF3BeSt2moEDkbaOSA@mail.gmail.com>
	<pan.2012.05.30.13.06.45@cox.net>
	<robbat2-20120530T183226-760252197Z@orbis-terrarum.net>
	<CAKmKYaBPFXtgPVtY4UQvnD1AjN0oYRz0cDLmZuGzPNNSGnS9YQ@mail.gmail.com>
	<robbat2-20120531T163959-415201853Z@orbis-terrarum.net>
	<CAGfcS_mSMrS5oYJL3+v2qiCN=efNPestH3je2L7fLvmch2sdVQ@mail.gmail.com>
	<20120531191804.GA24784@linux1>
	<20120531213303.57529c85@pomiocik.lan>
	<79847e2567d341102303362662063b0d@omrb.pnpi.spb.ru>
	<CAATnKFDDg-3Kp-z5STFa8QxMPyd9EcQRoXkZMkeF2LkpW0V3Xw@mail.gmail.com>
	<CAGfcS_nGgOpA2BdPOA++M3EeG6j34KpAsNexuZ=zN6s-YqqW5Q@mail.gmail.com>
	<CAATnKFA814-G3NwaNddmmjnN=5L5tOsk1dw+SHO861STwkfrZQ@mail.gmail.com>
	<CAGfcS_k9SHiRbzXee14giw6eF53whPR4K=6KC6roSbs8mDRXMQ@mail.gmail.com>
	<CAATnKFA0qe4n55Yv1j2DJZYPwrV8pVaeBi+MRO1r4wLUfJrE_w@mail.gmail.com>
Date: Fri, 1 Jun 2012 08:42:27 -0400
X-Google-Sender-Auth: hMZoavgeQ9UHBkZ6WBaxuFmfllc
Message-ID: <CAGfcS_nxsfnRsDWq=Nc-eE6KR0s5tsY9MdKsORPCfVUXCF1Kag@mail.gmail.com>
Subject: Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver
From: Rich Freeman <rich0@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
X-Archives-Salt: 2b4187fe-77a5-41a7-884f-09bb9bc6fdff
X-Archives-Hash: aea3e2c73cbd8cc241e045eace2cf46f

On Fri, Jun 1, 2012 at 7:23 AM, Kent Fredric <kentfredric@gmail.com> wrote:
>
> Nope, at least not as far as I can tell, and I just implemented commit
> signature verification >_>

I've been trying to find an example of a signed commit, but can't find
one anywhere, so it is hard to tell what it is doing without going
through the git source carefully.  If you have an example of a signed
commit feel free to send it to me.

Note that I am NOT interested in the output of any git operation (such
as git log --show-signature, git show, etc) - these are all processed
and do not reveal what is actually going on.  I want a copy of the
actual file containing the signature.  If the signature is embedded in
the commit then I want the file in the objects directory tree that
contains the commit.  They're just compressed text files (though it is
a bit of a pain to decompress them).

> Not nessecarily. Given that :
>
> =A0a file with a given content has a fixed SHA
> A tree is just a list of these SHA's , and that in turn is referenced
> by SHA, so if 2 commits have identical file content, their 'tree' sha
> will be the same ( in theory ).
>
> So that means, if you perform a rebase, assuming the filesystem looks
> the same as it did before the rebase, it will have the same SHA1 for
> the tree, regardless of the process of how it got to be that way.

The filesystem WON'T look the same after a rebase.

quick example (operations done in this order):

file in commit A in master:
1
2
3
4
5

file in commit B in a branch off of master:
1
2a
3
4
5

file in commit C in master:
1
2
3
4a
5

if you merge master into the branch you'll end up with a new commit D
whose parent is B that looks like:
1
2a
3
4a
5

if instead you rebase master into the branch you'll end up with a new
commit D whose parent is C that looks like:
1
2a
3
4a
5

The history for the branch will no longer contain B.  If there were 14
commits B1..14 you'd end up with 14 commits D1.14 that each contain
the line 4a.  None of them would use the same trees as B1..14, and
they can't use the same signatures as a result, even if only the tree
was signed.   As far as the new history was concerned, line 4a was
there before the branch was started.

At least, that is my understanding of rebasing.  Again, I'm a bit of a
git novice, but I never really grokked git until I saw a presentation
that didn't start with commands, but instead started out with just
walking through the actual structure of the repository.  Once you grok
the COW model I find it all clicks into place.

Rich