I have the following tree path:
A C B | | | 3.|<--. | | | 2.|-->' | | | 1.|------>' |
Where A is the root repository for my overlays. B was created by cloning A (1)
B is where development has been progressing. Finding the set of objects to move from A to B is easily obtained via:
git-rev-list --objects B ^A
The problem is now when I want to re-sync B with the latest version of A. What I currently do is:
Create a new C tree based on latest A (2) and then merge B back into it (3):
git-merge-tree -m $(git-merge-base C B) C B
That works great. I now have a tree with all of the latest A code and the B changes applied. The problem is now in getting the list of objects to create the overlay repository.
cg-log -f -r C:B
Will correctly show only those files that have actually changed between C and B in the first log entry. However, cg-log does not show me the list of tree objects that have changed between C and B.
The problem is that if I run:
git-rev-list --objects B ^C
It shows me all of the tree and commit objects but also gives a list of all of the files that changed between A and C as if they are needed to move C to B.
Am I overlooking something, misusing things, or ?
Thanks, James