[英]Svn migration to Git - Getting a status in Git on all changed files since a branch was created where the overall path has changed
我正在处理从 SVN 到 Git 的迁移。 我遇到的问题是,我希望能够获得 Git 分支中所有已修改文件的列表,因为该分支已创建。 所有这些分支都是由标签创建的。
当标签和分支之间没有结构变化时,这非常简单。 您签出分支,然后运行此命令以检查分支和标记之间的修改文件。
git diff --diff-filter=M --name-only <TAG>
不幸的是,由于存储库是从 SVN 迁移的,因此在某些情况下,当人们从标签创建分支时,整体路径已经改变。 标签中会有这样的结构。
源代码
集成测试
在分支中,他们将刚刚从 src 中取出所有内容并将其放在根目录中,因此分支看起来像这样......
在这种情况下,Git 检测到所有文件都已重命名,并且仅将其显示为状态(通常出现 R100)。 如果我关闭重命名检测,那么所有文件都会出现添加状态。
我尝试了一些不同的方法,但除了从 SVN 进行不同的迁移并更改路径之外,似乎没有其他办法。 另一种选择可能是只提取存储库的两个不同副本,检查一个中的标签和另一个中的分支,然后进行本地差异,但我希望不必尝试。
我对这个问题的解决方法是将分支文件移回子文件夹,然后差异可以再次识别修改过的文件。
在分支中创建子文件夹
mkdir 源代码
将根目录中的所有内容移动到该子文件夹中,忽略错误(将 src 复制到自身时会出错,-k 开关会忽略跳过尝试将 src 移动到自身的错误)
git mv -k *./src
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.