From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] disable grafts during fetch/push/bundle
Date: Wed, 5 Mar 2014 14:28:38 -0500 [thread overview]
Message-ID: <20140305192837.GA11304@sigill.intra.peff.net> (raw)
In-Reply-To: <xmqqppm0h2ti.fsf@gitster.dls.corp.google.com>
On Wed, Mar 05, 2014 at 11:18:17AM -0800, Junio C Hamano wrote:
> Jeff King <peff@peff.net> writes:
>
> > On Wed, Mar 05, 2014 at 10:49:24AM -0800, Junio C Hamano wrote:
> >
> >> ... the plan, at least in my mind, has always been exactly that: grafts
> >> were a nice little attempt but is broken---if you really wanted to
> >> muck with the history without rewriting (which is still discouraged,
> >> by the way), do not use "graft", but use "replace".
> >
> > I certainly had in the back of my mind that grafts were a lesser form of
> > "replace", and that eventually we could get rid of the former. Perhaps
> > my question should have been: "why haven't we deprecated grafts yet?".
>
> Given that we discourage "grafts" strongly and "replace" less so
> (but still discourage it), telling the users that biting the bullet
> and rewriting the history is _the_ permanent solution, I think it is
> understandable why nobody has bothered to.
Perhaps the patch below would help discourage grafts more?
The notable place in the documentation where grafts are still used is
git-filter-branch.txt. But since the example there is about cementing
rewritten history, it might be OK to leave.
I used "outdated" below. We could also up the ante to "deprecated".
-- >8 --
Subject: [PATCH] docs: mark info/grafts as outdated
We should be encouraging people to use git-replace instead.
Signed-off-by: Jeff King <peff@peff.net>
---
Documentation/gitrepository-layout.txt | 4 ++++
Documentation/glossary-content.txt | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/Documentation/gitrepository-layout.txt b/Documentation/gitrepository-layout.txt
index aa03882..17d2ea6 100644
--- a/Documentation/gitrepository-layout.txt
+++ b/Documentation/gitrepository-layout.txt
@@ -176,6 +176,10 @@ info/grafts::
per line describes a commit and its fake parents by
listing their 40-byte hexadecimal object names separated
by a space and terminated by a newline.
++
+Note that the grafts mechanism is outdated and can lead to problems
+transferring objects between repositories; see linkgit:git-replace[1]
+for a more flexible and robust system to do the same thing.
info/exclude::
This file, by convention among Porcelains, stores the
diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt
index 378306f..be0858c 100644
--- a/Documentation/glossary-content.txt
+++ b/Documentation/glossary-content.txt
@@ -176,6 +176,10 @@ current branch integrates with) obviously do not work, as there is no
you can make Git pretend the set of <<def_parent,parents>> a <<def_commit,commit>> has
is different from what was recorded when the commit was
created. Configured via the `.git/info/grafts` file.
++
+Note that the grafts mechanism is outdated and can lead to problems
+transferring objects between repositories; see linkgit:git-replace[1]
+for a more flexible and robust system to do the same thing.
[[def_hash]]hash::
In Git's context, synonym for <<def_object_name,object name>>.
--
1.8.5.2.500.g8060133
next prev parent reply other threads:[~2014-03-05 19:28 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-04 17:48 [PATCH] disable grafts during fetch/push/bundle Jeff King
2014-03-04 20:52 ` Junio C Hamano
2014-03-05 0:56 ` Jeff King
2014-03-05 18:49 ` Junio C Hamano
2014-03-05 18:52 ` Jeff King
2014-03-05 19:18 ` Junio C Hamano
2014-03-05 19:28 ` Jeff King [this message]
2014-03-05 20:24 ` Junio C Hamano
2014-03-06 8:42 ` Michael Haggerty
2014-03-06 9:17 ` Christian Couder
2014-03-06 15:56 ` Jeff King
2014-03-06 16:41 ` Michael Haggerty
2014-03-06 17:48 ` Jeff King
2014-03-06 17:49 ` [RFC/PATCH 1/4] replace: refactor command-mode determination Jeff King
2014-03-06 17:49 ` [RFC/PATCH 2/4] replace: use OPT_CMDMODE to handle modes Jeff King
[not found] ` <CAP8UFD2c0UKT8Uyw4j9SzKGx2oLn=o7N-dtvQHPaaBtLT6ggcw@mail.gmail.com>
2014-03-06 18:48 ` Jeff King
2014-03-06 17:49 ` [RFC/PATCH 3/4] replace: factor object resolution out of replace_object Jeff King
2014-03-06 17:51 ` [RFC/PATCH 4/4] replace: add --edit option Jeff King
2014-03-07 1:57 ` Eric Sunshine
2014-03-07 17:17 ` Jeff King
2014-03-06 19:00 ` [PATCH] disable grafts during fetch/push/bundle Junio C Hamano
2014-03-06 19:07 ` Jeff King
2014-03-06 23:01 ` Philip Oakley
2014-03-06 23:29 ` Michael Haggerty
2014-03-06 23:39 ` Junio C Hamano
2014-03-07 7:08 ` Christian Couder
2014-03-07 17:19 ` Jeff King
2014-03-19 22:39 ` Junio C Hamano
2014-03-21 0:49 ` Jeff King
2014-03-06 23:48 ` Philip Oakley
2014-03-04 23:36 ` Eric Sunshine
2014-03-05 0:37 ` Jeff King
2014-03-05 1:00 ` Eric Sunshine
2014-03-05 1:05 ` Jeff King
2014-03-05 1:07 ` Eric Sunshine
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=20140305192837.GA11304@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).