From: Phillip Wood <phillip.wood123@gmail.com>
To: Denton Liu <liu.denton@gmail.com>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: Jeff King <peff@peff.net>, Git Mailing List <git@vger.kernel.org>
Subject: Re: git branch --edit-description a custom file
Date: Thu, 31 Oct 2019 19:53:18 +0000 [thread overview]
Message-ID: <4ef79cfb-b970-2b2b-131d-3f47e6b0e308@gmail.com> (raw)
In-Reply-To: <20191031181920.GB70819@generichostname>
Hi Denton & Dscho
On 31/10/2019 18:19, Denton Liu wrote:
> Hi Dscho,
>
> On Thu, Oct 31, 2019 at 11:22:16AM +0100, Johannes Schindelin wrote:
>> Hi Peff,
>>
>> On Thu, 31 Oct 2019, Jeff King wrote:
>>
>>> On Wed, Oct 30, 2019 at 03:43:28PM -0700, Denton Liu wrote:
>>>
>>>> On Wed, Oct 30, 2019 at 04:28:35PM -0400, Jeff King wrote:
>>>> Dscho brought up in the GGG thread[1] that perhaps we want to treat
>>>> branch descriptions like notes and have them all under something like
>>>> `refs/notes/branches`. This would certainly solve my problem of
>>>> having versioned descriptions and it would probably do it in a much more
>>>> general way than having a versioned included config.
>>>>
>>>> Anyone see any potential problems with this approach?
>>>
>>> I don't think it would be `refs/notes/`, as that is assumed to contain
>>> mappings of object ids (and if I understand correctly, this would be a
>>> mapping of branch names to data.
>>>
>>> You could just have "refs/meta/descriptions/foo" pointing to a blob
>>> which contains the description of "refs/heads/foo". That makes it easy
>>> to edit descriptions, even if you don't like using "git branch
>>> --edit-description".
>>
>> The only problem with this is that it's not really versioned, as it
>> would be hard to go back to previous versions and/or share the history
>> via pushing to a remote repository.
>>
>> But I guess that a very simple pseudo branch would do it, where
>> `refs/meta/<branch-name>` would point to a commit that has a tree
>> with a single file in it: `description.txt`.
>
> So how would you envision the workflow for this? Would it be something
> like,
>
> $ git checkout feature-1
>
> $ git branch --edit-description=ref # instead of =config
Personally I'd prefer a config setting that meant --edit-description
stored the description in a ref instead of the current config key (or
perhaps as well as so format-patch can just get the latest branch
description from the config key)
> # editor opens up, :wq
>
> # is it find to have an autogenerated commit message?
> $ git show refs/meta/feature-1
> commit 80dfea1dc4492aaabc80d23fbaffe86da55ee098 (refs/meta/feature-1)
> Author: Denton Liu <liu.denton@gmail.com>
> Date: 42 seconds ago
>
> Update ref description
>
> diff --git a/description.txt b/description.txt
> new file mode 100644
> index 0000000..ed03a4b
> --- /dev/null
> +++ b/description.txt
> @@ -0,0 +1 @@
> +this is a description
>
> I have some open questions about this, though:
>
> * Since we're planning on sharing these descriptions with the outside
> world, how would the ref layout look like? If we're not using the
> refs/remotes namespace will it make fetching and merging notes harder?
> I know that collaborating with notes is a pain so how do we avoid
> making the same mistake?
I'd love to see a consensus around putting remote versions of refs/foo
under refs/remote/<remote-name>/foo. To share notes I add a refspec that
fetches to refs/remote/<remote-name>/notes. It is a pain that 'git pull'
wont merge them for me though.
> * On the above point, what if local descriptions are at
> refs/meta/heads/feature-1 while remote descriptions are at
> refs/meta/remotes/*/feature-1?
>
> * What would a merge workflow look like? Would we have wrapper commands
> for it or do users just have to checkout the description branch
> themselves?
Teaching 'git pull' to (configurably) merge things under
refs/remote/<remote-name>/foo to refs/foo would be a useful addition,
then it could merge notes and any other refs people are sharing.
Best Wishes
Phillip
> Thanks,
>
> Denton
>
>>
>> I now like that idea a lot better than my original notes idea.
>>
>> Ciao,
>> Dscho
next prev parent reply other threads:[~2019-10-31 19:53 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-30 18:39 git branch --edit-description a custom file Denton Liu
2019-10-30 20:28 ` Jeff King
2019-10-30 22:43 ` Denton Liu
2019-10-31 6:18 ` Jeff King
2019-10-31 10:22 ` Johannes Schindelin
2019-10-31 11:00 ` Phillip Wood
2019-10-31 11:30 ` Johannes Schindelin
2019-10-31 13:45 ` Philip Oakley
2019-10-31 15:42 ` Jeff King
2019-11-03 17:56 ` Philip Oakley
2019-11-04 19:50 ` Jeff King
2019-11-04 3:21 ` Junio C Hamano
2019-10-31 18:19 ` Denton Liu
2019-10-31 19:53 ` Phillip Wood [this message]
2019-10-31 20:07 ` Jeff King
2019-11-01 12:29 ` Phillip Wood
2019-11-01 16:49 ` Jeff King
2019-11-01 20:35 ` Phillip Wood
2019-11-02 4:53 ` Junio C Hamano
2019-10-31 17:35 ` Denton Liu
2019-10-31 18:06 ` Jeff King
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4ef79cfb-b970-2b2b-131d-3f47e6b0e308@gmail.com \
--to=phillip.wood123@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=liu.denton@gmail.com \
--cc=peff@peff.net \
--cc=phillip.wood@dunelm.org.uk \
/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 public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).