Re: exporting the last N days of a repository
- From
Geoff Russell <geoffrey.russell@gmail.com>
- Date
- Nov 5, 2008, 03:54 UTC
- Message-ID
- <93c3eada0811041954i24a15e33tcdd89f50c162b8d2@mail.gmail.com>
- In-Reply-To
- <cc29171c0811041618jfbcb293l42a19805f06803a0@mail.gmail.com>
On Wed, Nov 5, 2008 at 10:48 AM, Bob Hiestand <bob.hiestand@gmail.com> wrote:
Show 44 quoted lines
> On Tue, Nov 4, 2008 at 4:49 PM, Geoff Russell
> <geoffrey.russell@gmail.com> 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" </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:masterThanks Bob but when I ran your version (using master@{15} instead of --since =...) it effectively dropped the recent history, not the old history. Imagine a sequence of 30 commits, no branches. I want to keep, for example, 15 through 30 and dump 1 to 15. So I need to have the working directory as at commit 15 and then all the changes to bring it up to 30.
... 11--12--13--14--15 ... 28--29--30
... Dump 1 to 15 keep 15 to 30.
Your script kept 1 to 15 and dumped the rest.
Cheers, Geoff.
Show 6 quoted lines
> > > Thank you, > > bob >
-- 6 Fifth Ave, St Morris, S.A. 5068 Australia Ph: 041 8805 184 / 08 8332 5069