Right way to import a repo

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

Right way to import a repo

From: Florian Lindner <hidden>
Date: 2016-06-15 22:55:34

Hello,

I have two repositories. tools and flof. I want to merge flof into tools (and 
flof will be deleted after that) while keeping history intact. Of course I've 
googled that and found a number of different solution which all seem to be 
pretty komplex, so I just tried it myself. It seems to work.... are there any 
problems with my approach?

~/software/tools.test (git)-[master] % git remote add fl ~/flof

~/software/tools.test (git)-[master] % git fetch fl
warning: no common commits
remote: Counting objects: 475, done.
remote: Compressing objects: 100% (460/460), done.
remote: Total 475 (delta 251), reused 0 (delta 0)
Receiving objects: 100% (475/475), 190.40 KiB, done.
Resolving deltas: 100% (251/251), done.
From /home/florian/flof
 * [new branch]      master     -> fl/master
 * [new branch]      v2-rewrite -> fl/v2-rewrite

/software/tools.test (git)-[master] % git checkout -b import fl/master
Branch import set up to track remote branch master from fl.
Switched to a new branch 'import'

Doing some mkdir und git mv for reorganisation.

~/software/tools.test/flof (git)-[import] % git commit -m "Reorganize flof."
[import a00ab54] Reorganize flof.
 152 files changed, 0 insertions(+), 0 deletions(-)
 rename {doc => flof/doc}/common.rst (100%)
 rename {doc => flof/doc}/conf.py (100%)
 [...]

~/software/tools.test/flof (git)-[import] % git checkout master
Switched to branch 'master'

~/software/tools.test (git)-[master] % git merge import
Auto-merging .gitignore
CONFLICT (add/add): Merge conflict in .gitignore
Automatic merge failed; fix conflicts and then commit the result.

Resolving the conflict.

~/software/tools.test (git)-[master|merge] % git add .gitignore

~/software/tools.test (git)-[master|merge] % git commit -m "Merged flof."
[master b8c85be] Merged flof.

~/software/tools.test (git)-[master] % git remote rm fl

Are thery any problems with this procedure? The history seems to intact. I'm 
quite unsure since still being a git beginner. 

Thanks,

Florian

Re: Right way to import a repo

From: Michael J Gruber <hidden>
Date: 2016-06-15 22:55:35

Florian Lindner venit, vidit, dixit 21.12.2012 17:11:
Hello,

I have two repositories. tools and flof. I want to merge flof into tools (and 
flof will be deleted after that) while keeping history intact. Of course I've 
googled that and found a number of different solution which all seem to be 
pretty komplex, so I just tried it myself. It seems to work.... are there any 
problems with my approach?

~/software/tools.test (git)-[master] % git remote add fl ~/flof

~/software/tools.test (git)-[master] % git fetch fl
warning: no common commits
remote: Counting objects: 475, done.
remote: Compressing objects: 100% (460/460), done.
remote: Total 475 (delta 251), reused 0 (delta 0)
Receiving objects: 100% (475/475), 190.40 KiB, done.
Resolving deltas: 100% (251/251), done.
From /home/florian/flof
 * [new branch]      master     -> fl/master
 * [new branch]      v2-rewrite -> fl/v2-rewrite
Two disjoint histories, nothing wrong with that.
/software/tools.test (git)-[master] % git checkout -b import fl/master
Branch import set up to track remote branch master from fl.
Switched to a new branch 'import'

Doing some mkdir und git mv for reorganisation.
Here avoid possible problems from both projects using the same root (in
the filesystem/tree sense).
~/software/tools.test/flof (git)-[import] % git commit -m "Reorganize flof."
[import a00ab54] Reorganize flof.
 152 files changed, 0 insertions(+), 0 deletions(-)
 rename {doc => flof/doc}/common.rst (100%)
 rename {doc => flof/doc}/conf.py (100%)
 [...]

~/software/tools.test/flof (git)-[import] % git checkout master
Switched to branch 'master'

~/software/tools.test (git)-[master] % git merge import
Auto-merging .gitignore
CONFLICT (add/add): Merge conflict in .gitignore
Automatic merge failed; fix conflicts and then commit the result.

Resolving the conflict.

~/software/tools.test (git)-[master|merge] % git add .gitignore

~/software/tools.test (git)-[master|merge] % git commit -m "Merged flof."
[master b8c85be] Merged flof.

~/software/tools.test (git)-[master] % git remote rm fl

Are thery any problems with this procedure? The history seems to intact. I'm 
quite unsure since still being a git beginner. 
It works in the sense that git follows the renames (moves) you had to do
prior to the merge.

Other tools like git-subtree do that history implanting in one step, by
putting the added project into a subtree (rewriting the history). That
way you don't have reorg commits in the history.

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