"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Stefan Sperling <stsp@stsp.name>
Subject:
Re: got {diff,log,update} -c KEYWORD (cf. svn revision keywords)
To:
Christian Weisgerber <naddy@mips.inka.de>
Cc:
gameoftrees@openbsd.org
Date:
Thu, 13 Jul 2023 10:19:33 +0200

Download raw body.

Thread
On Wed, Jul 12, 2023 at 07:50:29PM +0200, Christian Weisgerber wrote:
> I guess "HEAD" is already special in git/got.  Would it make sense
> to use a special symbol instead of "BASE", e.g. "."?

Following this line of questioning, how can we deal with the
situation where a user creates branches such as HEAD or BASE?

Should we add a reserved symbol prefix which forces keyword evaluation
instead of reference resolution?

  got update -c BASE	# use work tree base while branch BASE doesn't exist
  got branch BASE	# create the branch
  got update -c BASE		# now uses the BASE branch refs/heads/BASE
  got update -c refs/heads/BASE	# same
  got update -c :BASE		# force use of the BASE keyword
  got update -c :BASE-2		# force use of keyword and resolve ancestors

Should we always require a prefix symbol to be specified for keywords?

  got update -c BASE		# errors if branch BASE does not exist
  got update -c :BASE		# use work tree base
  got update -c :BASE:-2	# same, and resolve ancestors
  got update -c main:-2		# use with regular refs needs only one colon

I am leaning towards the latter since it does not carry any risk of
changes in our run-time behaviour depending on branches being created
and deleted again.