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

Setting file timestamps to commit time (git-checkout)

From
DVDominik Vogt <vogt@linux.vnet.ibm.com>
Date
Dec 9, 2013, 11:25 UTC
Message-ID
<20131209112528.GA5309@linux.vnet.ibm.com>
Me and some colleagues work on gcc in lots of different branches.
For each branch there is a separate build directory for each
branch, e.g. build-a, build-b and build-c.  Let's assume that all
branches are identical at the moment.  If a file in branch a is
changed that triggers a complete rebuild of gcc (e.g.
<target>.opt), rebuilding in build-a takes about an hour.  Now,
 when I switch to one of the other branches, said file is not
identical anymore and stamped with the _current_ time during
checkout.  Although branch b and c have not changed at all, they
will now be rebuilt completely because the timestamp on that files
has changed.  I.e. a chance on one branch forces a rebuild on n
other branches, which can take many hours.

I think this situation could be improved with an option to git-checkout with the following logic:

$ git checkout <new branch>
  FOR EACH <file> in working directory of <new branch>
    IF <file> is identical to the version in the <old branch>
      THEN leave the file untouched
    ELSE IF <commit timestamp> of the HEAD of the <new branch>
            is in the future
      THEN checkout the new version of <file> and stamp it with
           the current time
    ELSE (commit timestamp is current or in the past)
      THEN checkout the new version of <file> and stamp it with
           the commit timestamp of the current HEAD of <new branch>
Any comments?  Is there already a way to do this?
(Please do not cc me on replies, I'm subscribed to the list.)
Ciao
Dominik ^_^  ^_^
-- 
Dominik Vogt
IBM Germany
Next: Junio C Hamano
Message 1 of 11 in “Setting file timestamps to commit time (git-checkout)”
  1. Dominik VogtDec 9, 2013
  2. Junio C HamanoDec 9, 2013
  3. Dominik VogtDec 10, 2013
  4. Andreas SchwabDec 10, 2013
  5. Dominik VogtDec 11, 2013
  6. Constantine A. MureninDec 11, 2013
  7. Jonathan NiederDec 9, 2013
  8. Dominik VogtDec 10, 2013
  9. Duy NguyenDec 10, 2013
  10. Jonathan NiederDec 11, 2013
  11. Jonathan NiederDec 11, 2013

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.