From: Han-Wen Nienhuys <hanwen@xs4all.nl>
To: git@vger.kernel.org
Subject: updating only changed files source directory?
Date: Tue, 24 Oct 2006 03:33:18 +0200 [thread overview]
Message-ID: <ehjqgf$ggb$1@sea.gmane.org> (raw)
Hello there,
I'm just starting out with GIT. Initially, I want to use experiment
with integrating it into our binary builder structure for LilyPond.
The binary builder roughly does this:
1. get source code updates from a server to a single, local
repository. This is currently a git repository that is that
tracks our CVS server.
2. copy latest commit from a branch to separate source directory.
This copy should only update files that changed.
3. Incrementally compile from that source directory
The binary builder does this for several branches and several
platforms of the project. Due to parallel compilation, it might even
be possible that different branches of are being checked out
concurrently from a single repository.
For a VCS, this is slightly nonstandard use, as we don't do any work
in the working dir, we just compile from it, but have many working
directories.
I have some questions and remarks
* Is there a command analogous to git-clone for updating a repository?
Right now, I'm using a combination of
git-http-fetch -a <branch> <url>
wget <url>/refs/head/<branch> ## dump to <myrepo>/refs/head/<branch>
for all branches I want to know about. I was looking for a command
that would update the heads of all branches.
* Why is the order of args in git-http-fetch inconsistent with the
order in git-fetch? in fetch, the repository comes first, in
http-fetch, it comes last
* How do I update a source directory?
I can do the following
git --git-dir <myrepo> read-tree <committish>
cd <srcdir>
git --git-dir <myrepo> checkout-index -a -f
Unfortunately, this touches all files, which messes up the timestamps
triggering needless recompilation. How can I make checkout-index only
touch files that have changed? Or alternatively, make checkout-index
remember timestamps on files that didn't change?
Of course, I can store the commitish of the last version of the
srcdir, and apply the diff between both to the source directory, but
that seems somewhat convoluted. Is there a better way?
* As far as I can see, there is no reason to have only one index in a
git repository. Why isn't it possible to specify an alternate
index-file with an option similar to --git-dir ?
--
Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen
next reply other threads:[~2006-10-24 1:40 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-24 1:33 Han-Wen Nienhuys [this message]
2006-10-24 5:55 ` updating only changed files source directory? Shawn Pearce
2006-10-24 7:48 ` Jakub Narebski
2006-10-24 9:50 ` Han-Wen Nienhuys
2006-10-24 10:13 ` Jakub Narebski
2006-10-24 19:12 ` Daniel Barkalow
2006-10-25 11:58 ` Han-Wen Nienhuys
2006-10-25 19:35 ` Daniel Barkalow
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='ehjqgf$ggb$1@sea.gmane.org' \
--to=hanwen@xs4all.nl \
--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.