git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git tag: don't complain of empty messages
@ 2006-11-15 15:34 Han-Wen Nienhuys
  2006-11-15 16:02 ` Johannes Schindelin
  2006-11-15 18:23 ` Junio C Hamano
  0 siblings, 2 replies; 10+ messages in thread
From: Han-Wen Nienhuys @ 2006-11-15 15:34 UTC (permalink / raw)
  To: git

[-- Attachment #1: Type: text/plain, Size: 401 bytes --]


Hello,

GIT refuses to set annotated tags without a comment. I think this is a 
silly restriction when the message is explicitly set to the empty string.

The attached patch should fix this;  Unfortunately, I've been unable to 
test it. Running the script with sh -x stops at

++exec /home/hanwen/usr/pkg/git/bin/git-sh-setup

-- 
  Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen

[-- Attachment #2: tagpatch --]
[-- Type: text/plain, Size: 1165 bytes --]

commit 446cfbd9edcfaf5fe76f597823e0e3314d091489
Author: Han-Wen Nienhuys <hanwen@lilypond.org>
Date:   Wed Nov 15 16:27:27 2006 +0100

    always set tag if -m is given, even if empty

diff --git a/git-tag.sh b/git-tag.sh
index ac269e3..f2533a3 100755
--- a/git-tag.sh
+++ b/git-tag.sh
@@ -5,6 +5,7 @@ USAGE='-l [<pattern>] | [-a | -s | -u <k
 SUBDIRECTORY_OK='Yes'
 . git-sh-setup
 
+message_given=
 annotate=
 signed=
 force=
@@ -37,6 +38,7 @@ do
     	annotate=1
 	shift
 	message="$1"
+	message_given=1
 	;;
     -u)
 	annotate=1
@@ -83,7 +85,7 @@ tagger=$(git-var GIT_COMMITTER_IDENT) ||
 trap 'rm -f "$GIT_DIR"/TAG_TMP* "$GIT_DIR"/TAG_FINALMSG "$GIT_DIR"/TAG_EDITMSG' 0
 
 if [ "$annotate" ]; then
-    if [ -z "$message" ]; then
+    if [ -z "$message_given" ]; then
         ( echo "#"
           echo "# Write a tag message"
           echo "#" ) > "$GIT_DIR"/TAG_EDITMSG
@@ -95,7 +97,7 @@ if [ "$annotate" ]; then
     grep -v '^#' <"$GIT_DIR"/TAG_EDITMSG |
     git-stripspace >"$GIT_DIR"/TAG_FINALMSG
 
-    [ -s "$GIT_DIR"/TAG_FINALMSG ] || {
+    [ -s "$GIT_DIR"/TAG_FINALMSG -o -n "$message_given" ] || {
 	echo >&2 "No tag message?"
 	exit 1
     }

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: git tag: don't complain of empty messages
  2006-11-15 15:34 git tag: don't complain of empty messages Han-Wen Nienhuys
@ 2006-11-15 16:02 ` Johannes Schindelin
  2006-11-15 16:05   ` Han-Wen Nienhuys
  2006-11-15 18:23 ` Junio C Hamano
  1 sibling, 1 reply; 10+ messages in thread
From: Johannes Schindelin @ 2006-11-15 16:02 UTC (permalink / raw)
  To: Han-Wen Nienhuys; +Cc: git

Hi,

On Wed, 15 Nov 2006, Han-Wen Nienhuys wrote:

> GIT refuses to set annotated tags without a comment. I think this is a silly
> restriction when the message is explicitly set to the empty string.

I think that this behaviour is on purpose: The tag will be identified 
(like all objects in git) by its contents. The rationale: the filename 
does not matter, since the tag _object_ is not identified by it. So, in 
case you lose your .git/refs/tags/ directory, you can still reconstruct 
the tags with "git-fsck-objects --full".

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: git tag: don't complain of empty messages
  2006-11-15 16:02 ` Johannes Schindelin
@ 2006-11-15 16:05   ` Han-Wen Nienhuys
  2006-11-15 16:19     ` Johannes Schindelin
  0 siblings, 1 reply; 10+ messages in thread
From: Han-Wen Nienhuys @ 2006-11-15 16:05 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git

Johannes Schindelin escreveu:
> Hi,
> 
> On Wed, 15 Nov 2006, Han-Wen Nienhuys wrote:
> 
>> GIT refuses to set annotated tags without a comment. I think this is a silly
>> restriction when the message is explicitly set to the empty string.
> 
> I think that this behaviour is on purpose: The tag will be identified 
> (like all objects in git) by its contents. The rationale: the filename 
> does not matter, since the tag _object_ is not identified by it. So, in 
> case you lose your .git/refs/tags/ directory, you can still reconstruct 
> the tags with "git-fsck-objects --full".

Without a message, the tag can still be identified by its name, which is 
in the tag object contents.

-- 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: git tag: don't complain of empty messages
  2006-11-15 16:05   ` Han-Wen Nienhuys
@ 2006-11-15 16:19     ` Johannes Schindelin
  0 siblings, 0 replies; 10+ messages in thread
From: Johannes Schindelin @ 2006-11-15 16:19 UTC (permalink / raw)
  To: Han-Wen Nienhuys; +Cc: git

Hi,

On Wed, 15 Nov 2006, Han-Wen Nienhuys wrote:

> Without a message, the tag can still be identified by its name, which is 
> in the tag object contents.

You are correct. Acked-by: me.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: git tag: don't complain of empty messages
  2006-11-15 15:34 git tag: don't complain of empty messages Han-Wen Nienhuys
  2006-11-15 16:02 ` Johannes Schindelin
@ 2006-11-15 18:23 ` Junio C Hamano
  2006-11-16  0:14   ` Han-Wen Nienhuys
  2006-11-26 16:42   ` Han-Wen Nienhuys
  1 sibling, 2 replies; 10+ messages in thread
From: Junio C Hamano @ 2006-11-15 18:23 UTC (permalink / raw)
  To: hanwen; +Cc: git

Han-Wen Nienhuys <hanwen@xs4all.nl> writes:

> Hello,
>
> GIT refuses to set annotated tags without a comment. I think this is a
> silly restriction when the message is explicitly set to the empty
> string.
>
> The attached patch should fix this;  Unfortunately, I've been unable
> to test it. Running the script with sh -x stops at
>
> ++exec /home/hanwen/usr/pkg/git/bin/git-sh-setup
>
> -- 
>  Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen
> commit 446cfbd9edcfaf5fe76f597823e0e3314d091489
> Author: Han-Wen Nienhuys <hanwen@lilypond.org>
> Date:   Wed Nov 15 16:27:27 2006 +0100
>
>     always set tag if -m is given, even if empty
>

Please follow Documentation/SubmittingPatches.

> diff --git a/git-tag.sh b/git-tag.sh
> index ac269e3..f2533a3 100755
> --- a/git-tag.sh
> +++ b/git-tag.sh
> @@ -5,6 +5,7 @@ USAGE='-l [<pattern>] | [-a | -s | -u <k
>  SUBDIRECTORY_OK='Yes'
>  . git-sh-setup
>  
> +message_given=
>  annotate=
>  signed=
>  force=
> @@ -37,6 +38,7 @@ do
>      	annotate=1
>  	shift
>  	message="$1"
> +	message_given=1
>  	;;
>      -u)
>  	annotate=1

If you are going to do this, this hunk should be changed to
check if the command line ended with "-m" without next
parameter, in which case it should error out.

I do not have a strong objection against allowing tags without
messages, but at the same time I do not see a compelling reason
to allow them either.  Care to explain what workflow is helped
by an empty tag?

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: git tag: don't complain of empty messages
  2006-11-15 18:23 ` Junio C Hamano
@ 2006-11-16  0:14   ` Han-Wen Nienhuys
  2006-11-16  0:38     ` Jakub Narebski
  2006-11-26 16:42   ` Han-Wen Nienhuys
  1 sibling, 1 reply; 10+ messages in thread
From: Han-Wen Nienhuys @ 2006-11-16  0:14 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Junio C Hamano escreveu:
> I do not have a strong objection against allowing tags without
> messages, but at the same time I do not see a compelling reason
> to allow them either.  Care to explain what workflow is helped
> by an empty tag?

the tagname usually is enough of a description, but I want the tags to 
end up in the object DB, eg.:

   git tag release/2.10.0 HEAD

now I have to use

   git tag -m "this really sucks"  release/2.10.0 HEAD


-- 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: git tag: don't complain of empty messages
  2006-11-16  0:14   ` Han-Wen Nienhuys
@ 2006-11-16  0:38     ` Jakub Narebski
  2006-11-16  1:27       ` Han-Wen Nienhuys
  0 siblings, 1 reply; 10+ messages in thread
From: Jakub Narebski @ 2006-11-16  0:38 UTC (permalink / raw)
  To: git

Han-Wen Nienhuys wrote:

> Junio C Hamano escreveu:
>> I do not have a strong objection against allowing tags without
>> messages, but at the same time I do not see a compelling reason
>> to allow them either.  Care to explain what workflow is helped
>> by an empty tag?
> 
> the tagname usually is enough of a description, but I want the tags to 
> end up in the object DB, eg.:
> 
>    git tag release/2.10.0 HEAD
> 
> now I have to use
> 
>    git tag -m "this really sucks"  release/2.10.0 HEAD

Why not

   git tag -m "release 2.10.0" release/2.10.0 HEAD

This way you would know what tag points to even if you loose it's
reference...
-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: git tag: don't complain of empty messages
  2006-11-16  0:38     ` Jakub Narebski
@ 2006-11-16  1:27       ` Han-Wen Nienhuys
  0 siblings, 0 replies; 10+ messages in thread
From: Han-Wen Nienhuys @ 2006-11-16  1:27 UTC (permalink / raw)
  To: git

Jakub Narebski escreveu:
> Han-Wen Nienhuys wrote:
> 
>> Junio C Hamano escreveu:
>>> I do not have a strong objection against allowing tags without
>>> messages, but at the same time I do not see a compelling reason
>>> to allow them either.  Care to explain what workflow is helped
>>> by an empty tag?
>> the tagname usually is enough of a description, but I want the tags to 
>> end up in the object DB, eg.:
>>
>>    git tag release/2.10.0 HEAD
>>
>> now I have to use
>>
>>    git tag -m "this really sucks"  release/2.10.0 HEAD
> 
> Why not
> 
>    git tag -m "release 2.10.0" release/2.10.0 HEAD
> 
> This way you would know what tag points to even if you loose it's
> reference...

that would double, given that the tag name is already in the tag object. 
Currently, I have

**
[lilydev@haring gub]$ cat .git/refs/tags/gubrelease-2.9.29-2
1ac5c78609a9f79787825b62c9576542eedce795


[lilydev@haring gub]$ git cat-file tag 
1ac5c78609a9f79787825b62c9576542eedce795


object b75db784e3d6a9e1d2cff3f77036aaa88598b53c
type commit
tag gub-2.9.29-2
tagger Han-Wen Nienhuys <lilydev@haring.localdomain> 1162921716 +0100

build and upload
**

'build and upload' is a polite way of saying 'this really sucks'.

-- 
  Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: git tag: don't complain of empty messages
  2006-11-15 18:23 ` Junio C Hamano
  2006-11-16  0:14   ` Han-Wen Nienhuys
@ 2006-11-26 16:42   ` Han-Wen Nienhuys
  2006-11-26 16:46     ` Han-Wen Nienhuys
  1 sibling, 1 reply; 10+ messages in thread
From: Han-Wen Nienhuys @ 2006-11-26 16:42 UTC (permalink / raw)
  To: git

Junio C Hamano escreveu:
> Please follow Documentation/SubmittingPatches.

See below, hope I didn't mess up.



From be40730d19592f9db8f07f619f5723060c2f4f0c Mon Sep 17 00:00:00 2001
From: Han-Wen Nienhuys <hanwen@lilypond.org>
Date: Sun, 26 Nov 2006 17:41:30 +0100
Subject: [PATCH] allow empty tag message if -m is given explicitly.

---
 git-tag.sh |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/git-tag.sh b/git-tag.sh
index ac269e3..d53f94c 100755
--- a/git-tag.sh
+++ b/git-tag.sh
@@ -5,6 +5,7 @@ USAGE='-l [<pattern>] | [-a | -s | -u <k
 SUBDIRECTORY_OK='Yes'
 . git-sh-setup
 
+message_given=
 annotate=
 signed=
 force=
@@ -37,6 +38,12 @@ do
     	annotate=1
 	shift
 	message="$1"
+	if test "$#" = "0"; then
+	    die "error: option -m needs an argument"
+	    exit 2
+	else
+	    message_given=1
+	fi
 	;;
     -u)
 	annotate=1
@@ -83,7 +90,7 @@ tagger=$(git-var GIT_COMMITTER_IDENT) ||
 trap 'rm -f "$GIT_DIR"/TAG_TMP* "$GIT_DIR"/TAG_FINALMSG "$GIT_DIR"/TAG_EDITMSG' 0
 
 if [ "$annotate" ]; then
-    if [ -z "$message" ]; then
+    if [ -z "$message_given" ]; then
         ( echo "#"
           echo "# Write a tag message"
           echo "#" ) > "$GIT_DIR"/TAG_EDITMSG
@@ -95,7 +102,7 @@ if [ "$annotate" ]; then
     grep -v '^#' <"$GIT_DIR"/TAG_EDITMSG |
     git-stripspace >"$GIT_DIR"/TAG_FINALMSG
 
-    [ -s "$GIT_DIR"/TAG_FINALMSG ] || {
+    [ -s "$GIT_DIR"/TAG_FINALMSG -o -n "$message_given" ] || {
 	echo >&2 "No tag message?"
 	exit 1
     }
-- 
1.4.2.4


-- 
 Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: git tag: don't complain of empty messages
  2006-11-26 16:42   ` Han-Wen Nienhuys
@ 2006-11-26 16:46     ` Han-Wen Nienhuys
  0 siblings, 0 replies; 10+ messages in thread
From: Han-Wen Nienhuys @ 2006-11-26 16:46 UTC (permalink / raw)
  To: git

Han-Wen Nienhuys escreveu:
> Junio C Hamano escreveu:
>> Please follow Documentation/SubmittingPatches.
> 
> See below, hope I didn't mess up.

please add

Signed-off-by: Han-Wen Nienhuys <hanwen@xs4all.nl>


-- 
 Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2006-11-26 16:50 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-15 15:34 git tag: don't complain of empty messages Han-Wen Nienhuys
2006-11-15 16:02 ` Johannes Schindelin
2006-11-15 16:05   ` Han-Wen Nienhuys
2006-11-15 16:19     ` Johannes Schindelin
2006-11-15 18:23 ` Junio C Hamano
2006-11-16  0:14   ` Han-Wen Nienhuys
2006-11-16  0:38     ` Jakub Narebski
2006-11-16  1:27       ` Han-Wen Nienhuys
2006-11-26 16:42   ` Han-Wen Nienhuys
2006-11-26 16:46     ` Han-Wen Nienhuys

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 NNTP newsgroup(s).