Re: Errors pushing tags in "next"

Previous thread: [PATCH] t4118: be nice to non-GNU sed by Shawn O. Pearce on Thursday, March 22, 2007 - 6:05 pm. (1 message)

Next thread: [PATCH] Bisect: implement "git bisect run <cmd>..." to automatically bisect. by Christian Couder on Friday, March 23, 2007 - 12:49 am. (1 message)
From: Luben Tuikov
Date: Thursday, March 22, 2007 - 7:03 pm

Is this of any concern?

### Pushing version 'v2.6.21-rc4' to the masses
fatal: ambiguous argument 'v2.6.21-rc3-329..bac6eefe96204d0ad67d144f2511a6fc487aa594': unknown
revision or path not in the working tree.
Use '--' to separate paths from revisions
fatal: ambiguous argument 'v2.6.21-rc3-329..bac6eefe96204d0ad67d144f2511a6fc487aa594': unknown
revision or path not in the working tree.
Use '--' to separate paths from revisions
refs/tags/v2.6.21-rc4: 0000000000000000000000000000000000000000 -&gt;
bac6eefe96204d0ad67d144f2511a6fc487aa594

Thanks,
   Luben

P.S.
git --version
git version 1.5.1.rc1.901.gb7f2

-

From: Junio C Hamano
Date: Thursday, March 22, 2007 - 7:48 pm

From: Luben Tuikov
Date: Thursday, March 22, 2007 - 8:35 pm

Sorry, I didn't include that.  It is:

git-push --tags web


-

From: Junio C Hamano
Date: Thursday, March 22, 2007 - 9:18 pm

Well, *I* don't say '### Pushing version blah to the masses', so
it's hard to diagnose from this output.  Is it coming from some
of your own script (perhaps update hook on the receiving end)?

-

From: Luben Tuikov
Date: Friday, March 23, 2007 - 12:44 am

No, I don't have a script hooked onto git-push.

BTW, git has always said to me &quot;Pushing version ... to the masses&quot;
whenever I'd do &quot;git-push --tags web&quot;.

On the receiving end, I've only the standard git hooks enabled.
In fact only &quot;post-update&quot; is enabled.

   Luben


    Luben

-

From: Junio C Hamano
Date: Friday, March 23, 2007 - 1:16 am

Sorry, I must be blind, and git-grep is too.

$ git grep -e 'to the masses' -e 'Pushing v'

returns absolutely empty.

Puzzled...

-

From: Marco Roeland
Date: Friday, March 23, 2007 - 2:02 am

The line comes from an older version of templates/hooks--update. The
line was removed in commit 829a686f1b50ba96cac2d88494fa339efe0c0862 .

So Luben does seem to have a hook installed, perhaps this is the
culprit.
-- 
Marco Roeland
-

From: Junio C Hamano
Date: Friday, March 23, 2007 - 2:17 am

Thanks for spotting this.  I do not use this hook (well, I only
use commit-msg, pre-commit, and pre-rebase patches) and it was
totally outside of my radar.

It runs describe to find the previous tag, but the parser is a
bit old fashioned.  It says:

	prev=$(git describe &quot;$3^&quot; | sed 's/-g.*//')

but modern way to say the same is:

	prev=$(git describe --abbrev=0 &quot;$3^&quot;)

Luben, sorry for the trouble.

I do not know how much better the recent hooks--update is
compared to the version you use.  It is supposed to be backward
compatible, so you _might_ want to simply update it with the one
from 'master' after checking if it suits your needs.  Otherwise,
I think the above one-liner should work the problem around.


-

From: Luben Tuikov
Date: Friday, March 23, 2007 - 2:43 am

Yeah, that's what Andy suggested too.

I guess the problem is that my git repos, especially the web
exported ones are truly of an ancient git...

I'll just update the &quot;update&quot; hook from the most recent &quot;next&quot;
I've got and see if I get this again.

Thanks,
   Luben

-

From: Luben Tuikov
Date: Friday, March 23, 2007 - 2:19 am

I see.

I double checked and I do have &quot;update&quot; and &quot;post-update&quot; hooks
enabled.  I don't think that it is &quot;post-update&quot; and this leaves
&quot;update&quot; to be the problem (which is from an ancient git version
when the repo was created...).

I'll update the &quot;update&quot; hook from a recent git version and
will see if I get the same warning message.  Hopefully not.

Thanks,
   Luben

-

From: Andy Parkins
Date: Friday, March 23, 2007 - 2:13 am

As Doc Brown once said: &quot;That's because you're not thinking four 
dimensionally&quot; ;-)

 git-show v1.4.4:templates/hooks--update | grep masses

Luben: that message is being generated by the remote version of git rather 
than your local version.  It doesn't matter that /you/ don't have any hook 
scripts enabled, what matters is that the remote repository has them enabled.  
In particular the hooks/update script has been enabled.

The output you show is from the update hook from an older version of git, but 
the git you're running on the remote end is a newer version.  The hook 
scripts don't get updated when you upgrade git because they're copied to the 
repository from the latest template when you clone or init.

Now: onto the fault; this same fault was fixed in the sample hook in revision 
a2ee81bb7594b; the problem is that the older update hook used to split the 
output of git-describe on the last dash and made the assumption that 
everything before the dash was a tag name.  git-describe gained a nice new 
feature were it would show the number of revisions since that tag as well.  
So now the output of git-describe is

  tag-N-revision

So you can see that splitting on the last dash would return &quot;tag-N&quot; rather 
than &quot;tag&quot;.  Now, when the update hook uses this &quot;tag-N&quot; as if it were a tag, 
git obviously doesn't find it, so you're fatal error is coming from running 
something like:

 git-rev-list v2.6.21-rc3-329..bac6eefe96204d0ad67d144f2511a6fc487aa594

becuase &quot;v2.6.21-rc3-329&quot; is not a tag.

The fix:  My own suggestion would be to just swap the update hook on the 
server for the one that came with the latest version of git (although I'm 
completely biased :-)).  Remember to do this on the remote repository, not 
your local one.  Alternatively you could fix just that bug in the hook script 
you have to leave things as close as possible to what you've got now, by 
editing .git/hooks/update and making this change:

-  prev=$(git describe &quot;$3^&quot; | sed 's/-g.*//')
+  ...
From: Luben Tuikov
Date: Friday, March 23, 2007 - 2:38 am

Yeah, most of my git repos, especially the web exported ones are

Yeah, I'll cp(1) the most recent &quot;update&quot; hook I got in &quot;next&quot; to the

Ok, sounds good.

Thanks,
   Luben

-

Previous thread: [PATCH] t4118: be nice to non-GNU sed by Shawn O. Pearce on Thursday, March 22, 2007 - 6:05 pm. (1 message)

Next thread: [PATCH] Bisect: implement "git bisect run <cmd>..." to automatically bisect. by Christian Couder on Friday, March 23, 2007 - 12:49 am. (1 message)