- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将“干净的架构”引入现有代码库,这涉及将许多文件移动到“ApplicationDomain”项目。
Git 已正确确定正在重命名的文件,但是,对于其中的几个文件,它显示所有行都已更改。我不知道为什么。
大部分文件没有被修改。十六进制转储和散列确认的内容完全相同。甚至文件权限都是相同的。
这令人沮丧,因为我不想删除文件的 blame 更改。
在 GitLab merge 请求中,对于这些文件,即使内容相同,它也会显示已更改的全部内容。对于其他类似移动的文件,GitLab 给出“文件重命名且未更改”。不同之处在于,前者的相似度指数在 96%-99% 之间,而后者的相似度为 100%。
对于实际已更改和移动的文件,Git 会正确显示重命名和已更改的特定单词/行。
知道为什么 git 对某些文件这样做吗?如何查看导致相似度得分低于 100% 的原因?
这是 git diff -M master my-branch
的示例输出:
diff --git a/Project/Service/BlockingXML.xsd b/Project.ApplicationDomain/Service/BlockingXML.xsd
similarity index 96%
rename from Project/Service/BlockingXML.xsd
rename to Project.ApplicationDomain/Service/BlockingXML.xsd
index 92479d70..c3945c8f 100644
--- a/Project/Service/BlockingXML.xsd
+++ b/Project.ApplicationDomain/Service/BlockingXML.xsd
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xs:schema id="rows" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xs:element name="rows" msdata:IsDataSet="true" msdata:Locale="en-US">
- <xs:complexType>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="row">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="BlockRingOverhang" type="xs:string" minOccurs="0" />
- <xs:element name="Qty" type="xs:string" minOccurs="0" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:choice>
- </xs:complexType>
- </xs:element>
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema id="rows" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xs:element name="rows" msdata:IsDataSet="true" msdata:Locale="en-US">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="row">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="BlockRingOverhang" type="xs:string" minOccurs="0" />
+ <xs:element name="Qty" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
</xs:schema>
\ No newline at end of file
我比较了几个文件的十六进制转储,它们是相同的。
举个例子:
Path: C:\Temp\GitChangesProblem\BlockingXML-original.xsd
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 EF BB BF 3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E <?xml version
00000010 3D 22 31 2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D ="1.0" encoding=
00000020 22 75 74 66 2D 38 22 3F 3E 0D 0A 3C 78 73 3A 73 "utf-8"?>..<xs:s
00000030 63 68 65 6D 61 20 69 64 3D 22 72 6F 77 73 22 20 chema id="rows"
00000040 78 6D 6C 6E 73 3D 22 22 20 78 6D 6C 6E 73 3A 78 xmlns="" xmlns:x
00000050 73 3D 22 68 74 74 70 3A 2F 2F 77 77 77 2E 77 33 s="http://www.w3
00000060 2E 6F 72 67 2F 32 30 30 31 2F 58 4D 4C 53 63 68 .org/2001/XMLSch
00000070 65 6D 61 22 20 78 6D 6C 6E 73 3A 6D 73 64 61 74 ema" xmlns:msdat
00000080 61 3D 22 75 72 6E 3A 73 63 68 65 6D 61 73 2D 6D a="urn:schemas-m
00000090 69 63 72 6F 73 6F 66 74 2D 63 6F 6D 3A 78 6D 6C icrosoft-com:xml
000000A0 2D 6D 73 64 61 74 61 22 3E 0D 0A 20 20 3C 78 73 -msdata">.. <xs
000000B0 3A 65 6C 65 6D 65 6E 74 20 6E 61 6D 65 3D 22 72 :element name="r
000000C0 6F 77 73 22 20 6D 73 64 61 74 61 3A 49 73 44 61 ows" msdata:IsDa
000000D0 74 61 53 65 74 3D 22 74 72 75 65 22 20 6D 73 64 taSet="true" msd
000000E0 61 74 61 3A 4C 6F 63 61 6C 65 3D 22 65 6E 2D 55 ata:Locale="en-U
000000F0 53 22 3E 0D 0A 20 20 20 20 3C 78 73 3A 63 6F 6D S">.. <xs:com
00000100 70 6C 65 78 54 79 70 65 3E 0D 0A 20 20 20 20 20 plexType>..
00000110 20 3C 78 73 3A 63 68 6F 69 63 65 20 6D 69 6E 4F <xs:choice minO
00000120 63 63 75 72 73 3D 22 30 22 20 6D 61 78 4F 63 63 ccurs="0" maxOcc
00000130 75 72 73 3D 22 75 6E 62 6F 75 6E 64 65 64 22 3E urs="unbounded">
00000140 0D 0A 20 20 20 20 20 20 20 20 3C 78 73 3A 65 6C .. <xs:el
00000150 65 6D 65 6E 74 20 6E 61 6D 65 3D 22 72 6F 77 22 ement name="row"
00000160 3E 0D 0A 20 20 20 20 20 20 20 20 20 20 3C 78 73 >.. <xs
00000170 3A 63 6F 6D 70 6C 65 78 54 79 70 65 3E 0D 0A 20 :complexType>..
00000180 20 20 20 20 20 20 20 20 20 20 20 3C 78 73 3A 73 <xs:s
00000190 65 71 75 65 6E 63 65 3E 0D 0A 20 20 20 20 20 20 equence>..
000001A0 20 20 20 20 20 20 20 20 3C 78 73 3A 65 6C 65 6D <xs:elem
000001B0 65 6E 74 20 6E 61 6D 65 3D 22 42 6C 6F 63 6B 52 ent name="BlockR
000001C0 69 6E 67 4F 76 65 72 68 61 6E 67 22 20 74 79 70 ingOverhang" typ
000001D0 65 3D 22 78 73 3A 73 74 72 69 6E 67 22 20 6D 69 e="xs:string" mi
000001E0 6E 4F 63 63 75 72 73 3D 22 30 22 20 2F 3E 0D 0A nOccurs="0" />..
000001F0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3C 78 <x
00000200 73 3A 65 6C 65 6D 65 6E 74 20 6E 61 6D 65 3D 22 s:element name="
00000210 51 74 79 22 20 74 79 70 65 3D 22 78 73 3A 73 74 Qty" type="xs:st
00000220 72 69 6E 67 22 20 6D 69 6E 4F 63 63 75 72 73 3D ring" minOccurs=
00000230 22 30 22 20 2F 3E 0D 0A 20 20 20 20 20 20 20 20 "0" />..
00000240 20 20 20 20 3C 2F 78 73 3A 73 65 71 75 65 6E 63 </xs:sequenc
00000250 65 3E 0D 0A 20 20 20 20 20 20 20 20 20 20 3C 2F e>.. </
00000260 78 73 3A 63 6F 6D 70 6C 65 78 54 79 70 65 3E 0D xs:complexType>.
00000270 0A 20 20 20 20 20 20 20 20 3C 2F 78 73 3A 65 6C . </xs:el
00000280 65 6D 65 6E 74 3E 0D 0A 20 20 20 20 20 20 3C 2F ement>.. </
00000290 78 73 3A 63 68 6F 69 63 65 3E 0D 0A 20 20 20 20 xs:choice>..
000002A0 3C 2F 78 73 3A 63 6F 6D 70 6C 65 78 54 79 70 65 </xs:complexType
000002B0 3E 0D 0A 20 20 3C 2F 78 73 3A 65 6C 65 6D 65 6E >.. </xs:elemen
000002C0 74 3E 0D 0A 3C 2F 78 73 3A 73 63 68 65 6D 61 3E t>..</xs:schema>
和
Path: C:\Temp\GitChangesProblem\BlockingXML-moved.xsd
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 EF BB BF 3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E <?xml version
00000010 3D 22 31 2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D ="1.0" encoding=
00000020 22 75 74 66 2D 38 22 3F 3E 0D 0A 3C 78 73 3A 73 "utf-8"?>..<xs:s
00000030 63 68 65 6D 61 20 69 64 3D 22 72 6F 77 73 22 20 chema id="rows"
00000040 78 6D 6C 6E 73 3D 22 22 20 78 6D 6C 6E 73 3A 78 xmlns="" xmlns:x
00000050 73 3D 22 68 74 74 70 3A 2F 2F 77 77 77 2E 77 33 s="http://www.w3
00000060 2E 6F 72 67 2F 32 30 30 31 2F 58 4D 4C 53 63 68 .org/2001/XMLSch
00000070 65 6D 61 22 20 78 6D 6C 6E 73 3A 6D 73 64 61 74 ema" xmlns:msdat
00000080 61 3D 22 75 72 6E 3A 73 63 68 65 6D 61 73 2D 6D a="urn:schemas-m
00000090 69 63 72 6F 73 6F 66 74 2D 63 6F 6D 3A 78 6D 6C icrosoft-com:xml
000000A0 2D 6D 73 64 61 74 61 22 3E 0D 0A 20 20 3C 78 73 -msdata">.. <xs
000000B0 3A 65 6C 65 6D 65 6E 74 20 6E 61 6D 65 3D 22 72 :element name="r
000000C0 6F 77 73 22 20 6D 73 64 61 74 61 3A 49 73 44 61 ows" msdata:IsDa
000000D0 74 61 53 65 74 3D 22 74 72 75 65 22 20 6D 73 64 taSet="true" msd
000000E0 61 74 61 3A 4C 6F 63 61 6C 65 3D 22 65 6E 2D 55 ata:Locale="en-U
000000F0 53 22 3E 0D 0A 20 20 20 20 3C 78 73 3A 63 6F 6D S">.. <xs:com
00000100 70 6C 65 78 54 79 70 65 3E 0D 0A 20 20 20 20 20 plexType>..
00000110 20 3C 78 73 3A 63 68 6F 69 63 65 20 6D 69 6E 4F <xs:choice minO
00000120 63 63 75 72 73 3D 22 30 22 20 6D 61 78 4F 63 63 ccurs="0" maxOcc
00000130 75 72 73 3D 22 75 6E 62 6F 75 6E 64 65 64 22 3E urs="unbounded">
00000140 0D 0A 20 20 20 20 20 20 20 20 3C 78 73 3A 65 6C .. <xs:el
00000150 65 6D 65 6E 74 20 6E 61 6D 65 3D 22 72 6F 77 22 ement name="row"
00000160 3E 0D 0A 20 20 20 20 20 20 20 20 20 20 3C 78 73 >.. <xs
00000170 3A 63 6F 6D 70 6C 65 78 54 79 70 65 3E 0D 0A 20 :complexType>..
00000180 20 20 20 20 20 20 20 20 20 20 20 3C 78 73 3A 73 <xs:s
00000190 65 71 75 65 6E 63 65 3E 0D 0A 20 20 20 20 20 20 equence>..
000001A0 20 20 20 20 20 20 20 20 3C 78 73 3A 65 6C 65 6D <xs:elem
000001B0 65 6E 74 20 6E 61 6D 65 3D 22 42 6C 6F 63 6B 52 ent name="BlockR
000001C0 69 6E 67 4F 76 65 72 68 61 6E 67 22 20 74 79 70 ingOverhang" typ
000001D0 65 3D 22 78 73 3A 73 74 72 69 6E 67 22 20 6D 69 e="xs:string" mi
000001E0 6E 4F 63 63 75 72 73 3D 22 30 22 20 2F 3E 0D 0A nOccurs="0" />..
000001F0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3C 78 <x
00000200 73 3A 65 6C 65 6D 65 6E 74 20 6E 61 6D 65 3D 22 s:element name="
00000210 51 74 79 22 20 74 79 70 65 3D 22 78 73 3A 73 74 Qty" type="xs:st
00000220 72 69 6E 67 22 20 6D 69 6E 4F 63 63 75 72 73 3D ring" minOccurs=
00000230 22 30 22 20 2F 3E 0D 0A 20 20 20 20 20 20 20 20 "0" />..
00000240 20 20 20 20 3C 2F 78 73 3A 73 65 71 75 65 6E 63 </xs:sequenc
00000250 65 3E 0D 0A 20 20 20 20 20 20 20 20 20 20 3C 2F e>.. </
00000260 78 73 3A 63 6F 6D 70 6C 65 78 54 79 70 65 3E 0D xs:complexType>.
00000270 0A 20 20 20 20 20 20 20 20 3C 2F 78 73 3A 65 6C . </xs:el
00000280 65 6D 65 6E 74 3E 0D 0A 20 20 20 20 20 20 3C 2F ement>.. </
00000290 78 73 3A 63 68 6F 69 63 65 3E 0D 0A 20 20 20 20 xs:choice>..
000002A0 3C 2F 78 73 3A 63 6F 6D 70 6C 65 78 54 79 70 65 </xs:complexType
000002B0 3E 0D 0A 20 20 3C 2F 78 73 3A 65 6C 65 6D 65 6E >.. </xs:elemen
000002C0 74 3E 0D 0A 3C 2F 78 73 3A 73 63 68 65 6D 61 3E t>..</xs:schema>
更新
我已经按照@LeGEC 的建议为几个有问题的文件运行了命令。
例如:git show master:Project/BlockingXML.cs | Format-Hex
和 git show current:Project.ApplicationDomain/BlockingXML.cs |格式-十六进制
行尾相同。文件开头的字符相同。对于某些文件,内容完全相同。对于其他人,唯一的区别是 C# 命名空间的变化。从理论上讲,git 应该能够将此视为文件移动,并且只显示修改的行,就像它对许多其他文件所做的那样。
最佳答案
小于 100% 的相似度分数意味着提交前后文件的 BLOB 对象 ID 不同。找到它们的对象 ID 并比较每个对象的“git cat-file -p”的输出。
关于git - 为什么 git 在文件移动后完全相同时看到整个文件内容已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69552603/
如何获取特定 UTF-8 字符串的字节序列?我看到正则表达式引擎中的某些错误仅在某些边缘情况下才会触发,我想确切地知道它正在处理哪些数据。 最佳答案 也许 charToRaw ? > charToRa
考虑一个具有许多变量的 java 程序,其中一些是循环计数器,我希望看到这些变量随时间变化的值,而不是在代码中到处放置 print 语句。 为什么?我认为它可以帮助我轻松调试。 Example- in
有没有办法查看 JavaScript 正在创建的“线程”?例如,如果我有一个附加到 DOM 元素的事件处理程序,我假设 JavaScript 会隐式地创建一个新线程来在后台运行该代码?如果是这样,有没
我正在使用反射 API 来调用类运行时并调用其方法。但我看到 java.lang.reflect.InitationTargetException 异常。 我需要调用一个名为 - TestClass
考虑一个名为 t.cmd 的命令脚本,它只包含以下两行: @exit /b 123 @echo If you see this, THEN EXIT FAILED.. 因此,该脚本只是将脚本执行过程的
我最近一直在努力学习编程语言实用学第 3 版,以了解更多关于语言在底层如何工作的信息,并且通过查看由真正基本的 GCC 编译的 C 代码生成的程序集,我获得了很多进展.我开始对 C 系列的静态语言越来
最简单的制作方法是什么QWebView识别并正确加载网页上的 Flash? 最佳答案 似乎只需两行即可实现(当然,假设目标系统上安装了闪存): QWebSettings *settings = QWe
我想通过编程(使用VBA)访问其他人与我共享的日历。它们在我的Outlook中的“人民日历”下列出。我在网上搜索了此内容,所有建议所做的仅使我感到困惑。如何从“人的日历”中获取共享给我的所有日历的
使用MongoDB Compass,可以看到数据库用户或创建新用户吗? 最佳答案 香港专业教育学院在命令行上使用以下命令进行管理: mongo use (my database name) db.cr
我正在CentOS 7.4.1708(核心),Java(TM)SE运行时环境(内部版本1.8.0_152-b16)上运行eXist-db 3.6.1。我希望能够在person.xml中的最后一个记录之
我需要确认。 客户端 1 在事务内的表中插入行。 客户端 2 使用 SELECT 请求该表。如果在此客户端上隔离级别设置为 READ COMMITTED,您能否确认 SELECT 不会返回客户端 1
我刚刚安装了 python-dev: $ sudo apt-get install python-dev 这样我就可以开始使用 P4Python 了。但是当我尝试导入 P4 时,我得到: Traceb
我正在使用 msys 和 mingw 编译 libtorrent-rasterbar-0.16.16。./configure 运行良好,直到它进入 boost 库检查。我有 boost 1.51,我设
我在 GO 项目的 Travis CI 上有一个奇怪的行为。 [这里] 失败了,提示一个函数只接受 1 个参数并用 2 个参数调用。 src/finances-service/main.go:45:1
这个问题已经有答案了: What are enums and why are they useful? (27 个回答) 已关闭 4 年前。 作为 Java 初学者,我接触到了枚举,这让我对类型声明感
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我正在使用 preactjs 创建我的应用程序。最重要的是,我正在使用剑道网格。在网格内,我想显示一个超链接。如果用户点击链接,它应该改变路线。为了呈现链接,我使用了 preact-router。 这
有没有办法只查看 Node.js 中的函数签名?我知道 fn.toString() 但不需要所有代码,只需要签名。 最佳答案 var source = fn.toString(); var signa
如何设置 vim 以查看我在 ubuntu 上安装的 ruby rvm。 rvm 已安装,ruby 从终端返回。 renshaw@renshaw-TravelMate-5740G:~$ ruby
我试图在我的 Android 应用程序中防止 OutOfMemoryError。我已经阅读了很多帖子,但我仍然无法解决。 该应用程序有后台 Activity ,所以我认为这是主要问题。 OutOfMe
我是一名优秀的程序员,十分优秀!