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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.