From: Bob Hiestand Date: Wed, 05 Nov 2008 00:18:23 GMT Subject: Re: exporting the last N days of a repository Message-ID: In-Reply-To: <93c3eada0811041449u20e0fc74gf6a1cb420923e484@mail.gmail.com> On Tue, Nov 4, 2008 at 4:49 PM, Geoff Russell wrote: > Apologies to Johannes and Bob who have tried to help > but I'm still having difficulties, here is my current non-working script: > > ------------------------------------------------------------------ > #!/bin/sh > DIR=/tmp/gitdemo > # for testing just arbitrarily > # select the 15th most recent commit as our new origin > NEWORIGIN=$(git rev-list master@{15} | head -1) > echo $NEWORIGIN > # checkout earlist point we are interested in > # we want to drop any history before this point > git checkout $NEWORIGIN > # now make a new directory, initialise with new origin > # and apply all commits after that point > mkdir $DIR && (cd $DIR ; git init) && \ > rsync -aHv --exclude=.git ./ $DIR && \ > (cd $DIR ; git add . ; git commit -m "starting point" git fast-export $NEWORIGIN..master | (cd $DIR ; git fast-import ) > > ----------------- end of script > > The fast-import gives me a message I don't understand and doesn't > do the import. If I understood your requirement (I know nothing about fast-export), it would look like this: #!/bin/sh DIR=/tmp/gitdemo ORIGDIR=$PWD git checkout -b shorthistory NEWORIGIN=$(git rev-list --since='5 months ago' --reverse HEAD| head -1) echo $NEWORIGIN git filter-branch --parent-filter ' test $GIT_COMMIT = '$NEWORIGIN' && echo || cat' \ --tag-name-filter cat $NEWORIGIN^.. mkdir $DIR cd $DIR git init git fetch $ORIGDIR shorthistory:master Thank you, bob