Importing a Subversion repository with a non-standard layout into Git

南笙酒味 提交于 2020-01-23 10:13:31

问题


I'm trying to (permanently) migrate my group's Subversion repository to Git, but I'm running onto problems trying to clean up its non-standard directory structure.

Some of the project's content is contained in trunk and branches folders, but not all of it. The project on Subversion is laid out like this:

project/trunk/
project/branches/feature_1
project/branches/feature_2
project/libraries
project/crontab
...

After importing, I want the Git repository to be laid out like so:

project/html # the content of the old trunk and branches folders
project/libraries
project/crontab
...

Running svn2git with the appropriate options will handle the trunk and branches directories correctly, but how can I also include the history for the other folders? It seems like git-filter-branch could help, but I'm not sure how to use it for this.


回答1:


Import each main subfolder of your repo into a separate git repo and then use the subtree merging method to merge the git repos into one repo. You may end up with a few duplicate commits though.

If you have many subdirectories you may want to do an svnadmin dump, then svndumpfilter exclude .. twice to split your svn repo into two halves and then use the subtree merging method to re-join them. This would have a cleaner history than doing many subtree merges.



来源:https://stackoverflow.com/questions/3910237/importing-a-subversion-repository-with-a-non-standard-layout-into-git

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!