Re: exporting the last N days of a repository

4 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: exporting the last N days of a repository

From: Geoff Russell <hidden>
Date: 2016-06-15 22:45:36

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.

Re: exporting the last N days of a repository

From: Bob Hiestand <hidden>
Date: 2016-06-15 22:45:36

On Tue, Nov 4, 2008 at 4:49 PM, Geoff Russell
[off-list ref] 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:master


Thank you,

bob

Re: exporting the last N days of a repository

From: Geoff Russell <hidden>
Date: 2016-06-15 22:45:36

On Wed, Nov 5, 2008 at 10:48 AM, Bob Hiestand [off-list ref] wrote:
On Tue, Nov 4, 2008 at 4:49 PM, Geoff Russell
[off-list ref] wrote:
quoted
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:master
Thanks 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.




Thank you,

bob


-- 
6 Fifth Ave,
St Morris, S.A. 5068
Australia
Ph: 041 8805 184 / 08 8332 5069

Re: exporting the last N days of a repository

From: Bob Hiestand <hidden>
Date: 2016-06-15 22:45:36

On Tue, Nov 4, 2008 at 9:54 PM, Geoff Russell
[off-list ref] wrote:
Thanks 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.
I guess that's because you're using reflog syntax and pulling up a
commit that isn't on the current branch, due to rebasing, resetting,
or any such activity.  Using the reflog syntax, for the few commits I
tried, produced the desired result.

I'm not sure why you'd use reflogs, however, as I believe the
--max-age or --since parameters to rev-list seem to be more in line
with your request.  Actually, I'd be surprised if you couldn't
identify the one commit that you wanted to use and use it directly;
the rev-list was just to show an example.

Thank you,

bob
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help