Re: exporting the last N days of a repository
- From
- Bob Hiestand <bob.hiestand@gmail.com>
- Date
- Nov 5, 2008, 00:18 UTC
- Message-ID
- <cc29171c0811041618jfbcb293l42a19805f06803a0@mail.gmail.com>
- In-Reply-To
- <93c3eada0811041449u20e0fc74gf6a1cb420923e484@mail.gmail.com>
On Tue, Nov 4, 2008 at 4:49 PM, Geoff Russell <geoffrey.russell@gmail.com> wrote:
Show 24 quoted lines
> 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" </dev/null ) && \
> 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:masterThank you,
bob