[U-Boot-Users] Revised custodian git writeup

Martin Krause Martin.Krause at tqs.de
Wed Jan 23 13:04:34 CET 2008


u-boot-users-bounces at lists.sourceforge.net wrote on :
> > I'm not sure what happens (how git handles it) if patches are
> > applied in different orders.  What I'm thinking about is if
> > custodians #1 and #2 
> 
> git has no notation of order or sequence. It is storing content only.
> If you apply  N  independent,  non-overlapping  patches  in  arbitray
> order,  the result will be the same. The individual commits will have
> different ID's, but who cares?

Huh? Normally the commit IDs are the most important thing I care about
when working with other git repositories. If I try to compare my
git repositroy with another one (mostly the u-boot master branch at
denx) then the commit ID is the only way (I know) to make sure that
my respository contains the exactly same patches than the other
repository. If the topmost patch (or any other) in my respository has
the same commit ID as a patch in the other repository i know for sure,
that my and the other repository are exactly the same (from the
beginnig till the compared patch). If the commit IDs in my repository
have no correspondent in the other repository (because the order of
the patches is different), I know nothing. Even if I find a patch 
with the same commit message, I don't know for sure if the patches 
are the same. Maybe in the other repository is the original patch and
in my repository is an updated version (with the same commit message).
I don't know. 

As far as I understand the git philosophy, using SHA1 signatures as
commit IDs was one of the most important things on git. IMO the goal
behind that was to be able to refere to one particular state in a
git repository by one single commit ID. If I have two git repositories
with de facto the same content, but with different commit IDs, what's
the worth of the SHA1 commit ID?

I often use for example the (partial) commit ID in the U-Boot boot
message to identify from wich particular source state a U-Boot was
built. This only works, if the order of patches is the same in all
git repositories resulting in the same commit IDs. Otherwise I need
to know from wich git repository the U-Boot was built, to identify
the source state it was built from. And then I can't compare this
repository to another (e. g. the denx master), because the same
patches could have different commit IDs. 

I tried this already some time ago (merging my u-boot-tq-group
master branch, instead of rebasing) and get totally lost in a
screwed up history. But maybe I did something wrong.

Best Regards,
Martin Krause




More information about the U-Boot mailing list