git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: How to add daily tags for a central repo?

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
Jun 1, 2010, 06:43 UTC
Message-ID
<4C04AC1E.7040502@drmicha.warpmail.net>
In-Reply-To
<1275369711233-5124575.post@n2.nabble.com>
roylee17 venit, vidit, dixit 01.06.2010 07:21:
Show 37 quoted lines
> 
> Hi,
> 
> We currently host our projects on a central server.
> For the daily build purpose, I currently using a script to do the following
> steps:
> 
>   1. clone the project from the central server
> 
>   2. find the target commit for a specified date
>       commit=`git log origin/master -n1 --format=%H --until="${timespec}
> 00:00:00"`
> 
>   3. tag the commit
>       git tag -f daily/${timespec} ${commit}
> 
>   4. push the tag up to the central server
> 
> This usually works fine and allows us to tag earlier commit with past dates
> 
> However, it depends on the "COMMIT DATE", which is a local time to the
> developer who
> committed the changes.
> And if some developer didn't have the time or date configured correctly on
> his machine,
> the changes committed by him may not be included in a tag, even it is pushed
> to the 
> on a date earlier than the target date to tag.
> 
> Alternatively, we can queue the job to do the following steps "on a target
> date":
> 
> 1. clone the project from the central server
> 2. tag the "latest commit"
> 3. push the tag to the server
> 
> But I'd like to know better ways to do the daily tag things?

Having these tags seems strange to me. Imagine someone pushing a patch series one-by-one around midnight, or pushing a commit and, shortly after, a fixup. You'll end up with a tag pointing to a commit in the middle.

The commit time is totally unreliable, as you noticed, also because authors may commit locally, then push later.

That being said, if you're really interested in the state of a branch on the central server at a certain point in time it's easiest to enable reflogs on the central repository (by setting core.logAllRefUpdates or enabling individually) and to tag the commit HEAD@{datetimespec} (or branchname@...). No need for cloning.

Cheers, Michael

Previous: roylee17Next: Roy Lee
Message 2 of 10 in “How to add daily tags for a central repo?”
  1. roylee17Jun 1, 2010
  2. Michael J GruberJun 1, 2010
  3. Roy LeeJun 1, 2010
  4. Michael J GruberJun 1, 2010
  5. Roy LeeJun 1, 2010
  6. Michael J GruberJun 1, 2010
  7. Roy LeeJun 1, 2010
  8. Ilari LiusvaaraJun 1, 2010
  9. Junio C HamanoJun 2, 2010
  10. Roy LeeJun 2, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.