From: Dominik Vogt <vogt@linux.vnet.ibm.com>
To: git@vger.kernel.org
Subject: Setting file timestamps to commit time (git-checkout)
Date: Mon, 9 Dec 2013 12:25:28 +0100 [thread overview]
Message-ID: <20131209112528.GA5309@linux.vnet.ibm.com> (raw)
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 reply other threads:[~2013-12-09 11:25 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-09 11:25 Dominik Vogt [this message]
2013-12-09 20:35 ` Setting file timestamps to commit time (git-checkout) Junio C Hamano
2013-12-10 8:35 ` Dominik Vogt
2013-12-10 19:02 ` Andreas Schwab
2013-12-11 7:37 ` Dominik Vogt
2013-12-11 1:39 ` Constantine A. Murenin
2013-12-09 20:48 ` Jonathan Nieder
2013-12-10 8:46 ` Dominik Vogt
2013-12-10 10:34 ` Duy Nguyen
2013-12-11 1:08 ` Jonathan Nieder
2013-12-11 1:01 ` Jonathan Nieder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131209112528.GA5309@linux.vnet.ibm.com \
--to=vogt@linux.vnet.ibm.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).