我正在开发一个Git仓库,它是从SVN仓库中撤出的git svn
.许多月前,SVN repo是从原始(上游)项目的源tarball创建的.原始项目具有如下文件结构:
/
COPYING
README
src/
...many source files...
Run Code Online (Sandbox Code Playgroud)
然而,当创建SVN repo时,README文件等被剥离,并且应用程序是以src/
root身份创建的,因此repo现在看起来像:
/
...many source files
Run Code Online (Sandbox Code Playgroud)
我最近将这个SVN repo转换为Git仓库.原始项目也在Git仓库中,我想开始跟踪上游更改,以便我可以轻松查看已进行的自定义更改(并将修补程序提交回原始项目,如果适用).我在上游回购中找到了我们的SVN repo创建的提交,所以现在我想将我们的更改应用于该提交(在分支中).我可以轻松地创建一组补丁git format-patch
并将其应用于克隆的上游repo ...除了文件结构不同,因此补丁不再指向正确的文件.有没有办法将补丁应用git format-patch
到src/
克隆回购中的目录?(请注意,Git补丁也有必要的信息,如原作者姓名,电子邮件和日期,我也想申请,而不是手工完成,即乱搞GIT_AUTHOR_EMAIL
等)
在我看来,你应该可以git filter-branch
用来改变先前克隆的SVN仓库中的路径.然后,在更新了所有文件路径之后,您现在可以使用git format-patch
创建将应用于新克隆的上游存储库的修补程序.
尝试:
git filter-branch --tree-filter 'mkdir src; git ls-tree --name-only $GIT_COMMIT | xargs -I files mv files src'
归档时间: |
|
查看次数: |
4699 次 |
最近记录: |