From: Jakub Narebski <jnareb@gmail.com>
To: Petr Baudis <pasky@suse.cz>
Cc: git@vger.kernel.org, Panagiotis Issaris <takis.issaris@uhasselt.be>
Subject: Re: FFmpeg considering GIT
Date: Fri, 4 May 2007 02:42:45 +0200 [thread overview]
Message-ID: <200705040242.46156.jnareb@gmail.com> (raw)
In-Reply-To: <20070503010312.GF4489@pasky.or.cz>
Petr Baudis wrote:
> On Thu, May 03, 2007 at 01:48:26AM CEST, Jakub Narebski wrote:
>> About removing a commit: assume that you have the following history
>> The problem exists _only_ if somebody based his/her work on commit
>> C or its descendant, i.e. original D, E commits. He/she would have
>> to rebase his/her work on top of _changed_ (moved) commits D' and E'.
>
> "_Only_"?
>
> I think it's just totally unsustainable to do this history rewriting in
> an "upstream" git repository. You will get horridly confused, then
> frustrated and then just move from software development to beekeeping.
Perhaps I should have said: "There always would be problems if somebody
based his/her work on commit C or its descendant..."
But there are some times when you can rewrite history without bad
consequences.
You can without any problems rewrite _unpublished_ commits; if one for
example pushes to public repo once per day, or few times a week,
there is time to remove a commit, or amend a commit, or change commit
deeper in a history. Or even use StGIT to manage patches, and change
their sequence, add patch in the midle of patch series, split or join
patches, all that working on creating 'a perfect patch [series]'.
You can rewrite a branch which never would be published, like feature
branches in git.git repository (which are visible only via 'pu' -- proposed
updates branch, which is meant to have history rewritten). Or you can
announce that given branch might be rewritten, and not to base any work
on it (well, you can, but you always should rebase before sending).
Because there always are, and always will be problems if somebody would
base work on series including now removed commit, even if SCM need not
to rewrite history to remove a commit [*1*]. And with history rewriting
even more so, for example accidental inclusion of removed commit.
Besides I think it would be better to teach blame to ignore reversion
commits (for example based on first line of commit message) than to mess
with the history. Note also that git has more tools for forensic analysis
than git-blame; blame / annotate was added later because people are used
to it (and it is I think better than any other, because it can detect
moving and copying code blocks). The primary examining tools are history
browsing limited to specified pathspec, and pickaxe i.e. searching for
commits which changed given line.
Footnotes:
----------
[1] Git began as content adressed filesystem, where each object is named
by its contents (or rather cryptographics hash function of contents).
This results in hash (object id) of commit identifying whole lineage
of it, and makes signing specified commit (using signed tag)
identifying / signing whole history.
--
Jakub Narebski
ShadeHawk on #git
Poland
next prev parent reply other threads:[~2007-05-04 0:38 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-02 9:29 FFmpeg considering GIT Panagiotis Issaris
2007-05-02 23:48 ` Jakub Narebski
2007-05-03 1:03 ` Petr Baudis
2007-05-04 0:42 ` Jakub Narebski [this message]
2007-05-04 7:21 ` [RFC?] Telling git about more complex relationships between commits (Was: Re: FFmpeg considering GIT) Johan Herland
2007-05-04 9:36 ` Alex Riesen
2007-05-04 11:39 ` Andy Parkins
2007-05-04 12:06 ` Andrew Ruder
2007-05-04 12:30 ` Johan Herland
2007-05-04 11:53 ` Johan Herland
2007-05-04 22:11 ` Alex Riesen
2007-05-05 12:49 ` Johan Herland
2007-05-05 18:03 ` Alex Riesen
2007-05-05 16:13 ` Johan Herland
2007-05-04 11:10 ` Petr Baudis
2007-05-04 12:22 ` Johan Herland
2007-05-03 1:48 ` FFmpeg considering GIT Martin Langhoff
2007-05-03 18:00 ` Uwe Kleine-König
2007-05-03 20:00 ` Petr Baudis
2007-05-03 20:05 ` david
2007-05-03 20:13 ` Petr Baudis
2007-05-04 13:46 ` Michael Niedermayer
2007-05-04 15:53 ` Andy Parkins
2007-05-04 16:09 ` Johannes Sixt
2007-05-04 17:23 ` Florian Weimer
2007-05-04 16:40 ` Nicolas Pitre
2007-05-04 18:17 ` Carl Worth
2007-05-04 18:25 ` Johan Herland
2007-05-04 20:24 ` Michael Niedermayer
2007-05-05 4:15 ` Linus Torvalds
2007-05-05 13:35 ` Karl Hasselström
2007-05-05 17:26 ` Linus Torvalds
2007-05-05 22:18 ` Linus Torvalds
2007-05-05 22:30 ` Linus Torvalds
2007-05-06 7:49 ` Junio C Hamano
2007-05-07 12:13 ` Paul Mackerras
2007-05-07 12:30 ` Karl Hasselström
2007-05-07 12:50 ` Johan Herland
2007-05-07 12:56 ` Alex Riesen
2007-05-08 6:30 ` Marco Costalba
2007-05-09 4:28 ` Paul Mackerras
2007-05-09 6:38 ` Marco Costalba
2007-05-09 18:17 ` Robin Rosenberg
2007-05-09 18:28 ` Jan Hudec
2007-05-09 21:09 ` Fredrik Kuivinen
2007-05-09 21:36 ` Jan Hudec
2007-05-10 11:20 ` Marco Costalba
2007-05-10 16:52 ` Jan Hudec
2007-05-07 17:52 ` Jan Hudec
2007-05-07 22:10 ` Gábor Farkas
2007-05-07 23:21 ` Randal L. Schwartz
[not found] ` <fcaeb9bf0705080707x7ad28afelf98ecd93276042d1@mail.gmail.com>
2007-05-08 15:53 ` Gábor Farkas
2007-05-07 19:10 ` Junio C Hamano
2007-05-08 2:03 ` Shawn O. Pearce
2007-05-08 7:26 ` Jeff King
2007-05-06 7:56 ` Karl Hasselström
2007-05-06 10:19 ` Karl Hasselström
2007-05-06 16:38 ` Linus Torvalds
2007-05-06 8:15 ` Marco Costalba
2007-05-06 11:14 ` Karl Hasselström
2007-05-06 12:19 ` Marco Costalba
2007-05-06 12:33 ` Karl Hasselström
2007-05-06 12:33 ` Marco Costalba
2007-05-06 12:59 ` Karl Hasselström
2007-05-06 13:03 ` Karl Hasselström
2007-05-09 22:30 ` Pavel Roskin
-- strict thread matches above, loose matches on Subject: below --
2007-05-08 3:39 Brett Schwarz
2007-05-08 4:06 ` Paul Mackerras
2007-05-08 4:19 ` Shawn O. Pearce
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200705040242.46156.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=pasky@suse.cz \
--cc=takis.issaris@uhasselt.be \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.