From: "Shawn O. Pearce" <spearce@spearce.org>
To: Martin Langhoff <martin.langhoff@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: Grafts workflow for a "shallow" repository...?
Date: Mon, 15 Sep 2008 22:24:25 -0700 [thread overview]
Message-ID: <20080916052425.GA14644@spearce.org> (raw)
In-Reply-To: <46a038f90809152209l2230d9e3o442dac1f5047d2bd@mail.gmail.com>
Martin Langhoff <martin.langhoff@gmail.com> wrote:
> Here is my attempt at a "let's publish a shallow repository for branch
> of moodle". Let me show you what I did...
...
> # 1.7 was a significant release, anything earlier than that
> # is just not interesting -- even for pickaxe/annotate purposes
> # so add a graft point right at the branching point.
...
> Is this kind of workflow (or a variation of it) supported? For this to
> work, we should communicate the grafts in some push operations and
> read them in clone ops - and perhaps in fetch too.
Currently the grafts file isn't transferred over any transport
protocol as it is considered to be local only to the repository.
For one thing, grafts are a security risk. Any user can graft
anything in at any position and log/blame operations will honor
the graft, rather than what is stored in the signed commit chain.
Its a low risk, but it allows a peer to lie to you and give you
something other than what you asked for.
Pushing (or fetching) a graft just seems ugly. You don't want
to fetch a graft if you have no grafts because you have the full
history. Nor do you want to fetch a graft that might possibly
overwrite/replace a graft you already have. You might not want to
push all of your available grafts to a remote. Etc.
I think that in this case the best thing to do is give users
a shell script that does roughly:
git init
echo $BASE >.git/info/grafts
git remote add -f origin $url
git checkout -b master origin/master
Sign the script, and let users verify it before executing. You may
also want a script to drag in the history behind by removing the
graft and fetching $BASE^, but that is hard because your repository
already "has" that.
--
Shawn.
next prev parent reply other threads:[~2008-09-16 5:26 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-16 5:09 Grafts workflow for a "shallow" repository...? Martin Langhoff
2008-09-16 5:24 ` Shawn O. Pearce [this message]
2008-09-16 6:25 ` Junio C Hamano
2008-09-16 8:09 ` Björn Steinbrink
2008-09-16 13:27 ` Michael J Gruber
2008-09-16 13:50 ` Björn Steinbrink
2008-09-16 22:02 ` Sverre Rabbelier
2008-09-16 23:12 ` Dmitry Potapov
2008-09-16 19:12 ` Grafts workflow for a Sergio
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=20080916052425.GA14644@spearce.org \
--to=spearce@spearce.org \
--cc=git@vger.kernel.org \
--cc=martin.langhoff@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.
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).