From: Johannes Schindelin Date: Wed, 13 Feb 2008 13:37:33 GMT Subject: Re: git-archive for files changed in revision range Message-ID: In-Reply-To: <20080213130304.GA19957@grahamcox.co.uk> Hi, On Wed, 13 Feb 2008, Graham Cox wrote: > 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 ..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 ..HEAD. Mebbe git archive --format=zip HEAD \ $(git diff-tree -r --name-only --diff-filter=AM \ ..HEAD) Hmm? Ciao, Dscho