From: "Philip Oakley" <philipoakley@iee.org>
To: "Junio C Hamano" <gitster@pobox.com>
Cc: "GitList" <git@vger.kernel.org>, "Jonathan Nieder" <jrnieder@gmail.com>
Subject: Re: [PATCH v2 1/1] doc: format-patch: don't use origin as a branch name
Date: Tue, 5 Aug 2014 00:19:32 +0100 [thread overview]
Message-ID: <C4E435A5EF324ABCBCC0930A9EB56141@PhilipOakley> (raw)
In-Reply-To: xmqqa97jrjk2.fsf@gitster.dls.corp.google.com
From: "Junio C Hamano" <gitster@pobox.com>
> "Philip Oakley" <philipoakley@iee.org> writes:
>
>>> This however is backwards, no? The history on 'origin/master' may
>>> not be up-to-date in the sense that if you run 'git fetch' you might
>>> get more, but it absolutely is up-to-date in the sense that it shows
>>> what the origin has to the best of your repository's current
>>> knowledge.
>>
>> I still think that the user/reader shouldn't be creating patches
>> based
>> on wherever someone else had got to, rather it should just be patches
>> from their own feature branch.
>
> You forked your topic branch off of the shared project history aka
> origin/master and built some. You may have sent some patches off of
> your previous work to the upstream, and origin/master may or may not
> have applied some of them since your topic forked from it. The
> patches you are sending out is from your own topic branch.
>
> You may be cooking multiple topics, and your local 'master' branch,
> which you never push back to 'origin/master', may contain any of
> these branches. You do not fork off a new topic out of there. Best
> case, you would fork from 'origin/master'; a bit worse case, you
> have to fork from another of your topic branch that your new topic
> has to depend on.
>
> Nowhere I am assuming that "the reader is creating paches based on
> wherever someone else had got to". Sorry, but I have no idea what
> you are complaining about.
I think we are talking at cross purposes. My starting point is that (the
examples says that) the reader wants to create a patch series for a
local branch, relative to their <some name> branch which they branched
from (e.g. the example, relative to Git, could have been from a 'pu'
picked up a couple of days earlier, when they'd have said 'git
format-patch pu' ;-).
Having generated their short patch series, and they probably want to
expose the series to some collaborator or other for comment, help and
guidance (or whatever). They may just want to review it themselves. But
that choice of what to do with it is surely not part of the format-patch
documentation. So I'm trying to avoid defining a workflow (then or now).
In the case when the patch series is meant to be ready for being applied
upstream then all the other considerations apply, but the example
doesn't, at least in my eyes, claim to be that.
IIRC I once did make the mistake of using format-patch on a branch (off
pu) I hadn't rebased since fetching and updating the local pu, so it
produced a lot of extra patches, but I digress.
>
>> However the rest of your argument still
>> stands with regard to accidental/unexpected conflicts with other
>> upstream work, and the reader should ensure they are already up to
>> date - maybe it needs a comment line to state that.
>
> Sorry, but I am not sure how much you understood what I wrote.
That may be true. I taken your "not be up-to-date" to be relative to the
real upstream.
>
> The primary reason why 'origin' in the example should be replaced
> with 'origin/master' is because that is the literal adjustment from
> the pre-separate-remote world order to today's world order.
I was trying to avoid a literal adjustment to what I'd perceived as a
presumed workflow.
> The
> local branch 'origin' (more specifically, 'refs/heads/origin') used
> to be what we used to keep track of 'master' of the upstream, which
> we use 'refs/remotes/origin/master' these days.
>
> Side note: DWIMming origin to remotes/origin/HEAD to
> remotes/origin/master was invented to keep supporting this
> "'origin' keeps track of the default upstream" convention
> when we transitioned from the old world order to
> separate-remote layout.
>
> And the reason why 'origin' should not be replaced with 'master' is
> because your 'master' may already have patches from the topic you
> are working on, i.e. in your current branch, that the upstream does
> not yet have.
So this a 'develop on master' view, rather than a 'develop on feature
branches' approach? Which could explain the misunderstanding.
> Running "git format-patch origin/master" will show
> what needs to be accepted by the upstream from you to reproduce your
> work in full; if you run "git format-patch master", it may miss some
> parts that you already have in your local 'master' but not yet in
> the upstream.
>
> I never talked about conflicts, and I still think that it is
> completely outside the scope of these examples. Avoidance of
> conflicts with the work that is already commited to your upstream
> since you forked is the job for "rebase", not "format-patch". The
> reason why it is wrong to replace 'origin' in that text with 'master'
> does not have anything to do with conflict avoidance.
>
> Puzzled...
> --
Did any of that help?
--
Philip
next prev parent reply other threads:[~2014-08-04 23:19 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-02 15:46 [PATCH v2 0/1] doc: format-patch Philip Oakley
2014-08-02 15:46 ` [PATCH v2 1/1] doc: format-patch: don't use origin as a branch name Philip Oakley
2014-08-04 16:58 ` Junio C Hamano
2014-08-04 18:23 ` Junio C Hamano
2014-08-04 21:51 ` Philip Oakley
2014-08-04 22:12 ` Junio C Hamano
2014-08-04 23:19 ` Philip Oakley [this message]
2014-08-05 18:19 ` Junio C Hamano
-- strict thread matches above, loose matches on Subject: below --
2014-08-14 19:50 Philip Oakley
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=C4E435A5EF324ABCBCC0930A9EB56141@PhilipOakley \
--to=philipoakley@iee.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@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