emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Everyone, please stop making my life more difficult


From: David Kastrup
Subject: Re: Everyone, please stop making my life more difficult
Date: Fri, 12 Sep 2014 17:51:56 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux)

Sam Steingold <address@hidden> writes:

>> * David Kastrup <address@hidden> [2014-09-12 16:36:59 +0200]:
>>
>> Sam Steingold <address@hidden> writes:
>>
>>> I.e., I make a commit X today and tomorrow rebase (= remove X; pull from
>>> upstream; reapply X) it.
>>> Is X now dated today or tomorrow?
>>> If the answer is "tomorrow", this looks like a bug.
>>
>> If the commit timestamp were anything but "tomorrow" it would be a
>> bug.  The whole point of a commit timestamp is to track who created a
>> commit when.  Since a rebase creates commits, obviously the commit
>> timestamp will correspond to the time of the rebase, and the commit
>> author will correspond to the person doing the rebase.

Replace "commit author" with "committer" here since using "author" is
confusing in this context:

commit 85e17384aceddcb761f48f95ee2244a60f9e8408
Author:     David Kastrup <address@hidden>
AuthorDate: Fri Sep 12 10:48:20 2014 +0200
Commit:     David Kastrup <address@hidden>
CommitDate: Fri Sep 12 14:18:26 2014 +0200

    Let Lyric_combine_music_iterator use SyllableEvent

> I thought that rebase _moves_ commits, not _creates_ them anew.
> Just like "mv" does not change ctime of a file,
> rebase must not change the commit time.

Then you lack a fundamental understanding of what constitutes a "commit"
in Git's terms.  A commit is identified by its commit hash, and what is
hashed is the entire commit metadata including the ancestors of a
commit, its own commit date and committer and the corresponding tree.

Rebasing creates new commits with a new identity and commit hash,
retaining a substantial amount of headers _not_ including committer and
commit date.  And obviously also not generally including the same
ancestry or the rebase would be pretty pointless.

The committer is the person responsible for a commit being in a
repository (mirroring, and non-rebasing push or pull are just
duplications and neither change commit ids not commit metadata).  The
author is the one who is more or less considered responsible for
creating its content.

-- 
David Kastrup




reply via email to

[Prev in Thread] Current Thread [Next in Thread]