From: "Stephen R. van den Berg" <srb@cuci.nl>
To: git@vger.kernel.org
Subject: [RFC] origin link for cherry-pick and revert
Date: Tue, 9 Sep 2008 15:22:12 +0200 [thread overview]
Message-ID: <20080909132212.GA25476@cuci.nl> (raw)
I've read and digested the old threads about prior and related links.
Here's a new proposal which should be able to pass muster, if I read all
the relevant suggestions and objections in the old threads:
Consider an origin field as such:
commit bbb896d8e10f736bfda8f587c0009c358c9a8599
tree b83f28279a68439b9b044bccc313bbeaa3e973f5
parent ed0f47a8c431f27e0bd131ea1cf9cabbd580745b
origin d2b9dff8a08cc2037a7ba0463e90791f07cb49dd
origin a1184d85e8752658f02746982822f43f32316803 2
author Junio C Hamano <gitster@pobox.com> 1220132115 -0700
committer Junio C Hamano <gitster@pobox.com> 1220153445 -0700
The definition of the origin field reads as follows:
- There can be an arbitrary number of origin fields per commit.
Typically there is going to be at most one origin field per commit.
- At the time of creation, the origin field contains a hash B which refers
to a reachable commit pair (B, B~1). If B has multiple parents and the pair
being referred to needs to be e.g. (B, B~2), then the hash is followed by
a space and followed by an integer (base10, two in this case),
which designates the proper parentnr of B (see: mainline in git
cherry-pick/revert).
- In an existing repository gc/prune shall not delete commits being
referred to by origin links.
- During fetch/push/pull the full commit including the origin fields is
transmitted, however, the objects the origin links are referring to
are not (unless they are being transmitted because of other reasons).
- When fetching/pulling it is optionally possible to tell git to
actually transmit objects referred to by origin links even if it would
otherwise not have done so.
- git cherry-pick/revert allow for the creation of origin links only if
the object they are referring to is presently reachable.
- git fsck will traverse origin links, but will stay silent if the
object an origin link points to is unreachable (kind of like a shallow
repository).
- git rev-list --topo-order will take origin links into account to
ensure proper ordering.
- gitk allows for (e.g.) dotted lines to show the origin links.
- git log would show something like:
commit bbb896d8e10f736bfda8f587c0009c358c9a8599
Origin: d2b9dff..53d1589
Origin: a1184d8..e596cdd
Author: Junio C Hamano <gitster@pobox.com>
Date: Sat Aug 30 14:35:15 2008 -0700
Note that for easy viewing: git diff d2b9dff..53d1589
will show the exact diff the origin link is referring to.
- git log --graph will show a dotted line of somesort just like gitk.
- git blame will follow and use the origin link if the object exists.
- git merge disregards the whole origin field entirely, just like all
the rest of git-core.
Anything I missed?
--
Sincerely,
Stephen R. van den Berg.
"Be spontaneous!"
next reply other threads:[~2008-09-09 13:23 UTC|newest]
Thread overview: 137+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-09 13:22 Stephen R. van den Berg [this message]
2008-09-09 13:38 ` [RFC] origin link for cherry-pick and revert Paolo Bonzini
2008-09-09 14:04 ` Stephen R. van den Berg
2008-09-09 13:48 ` Stephen R. van den Berg
2008-09-09 15:44 ` Jakub Narebski
2008-09-09 16:38 ` Steven Grimm
2008-09-09 19:43 ` Stephen R. van den Berg
2008-09-09 19:59 ` Jeff King
2008-09-09 20:25 ` Stephen R. van den Berg
2008-09-09 20:42 ` Junio C Hamano
2008-09-09 20:47 ` Shawn O. Pearce
2008-09-09 20:50 ` Jeff King
2008-09-09 22:35 ` Jakub Narebski
2008-09-09 23:07 ` Jakub Narebski
2008-09-10 8:10 ` Paolo Bonzini
2008-09-10 0:13 ` Stephen R. van den Berg
2008-09-10 1:59 ` Junio C Hamano
2008-09-10 5:38 ` Stephen R. van den Berg
2008-09-09 21:05 ` Junio C Hamano
2008-09-09 21:09 ` Jeff King
2008-09-09 23:36 ` Stephen R. van den Berg
2008-09-09 20:54 ` Jakub Narebski
2008-09-09 23:08 ` Stephen R. van den Berg
2008-09-09 23:35 ` Linus Torvalds
2008-09-09 23:58 ` Stephen R. van den Berg
2008-09-10 0:23 ` Linus Torvalds
2008-09-10 5:42 ` Stephen R. van den Berg
2008-09-10 15:30 ` Linus Torvalds
2008-09-10 23:09 ` Stephen R. van den Berg
2008-09-11 0:39 ` Linus Torvalds
2008-09-11 6:22 ` Stephen R. van den Berg
2008-09-11 8:20 ` Jakub Narebski
2008-09-11 12:31 ` Stephen R. van den Berg
2008-09-11 13:51 ` Theodore Tso
2008-09-11 15:32 ` Stephen R. van den Berg
2008-09-11 18:00 ` Theodore Tso
2008-09-11 19:03 ` Stephen R. van den Berg
2008-09-11 19:33 ` Nicolas Pitre
2008-09-11 19:44 ` Stephen R. van den Berg
2008-09-11 20:03 ` Nicolas Pitre
2008-09-11 20:24 ` Stephen R. van den Berg
2008-09-11 20:05 ` Jakub Narebski
2008-09-11 20:22 ` Stephen R. van den Berg
2008-09-12 0:30 ` A Large Angry SCM
2008-09-12 5:39 ` Stephen R. van den Berg
2008-09-11 20:04 ` Theodore Tso
2008-09-11 21:46 ` Jeff King
2008-09-11 22:56 ` Stephen R. van den Berg
2008-09-11 23:01 ` Jeff King
2008-09-11 23:17 ` Stephen R. van den Berg
2008-09-11 23:10 ` Linus Torvalds
2008-09-11 23:26 ` Jeff King
2008-09-11 23:36 ` Stephen R. van den Berg
2008-09-11 15:02 ` Nicolas Pitre
2008-09-11 16:00 ` Stephen R. van den Berg
2008-09-11 17:02 ` Nicolas Pitre
2008-09-11 18:44 ` Stephen R. van den Berg
2008-09-11 20:00 ` Nicolas Pitre
2008-09-11 21:05 ` Junio C Hamano
2008-09-11 22:32 ` Stephen R. van den Berg
2008-09-11 22:40 ` Stephen R. van den Berg
2008-09-11 12:28 ` A Large Angry SCM
2008-09-11 12:39 ` Stephen R. van den Berg
2008-09-12 0:03 ` A Large Angry SCM
2008-09-12 0:13 ` Stephen R. van den Berg
2008-09-11 15:39 ` Linus Torvalds
2008-09-11 16:01 ` Paolo Bonzini
2008-09-11 16:23 ` Linus Torvalds
2008-09-11 20:16 ` Stephen R. van den Berg
2008-09-11 16:53 ` Jakub Narebski
2008-09-11 19:23 ` Stephen R. van den Berg
2008-09-11 19:45 ` Nicolas Pitre
2008-09-11 19:55 ` Stephen R. van den Berg
2008-09-11 20:27 ` Nicolas Pitre
2008-09-12 8:50 ` Stephen R. van den Berg
2008-09-11 21:01 ` Theodore Tso
2008-09-12 8:40 ` Stephen R. van den Berg
2008-09-10 8:30 ` Paolo Bonzini
2008-09-10 15:32 ` Linus Torvalds
2008-09-10 15:37 ` Paolo Bonzini
2008-09-10 15:43 ` Linus Torvalds
2008-09-10 15:46 ` Linus Torvalds
2008-09-10 15:57 ` Paolo Bonzini
2008-09-10 23:15 ` Stephen R. van den Berg
2008-09-10 16:23 ` Jakub Narebski
2008-09-11 23:28 ` Sam Vilain
2008-09-11 23:44 ` Linus Torvalds
2008-09-12 2:24 ` Sam Vilain
2008-09-12 5:47 ` Stephen R. van den Berg
2008-09-12 6:19 ` Rogan Dawes
2008-09-12 6:56 ` Stephen R. van den Berg
2008-09-12 14:58 ` Theodore Tso
2008-09-12 15:05 ` Paolo Bonzini
2008-09-12 15:11 ` Jakub Narebski
2008-09-12 15:40 ` Paolo Bonzini
2008-09-12 16:00 ` Theodore Tso
2008-09-12 15:54 ` Stephen R. van den Berg
2008-09-12 16:19 ` Jeff King
2008-09-12 16:43 ` Stephen R. van den Berg
2008-09-12 18:44 ` Theodore Tso
2008-09-12 20:56 ` Stephen R. van den Berg
2008-09-15 12:21 ` Sam Vilain
2008-09-09 23:59 ` Jakub Narebski
2008-09-09 21:13 ` Petr Baudis
2008-09-09 22:56 ` Stephen R. van den Berg
2008-09-09 23:05 ` Petr Baudis
2008-09-09 23:32 ` Stephen R. van den Berg
2008-09-10 9:35 ` [RFC] origin link for cherry-pick and revert, and more about porcelain-level metadata Paolo Bonzini
2008-09-10 10:44 ` Petr Baudis
2008-09-10 11:49 ` Stephen R. van den Berg
2008-09-10 12:30 ` Petr Baudis
2008-09-10 13:14 ` Stephen R. van den Berg
2008-09-10 14:33 ` Dmitry Potapov
2008-09-10 15:15 ` Stephen R. van den Berg
2008-09-10 15:24 ` Paolo Bonzini
2008-09-10 12:21 ` [RFC] origin link for cherry-pick and revert Theodore Tso
2008-09-10 14:16 ` Stephen R. van den Berg
2008-09-10 15:10 ` Jeff King
2008-09-10 21:50 ` Stephen R. van den Berg
2008-09-10 21:54 ` Jeff King
2008-09-10 22:34 ` Stephen R. van den Berg
2008-09-10 22:55 ` Jeff King
2008-09-10 23:19 ` Stephen R. van den Berg
2008-09-11 5:16 ` Paolo Bonzini
2008-09-11 7:55 ` Stephen R. van den Berg
2008-09-11 8:45 ` Paolo Bonzini
2008-09-11 12:33 ` A Large Angry SCM
2008-09-11 2:46 ` Nicolas Pitre
2008-09-10 16:18 ` Theodore Tso
2008-09-10 16:40 ` Petr Baudis
2008-09-10 17:58 ` Paolo Bonzini
2008-09-10 22:44 ` Stephen R. van den Berg
2008-09-10 8:45 ` Paolo Bonzini
2008-09-23 13:51 ` Recording "partial merges" (was: Re: [RFC] origin link for cherry-pick and revert) Peter Krefting
2008-09-10 20:32 ` [RFC] origin link for cherry-pick and revert Miklos Vajna
2008-09-10 20:55 ` Nicolas Pitre
2008-09-10 21:06 ` Miklos Vajna
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=20080909132212.GA25476@cuci.nl \
--to=srb@cuci.nl \
--cc=git@vger.kernel.org \
/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.