commit 102bee52e88d073c605a590258abf0255dca2b67 from: Christian Weisgerber date: Sat Jul 15 13:17:09 2023 UTC cvg: restore accidentally deleted "tag" and "add" man page bits ok jrick commit - ee27b57e0fcb14468a5b8a9cd8414b475267cddb commit + 102bee52e88d073c605a590258abf0255dca2b67 blob - aedab60cfd015c8f0ee324f24c2eaaabdb75d665 blob + 110ff29fdcc380ec042d16545ed9b818b713b3c7 --- cvg/cvg.1 +++ cvg/cvg.1 @@ -897,6 +897,165 @@ If this directory is a .Nm work tree, use the repository path associated with this work tree. .El +.It Xo +.Cm tag +.Op Fl lVv +.Op Fl c Ar commit +.Op Fl m Ar message +.Op Fl r Ar repository-path +.Op Fl s Ar signer-id +.Ar name +.Xc +Manage tags in a repository. +.Pp +Tags are managed via references which live in the +.Dq refs/tags/ +reference namespace. +The +.Cm got tag +command operates on references in this namespace only. +References in this namespace point at tag objects which contain a pointer +to another object, a tag message, as well as author and timestamp information. +.Pp +Attempt to create a tag with the given +.Ar name , +and make this tag point at the given +.Ar commit . +If no commit is specified, default to the latest commit on the work tree's +current branch if invoked in a work tree, and to a commit resolved via +the repository's HEAD reference otherwise. +.Pp +The options for +.Cm got tag +are as follows: +.Bl -tag -width Ds +.It Fl c Ar commit +Make the newly created tag reference point at the specified +.Ar commit . +The expected +.Ar commit +argument is a commit ID SHA1 hash or an existing reference or tag name which +will be resolved to a commit ID. +An abbreviated hash argument will be expanded to a full SHA1 hash +automatically, provided the abbreviation is unique. +.It Fl l +List all existing tags in the repository instead of creating a new tag. +If a +.Ar name +argument is passed, show only the tag with the given +.Ar name . +.It Fl m Ar message +Use the specified tag message when creating the new tag. +Without the +.Fl m +option, +.Cm got tag +opens a temporary file in an editor where a tag message can be written. +Quitting the editor without saving the file will abort the tag operation. +.It Fl r Ar repository-path +Use the repository at the specified path. +If not specified, assume the repository is located at or above the current +working directory. +If this directory is a +.Nm +work tree, use the repository path associated with this work tree. +.It Fl s Ar signer-id +While creating a new tag, sign this tag with the identity given in +.Ar signer-id . +.Pp +For SSH-based signatures, +.Ar signer-id +is the path to a file which may refer to either a private SSH key, +or a public SSH key with the private half available via +.Xr ssh-agent 1 . +.Cm got tag +will sign the tag object by invoking +.Xr ssh-keygen 1 +with the +.Fl Y Cm sign +command, using the signature namespace +.Dq git +for compatibility with +.Xr git 1 . +.It Fl V +Verify tag object signatures. +If a +.Ar name +is specified, show and verify the tag object with the provided name. +Otherwise, list all tag objects and verify signatures where present. +.Pp +.Cm got tag +verifies SSH-based signatures by invoking +.Xr ssh-keygen 1 +with the options +.Fl Y Cm verify Fl f Ar allowed_signers . +A path to the +.Ar allowed_signers +file must be set in +.Xr got.conf 5 , +otherwise verification is impossible. +.It Fl v +Verbose mode. +During SSH signature creation and verification this option will be passed to +.Xr ssh-keygen 1 . +Multiple -v options increase the verbosity. +The maximum is 3. +.El +.Pp +By design, the +.Cm got tag +command will not delete tags or change existing tags. +If a tag must be deleted, the +.Cm got ref +command may be used to delete a tag's reference. +This should only be done if the tag has not already been copied to +another repository. +.It Xo +.Cm add +.Op Fl IR +.Ar path ... +.Xc +Schedule unversioned files in a work tree for addition to the +repository in the next commit. +By default, files which match a +.Cm got status +ignore pattern will not be added. +.Pp +If a +.Ar path +mentioned in the command line is not an unversioned file then +.Cm got add +may raise an error. +To avoid unnecessary errors from paths picked up by file globbing patterns +in the shell, paths in the argument list will be silently ignored if they +are not reported by +.Cm got status +at all, or if they are reported with one of the following status codes +and do not have changes staged via +.Cm got stage : +.Bl -column YXZ description +.It M Ta modified file +.It A Ta file scheduled for addition in next commit +.It C Ta modified or added file which contains merge conflicts +.It m Ta modified file modes (executable bit only) +.El +.Pp +The options for +.Cm got add +are as follows: +.Bl -tag -width Ds +.It Fl I +Add files even if they match a +.Cm got status +ignore pattern. +.It Fl R +Permit recursion into directories. +If this option is not specified, +.Cm got add +will refuse to run if a specified +.Ar path +is a directory. +.El .Tg rm .It Xo .Cm remove