- 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/
是 if(a == 0 && b == 0 && c == 0) { return; } 一样 if(a == 0) { return; } if(b == 0) { return; } if(c =
我想做这样的事情: Class A Class B extends A Class C extends A B b = new B(); C c = new C(); b->setField("foo
我对 Mysql 世界很天真......:)我试图使用连接从表中查询, 我遇到结果集问题...表结构如下 下面... VIDEO_XXXXX | Field | Type
我最近问过关于从另一个类获取类的唯一实例的问题。 ( How to get specific instance of class from another class in Java? ) 所以,我正
假设我们有两种类型 using t1 = int*; using t2 = int*; 我知道 std::is_same::value会给我们true .什么是,或者是否有模板工具可以实现以下目标?
对于我的一个应用程序,我假设比较 2 个字符串的第一个字符比比较整个字符串是否相等要快。例如,如果我知道只有 2 个可能的字符串(在一组 n 字符串中)可以以相同的字母开头(比如说 'q'),如果是这
我想在我的NXP LPC11U37H主板(ARM Cortex-M0)上分析一些算法,因为我想知道执行特定算法需要多少个时钟周期。 我编写了这些简单的宏来进行一些分析: #define START_C
我在 Excel 中创建了一个宏,它将在 Excel 中复制一个表格,并将行除以我确定的特定数字(默认 = 500 行),并为宏创建的每个部门打开不同的工作表。 使用的代码是这样的: Sub Copy
我想根据第一个字典对第二个字典的值求和。如果我有字典 A 和 B。 A = {"Mark": ["a", "b", "c", "d"], "June": ["e", "a"], "John": ["a
当我这样做时 system()在 Perl 中调用,我通常根据 perldocs 检查返回码.嗯,我是这么想的。大部分时间 $rc!=0对我来说已经足够了。最近我在这里帮助了两个遇到问题的人syste
在我的进度条上,我试图让它检测 div 加载速度。 如果 div 加载速度很快,我想要实现的目标将很快达到 100%。但进度条的加载速度应该与 div 的加载速度一样快。 问题:如何让我的进度条加载
当我获得与本地时间相同的时间戳时,firebase 生成的服务器时间戳是否会自动转换为本地时间,或者我错过了什么? _firestore.collection("9213903123").docume
根据the original OWL definition of OWL DL ,我们不能为类和个体赋予相同的名称(这是 OWL DL 和 OWL Full 之间的明显区别)。 "Punning" i
我有两个输入复选框: 尝试使用 jQuery 来允许两个输入的行为相同。如果选中第一个复选框,则选中第二个复选框。如果未检查第 1 个,则不会检查第 2 个。反之亦然。 我有代码: $('inpu
可以从不同系统编译两个相同的java文件,但它们都有相同的内容操作系统(Windows 7),会生成不同的.class文件(大小)? 最佳答案 是的,您可以检查是否有不同版本的JDK(Java Dev
我正在清理另一个人的正则表达式,他们目前所有的都以结尾 .*$ 那么下面的不是完全一样吗? .* 最佳答案 .*将尽可能匹配,但默认情况下为 .不匹配换行符。如果您要匹配的文本有换行符并且您处于 MU
我使用 Pick ,但是如何编写可以选择多个字段的通用PickMulti呢? interface MyInterface { a: number, b: number, c: number
我有一个 SQL 数据库服务器和 2 个具有相同结构和数据的数据库。我在 2 个数据库中运行相同的 sql 查询,其中一个需要更长的时间,而另一个在不到 50% 的时间内完成。他们都有不同的执行计划。
我需要你的帮助,我有一个包含两列的表,一个 id 和 numpos,我希望 id 和 numops 具有相同的结果。 例子: $cnx = mysql_connect( "localhost", "r
如何将相同的列(在本例中按“级别”排序)放在一起?我正在做一个高分,我从我的数据库中按级别列出它们。如果他们处于同一级别,我希望他们具有相同的 ID。 但是我不想在别人身上显示ID。只有第一个。这是一
我是一名优秀的程序员,十分优秀!