Re: git-archive for files changed in revision range
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Feb 13, 2008, 13:37 UTC
- Message-ID
- <alpine.LSU.1.00.0802131335120.30505@racer.site>
- In-Reply-To
- <20080213130304.GA19957@grahamcox.co.uk>
Hi,
On Wed, 13 Feb 2008, Graham Cox wrote:
Show 20 quoted lines
> We have a small project that is being managed in a Git repository > (MSysGit to be exact) - mostly for backups and so on. The project is a > mod for the computer game Civilization 4. (Actually a mod of a mod, but > still...) As such, to release the mod to other people to actually use > the only thing that needs to be released is all of the files that have > actually been changed. (The actual git repository contains ~700MB of > files, the vast majority of which haven't changed since the initial > import and so don't need to be downloaded by people). > > I've managed to make it produce an archive that contains only the files > that have changed by using a combination of git-archive and > git-whatchanged, along with grep and sed, but it's kinda unwieldly. Is > there a better way of doing this? > > The command line I used was something like (This is mostly from memory): > git-archive --format=zip . `git-whatchanged <start>..HEAD --pretty=oneline > | grep '^:' | sed 's/^.*\t//'` > release.zip > > To produce a zip containing all of the modified and added files for the > revision range <start>..HEAD.
Mebbe
git archive --format=zip HEAD \ $(git diff-tree -r --name-only --diff-filter=AM \ <start>..HEAD)
Hmm?
Ciao, Dscho