Re: git branch --edit-description a custom file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
	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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux