From: Yuri Khan <yuri.v.khan@gmail.com>
To: Alan Mackenzie <acm@muc.de>
Cc: Sergey Organov <sorganov@gmail.com>,
Emacs developers <emacs-devel@gnu.org>
Subject: Re: Obscure error/warning/information message from git pull
Date: Wed, 19 Nov 2014 08:12:38 +0700 [thread overview]
Message-ID: <CAP_d_8X8sOHo98y6vOYJyeEp1vBca7uCXyN-WhUZmv1+O4-+Og@mail.gmail.com> (raw)
In-Reply-To: <20141118224326.GA5167@acm.acm>
On Wed, Nov 19, 2014 at 4:43 AM, Alan Mackenzie <acm@muc.de> wrote:
>
>> Well, given the following history (time goes from left to right):
>
>> - C - D <- foo
>> /
>> ... - A - B
>> \
>> - E - F <- bar
>
>
>> what branch commit A was made on, 'foo' or 'bar'?
>
> Quite clearly, A was committed on branch foo, since bar didn't exist at
> that time.
But git does not know that. For all it knows, bar could be the
original branch and foo branched from it at B. The history above is
symmetrical.
> Are you saying that at B, when bar is branched from foo, git discards
> all information about this branching, remembering only that there are two
> branches which are henceforth of fully equal status where before there
> was just one?
There *is* no information to discard. Heads are completely separate
from the DAG, a thin convenience layer over it, an /etc/hosts analog
for SHA1 hashes. Head names are arbitrary and can be changed at any
time. Indeed, it is a common thing for me to start development on
master and make a few commits:
$ git checkout master
$ hack; git commit
$ hack; git commit
$ hack; git commit
$ hack; git commit
o---o---o---o *master*
/
---o---o origin/master
Oops, it’s going out of control and I will possibly need a couple days
more and I envision a prettifying rebase down the road. Let’s make it
a feature branch.
$ git branch feature
o---o---o---o feature, *master*
/
---o---o origin/master
Put master where it belongs:
$ git reset --hard origin/master
o---o---o---o feature
/
---o---o origin/master, *master*
Now continue work:
$ git checkout feature
$ hack; git commit
o---o---o---o---o *feature*
/
---o---o origin/master, master
If git remembered the branch name with each commit, that retroactive
branching would not be possible.
(Nitpicker’s corner: Some will say such workflows are sloppy and a bad
practice and one should always start work on a feature branch, even if
the feature is a one-liner, and then merge it to master with a
--no-ff. They are missing the point. Git *allows* us to be sloppy and
correct mistakes afterwards, rather than require constant vigilance.)
next prev parent reply other threads:[~2014-11-19 1:12 UTC|newest]
Thread overview: 124+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-14 12:06 Obscure error/warning/information message from git pull Alan Mackenzie
2014-11-14 13:10 ` Tassilo Horn
2014-11-14 13:44 ` Andreas Schwab
2014-11-14 14:14 ` Andrew Burgess
2014-11-14 18:05 ` Alan Mackenzie
2014-11-14 18:58 ` Andreas Schwab
2014-11-14 20:09 ` Alan Mackenzie
2014-11-14 20:41 ` Christoph
2014-11-14 20:52 ` Andreas Schwab
2014-11-14 22:04 ` Alan Mackenzie
2014-11-15 7:28 ` Tassilo Horn
2014-11-15 19:40 ` Florian Weimer
2014-11-15 21:45 ` Alan Mackenzie
2014-11-15 22:02 ` Florian Weimer
2014-11-16 9:10 ` David Kastrup
2014-11-20 2:56 ` Rob Browning
2014-11-14 20:50 ` Tassilo Horn
2014-11-14 20:57 ` Sergey Organov
2014-11-14 21:27 ` Eli Zaretskii
2014-11-14 23:56 ` Michael Welsh Duggan
2014-11-15 7:36 ` David Kastrup
2014-11-14 23:02 ` Alan Mackenzie
2014-11-14 23:17 ` David Engster
2014-11-15 7:52 ` Eli Zaretskii
2014-11-15 8:18 ` David Engster
2014-11-15 8:54 ` Eli Zaretskii
2014-11-14 23:40 ` David Caldwell
2014-11-15 7:40 ` David Kastrup
2014-11-15 8:43 ` Eli Zaretskii
2014-11-15 9:12 ` David Kastrup
2014-11-15 9:53 ` Eli Zaretskii
2014-11-15 10:28 ` David Kastrup
2014-11-15 11:13 ` Eli Zaretskii
2014-11-15 14:30 ` David Kastrup
2014-11-15 17:56 ` Eli Zaretskii
2014-11-15 18:17 ` David Kastrup
2014-11-15 12:05 ` Alan Mackenzie
2014-11-15 14:35 ` David Kastrup
2014-11-15 15:57 ` Michael Welsh Duggan
2014-11-15 16:56 ` David Kastrup
2014-11-15 19:57 ` Alan Mackenzie
2014-11-15 20:48 ` Achim Gratz
2014-11-16 9:33 ` David Kastrup
2014-11-16 9:23 ` David Kastrup
2014-11-16 15:28 ` Eli Zaretskii
2014-11-16 15:47 ` David Kastrup
2014-11-16 13:25 ` Thien-Thi Nguyen
2014-11-16 15:26 ` Tassilo Horn
2014-11-16 15:35 ` Eli Zaretskii
2014-11-16 16:16 ` David Kastrup
2014-11-16 16:44 ` Andreas Schwab
2014-11-16 17:54 ` Eli Zaretskii
2014-11-16 20:24 ` Thien-Thi Nguyen
2014-11-17 11:54 ` Sergey Organov
2014-11-17 14:11 ` Alan Mackenzie
2014-11-18 16:59 ` Sergey Organov
2014-11-18 17:33 ` Eli Zaretskii
2014-11-18 17:58 ` Sergey Organov
2014-11-18 18:18 ` Eli Zaretskii
2014-11-18 18:40 ` David Kastrup
2014-11-18 18:53 ` Eli Zaretskii
2014-11-18 20:57 ` Sergey Organov
2014-11-18 22:43 ` Alan Mackenzie
2014-11-19 0:48 ` Barry Warsaw
2014-11-19 9:50 ` David Kastrup
2014-11-19 1:12 ` Yuri Khan [this message]
2014-11-19 16:18 ` Eli Zaretskii
2014-11-19 16:39 ` Sergey Organov
2014-11-19 16:49 ` Yuri Khan
2014-11-19 4:48 ` Teemu Likonen
2014-11-19 6:57 ` Stephen J. Turnbull
2014-11-19 13:55 ` Teemu Likonen
2014-11-19 8:22 ` Thien-Thi Nguyen
2014-11-19 12:14 ` Achim Gratz
2014-11-19 13:55 ` Alan Mackenzie
2014-11-19 15:00 ` David Kastrup
2014-11-19 15:15 ` Sergey Organov
2014-11-19 15:24 ` Achim Gratz
2014-11-19 15:36 ` David Kastrup
2014-11-19 16:00 ` Sergey Organov
2014-11-19 16:42 ` Stephen J. Turnbull
2014-11-20 0:57 ` Alexis
2014-11-20 15:52 ` Eli Zaretskii
2014-11-19 16:20 ` Eli Zaretskii
2014-11-19 16:36 ` Sergey Organov
2014-11-19 18:40 ` Stephen J. Turnbull
2014-11-19 18:48 ` Eli Zaretskii
2014-11-19 20:05 ` David Kastrup
2014-11-19 20:14 ` Eli Zaretskii
2014-11-20 3:01 ` Stephen J. Turnbull
2014-11-20 15:53 ` Eli Zaretskii
2014-11-19 18:29 ` Teemu Likonen
2014-11-18 23:07 ` Stephen J. Turnbull
2014-11-18 23:35 ` Alan Mackenzie
2014-11-19 1:31 ` Stephen J. Turnbull
2014-11-19 3:43 ` Eli Zaretskii
2014-11-18 21:59 ` John Yates
2014-11-19 3:47 ` Eli Zaretskii
2014-11-19 10:08 ` David Kastrup
2014-11-19 16:19 ` Eli Zaretskii
2014-11-18 22:59 ` Stephen J. Turnbull
2014-11-19 16:16 ` Eli Zaretskii
2014-11-19 16:48 ` Stephen J. Turnbull
2014-11-19 18:44 ` Eli Zaretskii
2014-11-14 21:04 ` David Kastrup
2014-11-14 13:46 ` Andreas Schwab
2014-11-14 13:59 ` Lars Magne Ingebrigtsen
2014-11-14 14:08 ` Tassilo Horn
2014-11-14 15:51 ` Andreas Schwab
2014-11-14 15:53 ` Lars Magne Ingebrigtsen
2014-11-14 20:41 ` Tassilo Horn
2014-11-14 20:52 ` Eli Zaretskii
2014-11-14 16:48 ` Eli Zaretskii
2014-11-14 14:38 ` Eli Zaretskii
2014-11-14 15:50 ` Andreas Schwab
2014-11-14 16:47 ` Eli Zaretskii
2014-11-14 17:03 ` Michael Welsh Duggan
2014-11-14 17:23 ` Eli Zaretskii
2014-11-14 17:30 ` Andreas Schwab
2014-11-14 20:30 ` Eli Zaretskii
2014-11-14 21:12 ` Andreas Schwab
2014-11-14 21:28 ` Eli Zaretskii
2014-11-14 21:18 ` David Kastrup
2014-11-14 21:35 ` Eli Zaretskii
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=CAP_d_8X8sOHo98y6vOYJyeEp1vBca7uCXyN-WhUZmv1+O4-+Og@mail.gmail.com \
--to=yuri.v.khan@gmail.com \
--cc=acm@muc.de \
--cc=emacs-devel@gnu.org \
--cc=sorganov@gmail.com \
/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.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
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.