Git subtree repository split provides incomplete revision history

26 views Asked by At

Background

I'm attempting to split a big, disorganized catchall repository into several smaller repositories. As I understand it, `subtree` does exactly this. However, the `subtree split --prefix=Geocode/` only appears to pull the history of the files in that directory ONLY for the period of time in which they were in that directory. This is an issue because they've spent most of their lives in the root directory of the original repository and were only added to a subdirectory for the purposes of splitting the existing repo. This means the new repo's log only shows a single commit.

What I tried:

First move all relevant files into a new subdirectory `geocode/` within the `bi/` repo. Then commit the changes and split on that new subdirectory.
    cd ~/bi
    mkdir geocode/
    mv *Geocode* geocode/
    mv coordinate* geocode/
    mv geoImport* geocode/
    git add -A
    git commit "pulled geocoding stuff into new subdirectory for repo split"
    git subtree split --prefix=geocode/ -b geocode

Then, once everything is there, make a new local repo to push the contents of that new subdirectory

    mkdir ../geocoding
    cd ../geocoding
    git init --bare

Go back to the old repo and push

    cd ../bi
    git push ../geocoding/ geocode:master

Pull from the local and see if everything transfered over

    mkdir ../geocodeTest
    cd ../geocodeTest
    git clone ../geocoding
    ls -lh ./
    git log

What I expected:

I would expect to see all the files from the `geocode/` subdirectory in `geocodeTest/` and see an extensive log to all the changes made to those files.

What I got:

The good: All the files from the geocode/ subdirectory (this is good)

The bad: Only a single commit in the log from when I created the geocode/ subdirectory and moved the files into it. No entries regarding changes to the individual files themselves prior to that point.


What I'm asking:

How can I capture the revision history of the individual files before they were moved into that directory?
0

There are 0 answers