about summary refs log tree commit diff
path: root/third_party/git/Documentation/RelNotes
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/Documentation/RelNotes')
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.0.1.txt42
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.0.2.txt65
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.0.3.txt58
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.0.4.txt22
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.0.5.txt26
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.0.6.txt21
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.0.7.txt18
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.0.txt469
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.1.1.txt65
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.1.2.txt50
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.1.3.txt45
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.1.4.txt30
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.1.5.txt42
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.1.6.txt45
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.1.txt371
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.2.1.txt47
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.2.2.txt61
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.2.3.txt27
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.2.4.txt28
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.2.5.txt30
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.2.txt197
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.3.1.txt10
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.3.2.txt58
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.3.3.txt31
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.3.4.txt35
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.3.5.txt94
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.3.6.txt48
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.3.7.txt45
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.3.8.txt25
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.3.txt366
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.4.1.txt17
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.4.2.txt43
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.4.3.txt27
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.4.4.txt66
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.4.5.txt56
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.4.6.txt43
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.4.7.txt10
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.4.txt377
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.5.1.txt44
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.5.2.txt27
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.5.3.txt12
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.5.4.txt7
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.5.5.txt11
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.5.6.txt10
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.5.txt207
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.6.1.txt28
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.6.2.txt40
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.6.3.txt52
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.6.4.txt47
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.6.5.txt29
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.6.6.txt10
-rw-r--r--third_party/git/Documentation/RelNotes/1.5.6.txt115
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.0.1.txt36
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.0.2.txt81
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.0.3.txt117
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.0.4.txt39
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.0.5.txt56
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.0.6.txt33
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.0.txt258
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.1.1.txt59
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.1.2.txt39
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.1.3.txt28
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.1.4.txt41
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.1.txt280
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.2.1.txt19
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.2.2.txt45
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.2.3.txt22
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.2.4.txt39
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.2.5.txt21
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.2.txt164
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.3.1.txt10
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.3.2.txt61
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.3.3.txt38
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.3.4.txt36
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.3.txt182
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.4.1.txt46
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.4.2.txt32
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.4.3.txt29
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.4.4.txt26
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.4.5.txt20
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.4.txt147
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.5.1.txt20
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.5.2.txt19
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.5.3.txt63
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.5.4.txt32
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.5.5.txt49
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.5.6.txt23
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.5.7.txt19
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.5.8.txt28
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.5.9.txt18
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.5.txt169
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.6.1.txt37
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.6.2.txt46
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.6.3.txt23
-rw-r--r--third_party/git/Documentation/RelNotes/1.6.6.txt224
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.0.1.txt35
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.0.2.txt40
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.0.3.txt34
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.0.4.txt27
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.0.5.txt26
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.0.6.txt13
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.0.7.txt16
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.0.8.txt10
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.0.9.txt8
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.0.txt214
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.1.1.txt96
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.1.2.txt28
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.1.3.txt10
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.1.4.txt8
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.1.txt89
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.10.1.txt78
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.10.2.txt85
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.10.3.txt43
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.10.4.txt29
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.10.5.txt12
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.10.txt219
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.11.1.txt9
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.11.2.txt53
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.11.3.txt53
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.11.4.txt31
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.11.5.txt36
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.11.6.txt84
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.11.7.txt46
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.11.txt139
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.12.1.txt134
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.12.2.txt40
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.12.3.txt34
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.12.4.txt23
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.12.txt136
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.2.1.txt25
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.2.2.txt22
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.2.3.txt39
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.2.4.txt10
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.2.5.txt8
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.2.txt151
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.3.1.txt14
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.3.2.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.3.3.txt54
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.3.4.txt45
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.3.5.txt34
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.3.txt76
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.4.1.txt27
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.4.2.txt58
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.4.3.txt32
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.4.4.txt35
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.4.5.txt4
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.4.txt156
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.5.1.txt47
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.5.2.txt57
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.5.3.txt32
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.5.4.txt21
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.5.txt132
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.6.1.txt63
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.6.2.txt8
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.6.3.txt24
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.6.4.txt32
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.6.5.txt26
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.6.6.txt16
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.6.txt136
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.7.1.txt60
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.7.2.txt44
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.7.3.txt19
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.7.4.txt14
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.7.5.txt14
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.7.6.txt20
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.7.7.txt13
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.7.txt134
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.8.1.txt38
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.8.2.txt71
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.8.3.txt16
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.8.4.txt23
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.8.5.txt19
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.8.6.txt22
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.8.txt161
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.9.1.txt63
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.9.2.txt69
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.9.3.txt51
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.9.4.txt24
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.9.5.txt23
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.9.6.txt12
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.9.7.txt13
-rw-r--r--third_party/git/Documentation/RelNotes/1.7.9.txt112
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.0.1.txt64
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.0.2.txt34
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.0.3.txt14
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.0.txt267
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.1.1.txt87
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.1.2.txt25
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.1.3.txt47
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.1.4.txt11
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.1.5.txt47
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.1.6.txt39
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.1.txt241
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.2.1.txt115
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.2.2.txt61
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.2.3.txt19
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.2.txt495
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.3.1.txt14
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.3.2.txt59
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.3.3.txt47
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.3.4.txt20
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.3.txt436
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.4.1.txt71
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.4.2.txt77
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.4.3.txt54
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.4.4.txt10
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.4.5.txt13
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.4.txt486
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.5.1.txt9
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.5.2.txt20
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.5.3.txt27
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.5.4.txt48
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.5.5.txt37
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.5.6.txt34
-rw-r--r--third_party/git/Documentation/RelNotes/1.8.5.txt456
-rw-r--r--third_party/git/Documentation/RelNotes/1.9.0.txt345
-rw-r--r--third_party/git/Documentation/RelNotes/1.9.1.txt59
-rw-r--r--third_party/git/Documentation/RelNotes/1.9.2.txt67
-rw-r--r--third_party/git/Documentation/RelNotes/1.9.3.txt21
-rw-r--r--third_party/git/Documentation/RelNotes/1.9.4.txt16
-rw-r--r--third_party/git/Documentation/RelNotes/1.9.5.txt34
-rw-r--r--third_party/git/Documentation/RelNotes/2.0.0.txt364
-rw-r--r--third_party/git/Documentation/RelNotes/2.0.1.txt115
-rw-r--r--third_party/git/Documentation/RelNotes/2.0.2.txt32
-rw-r--r--third_party/git/Documentation/RelNotes/2.0.3.txt17
-rw-r--r--third_party/git/Documentation/RelNotes/2.0.4.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.0.5.txt34
-rw-r--r--third_party/git/Documentation/RelNotes/2.1.0.txt391
-rw-r--r--third_party/git/Documentation/RelNotes/2.1.1.txt44
-rw-r--r--third_party/git/Documentation/RelNotes/2.1.2.txt20
-rw-r--r--third_party/git/Documentation/RelNotes/2.1.3.txt26
-rw-r--r--third_party/git/Documentation/RelNotes/2.1.4.txt34
-rw-r--r--third_party/git/Documentation/RelNotes/2.10.0.txt675
-rw-r--r--third_party/git/Documentation/RelNotes/2.10.1.txt131
-rw-r--r--third_party/git/Documentation/RelNotes/2.10.2.txt111
-rw-r--r--third_party/git/Documentation/RelNotes/2.10.3.txt55
-rw-r--r--third_party/git/Documentation/RelNotes/2.10.4.txt4
-rw-r--r--third_party/git/Documentation/RelNotes/2.10.5.txt17
-rw-r--r--third_party/git/Documentation/RelNotes/2.11.0.txt593
-rw-r--r--third_party/git/Documentation/RelNotes/2.11.1.txt168
-rw-r--r--third_party/git/Documentation/RelNotes/2.11.2.txt12
-rw-r--r--third_party/git/Documentation/RelNotes/2.11.3.txt4
-rw-r--r--third_party/git/Documentation/RelNotes/2.11.4.txt17
-rw-r--r--third_party/git/Documentation/RelNotes/2.12.0.txt500
-rw-r--r--third_party/git/Documentation/RelNotes/2.12.1.txt41
-rw-r--r--third_party/git/Documentation/RelNotes/2.12.2.txt83
-rw-r--r--third_party/git/Documentation/RelNotes/2.12.3.txt64
-rw-r--r--third_party/git/Documentation/RelNotes/2.12.4.txt4
-rw-r--r--third_party/git/Documentation/RelNotes/2.12.5.txt17
-rw-r--r--third_party/git/Documentation/RelNotes/2.13.0.txt618
-rw-r--r--third_party/git/Documentation/RelNotes/2.13.1.txt114
-rw-r--r--third_party/git/Documentation/RelNotes/2.13.2.txt54
-rw-r--r--third_party/git/Documentation/RelNotes/2.13.3.txt62
-rw-r--r--third_party/git/Documentation/RelNotes/2.13.4.txt28
-rw-r--r--third_party/git/Documentation/RelNotes/2.13.5.txt4
-rw-r--r--third_party/git/Documentation/RelNotes/2.13.6.txt17
-rw-r--r--third_party/git/Documentation/RelNotes/2.13.7.txt20
-rw-r--r--third_party/git/Documentation/RelNotes/2.14.0.txt517
-rw-r--r--third_party/git/Documentation/RelNotes/2.14.1.txt4
-rw-r--r--third_party/git/Documentation/RelNotes/2.14.2.txt105
-rw-r--r--third_party/git/Documentation/RelNotes/2.14.3.txt99
-rw-r--r--third_party/git/Documentation/RelNotes/2.14.4.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.14.5.txt16
-rw-r--r--third_party/git/Documentation/RelNotes/2.14.6.txt54
-rw-r--r--third_party/git/Documentation/RelNotes/2.15.0.txt508
-rw-r--r--third_party/git/Documentation/RelNotes/2.15.1.txt88
-rw-r--r--third_party/git/Documentation/RelNotes/2.15.2.txt50
-rw-r--r--third_party/git/Documentation/RelNotes/2.15.3.txt6
-rw-r--r--third_party/git/Documentation/RelNotes/2.15.4.txt11
-rw-r--r--third_party/git/Documentation/RelNotes/2.16.0.txt482
-rw-r--r--third_party/git/Documentation/RelNotes/2.16.1.txt11
-rw-r--r--third_party/git/Documentation/RelNotes/2.16.2.txt30
-rw-r--r--third_party/git/Documentation/RelNotes/2.16.3.txt49
-rw-r--r--third_party/git/Documentation/RelNotes/2.16.4.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.16.5.txt6
-rw-r--r--third_party/git/Documentation/RelNotes/2.16.6.txt8
-rw-r--r--third_party/git/Documentation/RelNotes/2.17.0.txt398
-rw-r--r--third_party/git/Documentation/RelNotes/2.17.1.txt16
-rw-r--r--third_party/git/Documentation/RelNotes/2.17.2.txt12
-rw-r--r--third_party/git/Documentation/RelNotes/2.17.3.txt12
-rw-r--r--third_party/git/Documentation/RelNotes/2.17.4.txt16
-rw-r--r--third_party/git/Documentation/RelNotes/2.17.5.txt22
-rw-r--r--third_party/git/Documentation/RelNotes/2.18.0.txt583
-rw-r--r--third_party/git/Documentation/RelNotes/2.18.1.txt6
-rw-r--r--third_party/git/Documentation/RelNotes/2.18.2.txt8
-rw-r--r--third_party/git/Documentation/RelNotes/2.18.3.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.18.4.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.19.0.txt615
-rw-r--r--third_party/git/Documentation/RelNotes/2.19.1.txt6
-rw-r--r--third_party/git/Documentation/RelNotes/2.19.2.txt108
-rw-r--r--third_party/git/Documentation/RelNotes/2.19.3.txt8
-rw-r--r--third_party/git/Documentation/RelNotes/2.19.4.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.19.5.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.2.0.txt313
-rw-r--r--third_party/git/Documentation/RelNotes/2.2.1.txt34
-rw-r--r--third_party/git/Documentation/RelNotes/2.2.2.txt63
-rw-r--r--third_party/git/Documentation/RelNotes/2.2.3.txt9
-rw-r--r--third_party/git/Documentation/RelNotes/2.20.0.txt700
-rw-r--r--third_party/git/Documentation/RelNotes/2.20.1.txt20
-rw-r--r--third_party/git/Documentation/RelNotes/2.20.2.txt18
-rw-r--r--third_party/git/Documentation/RelNotes/2.20.3.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.20.4.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.21.0.txt451
-rw-r--r--third_party/git/Documentation/RelNotes/2.21.1.txt12
-rw-r--r--third_party/git/Documentation/RelNotes/2.21.2.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.21.3.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.22.0.txt597
-rw-r--r--third_party/git/Documentation/RelNotes/2.22.1.txt150
-rw-r--r--third_party/git/Documentation/RelNotes/2.22.2.txt8
-rw-r--r--third_party/git/Documentation/RelNotes/2.22.3.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.22.4.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.23.0.txt348
-rw-r--r--third_party/git/Documentation/RelNotes/2.23.1.txt8
-rw-r--r--third_party/git/Documentation/RelNotes/2.23.2.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.23.3.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.24.0.txt398
-rw-r--r--third_party/git/Documentation/RelNotes/2.24.1.txt8
-rw-r--r--third_party/git/Documentation/RelNotes/2.24.2.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.24.3.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.25.0.txt370
-rw-r--r--third_party/git/Documentation/RelNotes/2.25.1.txt55
-rw-r--r--third_party/git/Documentation/RelNotes/2.25.2.txt60
-rw-r--r--third_party/git/Documentation/RelNotes/2.25.3.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.25.4.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.26.0.txt341
-rw-r--r--third_party/git/Documentation/RelNotes/2.26.1.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.26.2.txt5
-rw-r--r--third_party/git/Documentation/RelNotes/2.27.0.txt525
-rw-r--r--third_party/git/Documentation/RelNotes/2.28.0.txt236
-rw-r--r--third_party/git/Documentation/RelNotes/2.29.0.txt514
-rw-r--r--third_party/git/Documentation/RelNotes/2.29.1.txt11
-rw-r--r--third_party/git/Documentation/RelNotes/2.29.2.txt12
-rw-r--r--third_party/git/Documentation/RelNotes/2.3.0.txt300
-rw-r--r--third_party/git/Documentation/RelNotes/2.3.1.txt52
-rw-r--r--third_party/git/Documentation/RelNotes/2.3.10.txt18
-rw-r--r--third_party/git/Documentation/RelNotes/2.3.2.txt79
-rw-r--r--third_party/git/Documentation/RelNotes/2.3.3.txt39
-rw-r--r--third_party/git/Documentation/RelNotes/2.3.4.txt32
-rw-r--r--third_party/git/Documentation/RelNotes/2.3.5.txt44
-rw-r--r--third_party/git/Documentation/RelNotes/2.3.6.txt13
-rw-r--r--third_party/git/Documentation/RelNotes/2.3.7.txt21
-rw-r--r--third_party/git/Documentation/RelNotes/2.3.8.txt22
-rw-r--r--third_party/git/Documentation/RelNotes/2.3.9.txt9
-rw-r--r--third_party/git/Documentation/RelNotes/2.4.0.txt514
-rw-r--r--third_party/git/Documentation/RelNotes/2.4.1.txt40
-rw-r--r--third_party/git/Documentation/RelNotes/2.4.10.txt18
-rw-r--r--third_party/git/Documentation/RelNotes/2.4.11.txt11
-rw-r--r--third_party/git/Documentation/RelNotes/2.4.12.txt12
-rw-r--r--third_party/git/Documentation/RelNotes/2.4.2.txt45
-rw-r--r--third_party/git/Documentation/RelNotes/2.4.3.txt76
-rw-r--r--third_party/git/Documentation/RelNotes/2.4.4.txt35
-rw-r--r--third_party/git/Documentation/RelNotes/2.4.5.txt28
-rw-r--r--third_party/git/Documentation/RelNotes/2.4.6.txt23
-rw-r--r--third_party/git/Documentation/RelNotes/2.4.7.txt53
-rw-r--r--third_party/git/Documentation/RelNotes/2.4.8.txt21
-rw-r--r--third_party/git/Documentation/RelNotes/2.4.9.txt9
-rw-r--r--third_party/git/Documentation/RelNotes/2.5.0.txt564
-rw-r--r--third_party/git/Documentation/RelNotes/2.5.1.txt65
-rw-r--r--third_party/git/Documentation/RelNotes/2.5.2.txt63
-rw-r--r--third_party/git/Documentation/RelNotes/2.5.3.txt17
-rw-r--r--third_party/git/Documentation/RelNotes/2.5.4.txt18
-rw-r--r--third_party/git/Documentation/RelNotes/2.5.5.txt11
-rw-r--r--third_party/git/Documentation/RelNotes/2.5.6.txt12
-rw-r--r--third_party/git/Documentation/RelNotes/2.6.0.txt370
-rw-r--r--third_party/git/Documentation/RelNotes/2.6.1.txt18
-rw-r--r--third_party/git/Documentation/RelNotes/2.6.2.txt65
-rw-r--r--third_party/git/Documentation/RelNotes/2.6.3.txt111
-rw-r--r--third_party/git/Documentation/RelNotes/2.6.4.txt63
-rw-r--r--third_party/git/Documentation/RelNotes/2.6.5.txt58
-rw-r--r--third_party/git/Documentation/RelNotes/2.6.6.txt11
-rw-r--r--third_party/git/Documentation/RelNotes/2.6.7.txt12
-rw-r--r--third_party/git/Documentation/RelNotes/2.7.0.txt414
-rw-r--r--third_party/git/Documentation/RelNotes/2.7.1.txt87
-rw-r--r--third_party/git/Documentation/RelNotes/2.7.2.txt41
-rw-r--r--third_party/git/Documentation/RelNotes/2.7.3.txt62
-rw-r--r--third_party/git/Documentation/RelNotes/2.7.4.txt11
-rw-r--r--third_party/git/Documentation/RelNotes/2.7.5.txt14
-rw-r--r--third_party/git/Documentation/RelNotes/2.7.6.txt25
-rw-r--r--third_party/git/Documentation/RelNotes/2.8.0.txt439
-rw-r--r--third_party/git/Documentation/RelNotes/2.8.1.txt9
-rw-r--r--third_party/git/Documentation/RelNotes/2.8.2.txt70
-rw-r--r--third_party/git/Documentation/RelNotes/2.8.3.txt101
-rw-r--r--third_party/git/Documentation/RelNotes/2.8.4.txt69
-rw-r--r--third_party/git/Documentation/RelNotes/2.8.5.txt12
-rw-r--r--third_party/git/Documentation/RelNotes/2.8.6.txt4
-rw-r--r--third_party/git/Documentation/RelNotes/2.9.0.txt512
-rw-r--r--third_party/git/Documentation/RelNotes/2.9.1.txt117
-rw-r--r--third_party/git/Documentation/RelNotes/2.9.2.txt13
-rw-r--r--third_party/git/Documentation/RelNotes/2.9.3.txt170
-rw-r--r--third_party/git/Documentation/RelNotes/2.9.4.txt90
-rw-r--r--third_party/git/Documentation/RelNotes/2.9.5.txt4
391 files changed, 0 insertions, 33857 deletions
diff --git a/third_party/git/Documentation/RelNotes/1.5.0.1.txt b/third_party/git/Documentation/RelNotes/1.5.0.1.txt
deleted file mode 100644
index fea3f9935b77..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.0.1.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-GIT v1.5.0.1 Release Notes
-==========================
-
-Fixes since v1.5.0
-------------------
-
-* Documentation updates
-
-  - Clarifications and corrections to 1.5.0 release notes.
-
-  - The main documentation did not link to git-remote documentation.
-
-  - Clarified introductory text of git-rebase documentation.
-
-  - Converted remaining mentions of update-index on Porcelain
-    documents to git-add/git-rm.
-
-  - Some i18n.* configuration variables were incorrectly
-    described as core.*; fixed.
-
-* Bugfixes
-
-  - git-add and git-update-index on a filesystem on which
-    executable bits are unreliable incorrectly reused st_mode
-    bits even when the path changed between symlink and regular
-    file.
-
-  - git-daemon marks the listening sockets with FD_CLOEXEC so
-    that it won't be leaked into the children.
-
-  - segfault from git-blame when the mandatory pathname
-    parameter was missing was fixed; usage() message is given
-    instead.
-
-  - git-rev-list did not read $GIT_DIR/config file, which means
-    that did not honor i18n.logoutputencoding correctly.
-
-* Tweaks
-
-  - sliding mmap() inefficiently mmaped the same region of a
-    packfile with an access pattern that used objects in the
-    reverse order.  This has been made more efficient.
diff --git a/third_party/git/Documentation/RelNotes/1.5.0.2.txt b/third_party/git/Documentation/RelNotes/1.5.0.2.txt
deleted file mode 100644
index b061e50ff05b..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.0.2.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-GIT v1.5.0.2 Release Notes
-==========================
-
-Fixes since v1.5.0.1
---------------------
-
-* Bugfixes
-
-  - Automated merge conflict handling when changes to symbolic
-    links conflicted were completely broken.  The merge-resolve
-    strategy created a regular file with conflict markers in it
-    in place of the symbolic link.  The default strategy,
-    merge-recursive was even more broken.  It removed the path
-    that was pointed at by the symbolic link.  Both of these
-    problems have been fixed.
-
-  - 'git diff maint master next' did not correctly give combined
-    diff across three trees.
-
-  - 'git fast-import' portability fix for Solaris.
-
-  - 'git show-ref --verify' without arguments did not error out
-    but segfaulted.
-
-  - 'git diff :tracked-file `pwd`/an-untracked-file' gave an extra
-    slashes after a/ and b/.
-
-  - 'git format-patch' produced too long filenames if the commit
-    message had too long line at the beginning.
-
-  - Running 'make all' and then without changing anything
-    running 'make install' still rebuilt some files.  This
-    was inconvenient when building as yourself and then
-    installing as root (especially problematic when the source
-    directory is on NFS and root is mapped to nobody).
-
-  - 'git-rerere' failed to deal with two unconflicted paths that
-    sorted next to each other.
-
-  - 'git-rerere' attempted to open(2) a symlink and failed if
-    there was a conflict.  Since a conflicting change to a
-    symlink would not benefit from rerere anyway, the command
-    now ignores conflicting changes to symlinks.
-
-  - 'git-repack' did not like to pass more than 64 arguments
-    internally to underlying 'rev-list' logic, which made it
-    impossible to repack after accumulating many (small) packs
-    in the repository.
-
-  - 'git-diff' to review the combined diff during a conflicted
-    merge were not reading the working tree version correctly
-    when changes to a symbolic link conflicted.  It should have
-    read the data using readlink(2) but read from the regular
-    file the symbolic link pointed at.
-
-  - 'git-remote' did not like period in a remote's name.
-
-* Documentation updates
-
-  - added and clarified core.bare, core.legacyheaders configurations.
-
-  - updated "git-clone --depth" documentation.
-
-
-* Assorted git-gui fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.5.0.3.txt b/third_party/git/Documentation/RelNotes/1.5.0.3.txt
deleted file mode 100644
index cd500f96bfd7..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.0.3.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-GIT v1.5.0.3 Release Notes
-==========================
-
-Fixes since v1.5.0.2
---------------------
-
-* Bugfixes
-
-  - 'git.el' honors the commit coding system from the configuration.
-
-  - 'blameview' in contrib/ correctly digs deeper when a line is
-    clicked.
-
-  - 'http-push' correctly makes sure the remote side has leading
-    path.  Earlier it started in the middle of the path, and
-    incorrectly.
-
-  - 'git-merge' did not exit with non-zero status when the
-    working tree was dirty and cannot fast forward.  It does
-    now.
-
-  - 'cvsexportcommit' does not lose yet-to-be-used message file.
-
-  - int-vs-size_t typefix when running combined diff on files
-    over 2GB long.
-
-  - 'git apply --whitespace=strip' should not touch unmodified
-    lines.
-
-  - 'git-mailinfo' choke when a logical header line was too long.
-
-  - 'git show A..B' did not error out.  Negative ref ("not A" in
-    this example) does not make sense for the purpose of the
-    command, so now it errors out.
-
-  - 'git fmt-merge-msg --file' without file parameter did not
-    correctly error out.
-
-  - 'git archimport' barfed upon encountering a commit without
-    summary.
-
-  - 'git index-pack' did not protect itself from getting a short
-    read out of pread(2).
-
-  - 'git http-push' had a few buffer overruns.
-
-  - Build dependency fixes to rebuild fetch.o when other headers
-    change.
-
-* Documentation updates
-
-  - user-manual updates.
-
-  - Options to 'git remote add' were described insufficiently.
-
-  - Configuration format.suffix was not documented.
-
-  - Other formatting and spelling fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.5.0.4.txt b/third_party/git/Documentation/RelNotes/1.5.0.4.txt
deleted file mode 100644
index feefa5dfd4ee..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.0.4.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-GIT v1.5.0.4 Release Notes
-==========================
-
-Fixes since v1.5.0.3
---------------------
-
-* Bugfixes
-
-  - git.el does not add duplicate sign-off lines.
-
-  - git-commit shows the full stat of the resulting commit, not
-    just about the files in the current directory, when run from
-    a subdirectory.
-
-  - "git-checkout -m '@{8 hours ago}'" had a funny failure from
-    eval; fixed.
-
-  - git-gui updates.
-
-* Documentation updates
-
-* User manual updates
diff --git a/third_party/git/Documentation/RelNotes/1.5.0.5.txt b/third_party/git/Documentation/RelNotes/1.5.0.5.txt
deleted file mode 100644
index eeec3d73d01a..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.0.5.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-GIT v1.5.0.5 Release Notes
-==========================
-
-Fixes since v1.5.0.3
---------------------
-
-* Bugfixes
-
-  - git-merge (hence git-pull) did not refuse fast-forwarding
-    when the working tree had local changes that would have
-    conflicted with it.
-
-  - git.el does not add duplicate sign-off lines.
-
-  - git-commit shows the full stat of the resulting commit, not
-    just about the files in the current directory, when run from
-    a subdirectory.
-
-  - "git-checkout -m '@{8 hours ago}'" had a funny failure from
-    eval; fixed.
-
-  - git-gui updates.
-
-* Documentation updates
-
-* User manual updates
diff --git a/third_party/git/Documentation/RelNotes/1.5.0.6.txt b/third_party/git/Documentation/RelNotes/1.5.0.6.txt
deleted file mode 100644
index c02015ad5fdb..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.0.6.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-GIT v1.5.0.6 Release Notes
-==========================
-
-Fixes since v1.5.0.5
---------------------
-
-* Bugfixes
-
-  - a handful small fixes to gitweb.
-
-  - build procedure for user-manual is fixed not to require locally
-    installed stylesheets.
-
-  - "git commit $paths" on paths whose earlier contents were
-    already updated in the index were failing out.
-
-* Documentation
-
-  - user-manual has better cross references.
-
-  - gitweb installation/deployment procedure is now documented.
diff --git a/third_party/git/Documentation/RelNotes/1.5.0.7.txt b/third_party/git/Documentation/RelNotes/1.5.0.7.txt
deleted file mode 100644
index 670ad32b8567..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.0.7.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-GIT v1.5.0.7 Release Notes
-==========================
-
-Fixes since v1.5.0.6
---------------------
-
-* Bugfixes
-
-  - git-upload-pack failed to close unused pipe ends, resulting
-    in many zombies to hang around.
-
-  - git-rerere was recording the contents of earlier hunks
-    duplicated in later hunks.  This prevented resolving the same
-    conflict when performing the same merge the other way around.
-
-* Documentation
-
-  - a few documentation fixes from Debian package maintainer.
diff --git a/third_party/git/Documentation/RelNotes/1.5.0.txt b/third_party/git/Documentation/RelNotes/1.5.0.txt
deleted file mode 100644
index d6d42f318358..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.0.txt
+++ /dev/null
@@ -1,469 +0,0 @@
-GIT v1.5.0 Release Notes
-========================
-
-Old news
---------
-
-This section is for people who are upgrading from ancient
-versions of git.  Although all of the changes in this section
-happened before the current v1.4.4 release, they are summarized
-here in the v1.5.0 release notes for people who skipped earlier
-versions.
-
-As of git v1.5.0 there are some optional features that changes
-the repository to allow data to be stored and transferred more
-efficiently.  These features are not enabled by default, as they
-will make the repository unusable with older versions of git.
-Specifically, the available options are:
-
- - There is a configuration variable core.legacyheaders that
-   changes the format of loose objects so that they are more
-   efficient to pack and to send out of the repository over git
-   native protocol, since v1.4.2.  However, loose objects
-   written in the new format cannot be read by git older than
-   that version; people fetching from your repository using
-   older clients over dumb transports (e.g. http) using older
-   versions of git will also be affected.
-
-   To let git use the new loose object format, you have to
-   set core.legacyheaders to false.
-
- - Since v1.4.3, configuration repack.usedeltabaseoffset allows
-   packfile to be created in more space efficient format, which
-   cannot be read by git older than that version.
-
-   To let git use the new format for packfiles, you have to
-   set repack.usedeltabaseoffset to true.
-
-The above two new features are not enabled by default and you
-have to explicitly ask for them, because they make repositories
-unreadable by older versions of git, and in v1.5.0 we still do
-not enable them by default for the same reason.  We will change
-this default probably 1 year after 1.4.2's release, when it is
-reasonable to expect everybody to have new enough version of
-git.
-
- - 'git pack-refs' appeared in v1.4.4; this command allows tags
-   to be accessed much more efficiently than the traditional
-   'one-file-per-tag' format.  Older git-native clients can
-   still fetch from a repository that packed and pruned refs
-   (the server side needs to run the up-to-date version of git),
-   but older dumb transports cannot.  Packing of refs is done by
-   an explicit user action, either by use of "git pack-refs
-   --prune" command or by use of "git gc" command.
-
- - 'git -p' to paginate anything -- many commands do pagination
-   by default on a tty.  Introduced between v1.4.1 and v1.4.2;
-   this may surprise old timers.
-
- - 'git archive' superseded 'git tar-tree' in v1.4.3;
-
- - 'git cvsserver' was new invention in v1.3.0;
-
- - 'git repo-config', 'git grep', 'git rebase' and 'gitk' were
-   seriously enhanced during v1.4.0 timeperiod.
-
- - 'gitweb' became part of git.git during v1.4.0 timeperiod and
-   seriously modified since then.
-
- - reflog is an v1.4.0 invention.  This allows you to name a
-   revision that a branch used to be at (e.g. "git diff
-   master@{yesterday} master" allows you to see changes since
-   yesterday's tip of the branch).
-
-
-Updates in v1.5.0 since v1.4.4 series
--------------------------------------
-
-* Index manipulation
-
- - git-add is to add contents to the index (aka "staging area"
-   for the next commit), whether the file the contents happen to
-   be is an existing one or a newly created one.
-
- - git-add without any argument does not add everything
-   anymore.  Use 'git-add .' instead.  Also you can add
-   otherwise ignored files with an -f option.
-
- - git-add tries to be more friendly to users by offering an
-   interactive mode ("git-add -i").
-
- - git-commit <path> used to refuse to commit if <path> was
-   different between HEAD and the index (i.e. update-index was
-   used on it earlier).  This check was removed.
-
- - git-rm is much saner and safer.  It is used to remove paths
-   from both the index file and the working tree, and makes sure
-   you are not losing any local modification before doing so.
-
- - git-reset <tree> <paths>... can be used to revert index
-   entries for selected paths.
-
- - git-update-index is much less visible.  Many suggestions to
-   use the command in git output and documentation have now been
-   replaced by simpler commands such as "git add" or "git rm".
-
-
-* Repository layout and objects transfer
-
- - The data for origin repository is stored in the configuration
-   file $GIT_DIR/config, not in $GIT_DIR/remotes/, for newly
-   created clones.  The latter is still supported and there is
-   no need to convert your existing repository if you are
-   already comfortable with your workflow with the layout.
-
- - git-clone always uses what is known as "separate remote"
-   layout for a newly created repository with a working tree.
-
-   A repository with the separate remote layout starts with only
-   one default branch, 'master', to be used for your own
-   development.  Unlike the traditional layout that copied all
-   the upstream branches into your branch namespace (while
-   renaming their 'master' to your 'origin'), the new layout
-   puts upstream branches into local "remote-tracking branches"
-   with their own namespace. These can be referenced with names
-   such as "origin/$upstream_branch_name" and are stored in
-   .git/refs/remotes rather than .git/refs/heads where normal
-   branches are stored.
-
-   This layout keeps your own branch namespace less cluttered,
-   avoids name collision with your upstream, makes it possible
-   to automatically track new branches created at the remote
-   after you clone from it, and makes it easier to interact with
-   more than one remote repository (you can use "git remote" to
-   add other repositories to track).  There might be some
-   surprises:
-
-   * 'git branch' does not show the remote tracking branches.
-     It only lists your own branches.  Use '-r' option to view
-     the tracking branches.
-
-   * If you are forking off of a branch obtained from the
-     upstream, you would have done something like 'git branch
-     my-next next', because traditional layout dropped the
-     tracking branch 'next' into your own branch namespace.
-     With the separate remote layout, you say 'git branch next
-     origin/next', which allows you to use the matching name
-     'next' for your own branch.  It also allows you to track a
-     remote other than 'origin' (i.e. where you initially cloned
-     from) and fork off of a branch from there the same way
-     (e.g. "git branch mingw j6t/master").
-
-   Repositories initialized with the traditional layout continue
-   to work.
-
- - New branches that appear on the origin side after a clone is
-   made are also tracked automatically.  This is done with an
-   wildcard refspec "refs/heads/*:refs/remotes/origin/*", which
-   older git does not understand, so if you clone with 1.5.0,
-   you would need to downgrade remote.*.fetch in the
-   configuration file to specify each branch you are interested
-   in individually if you plan to fetch into the repository with
-   older versions of git (but why would you?).
-
- - Similarly, wildcard refspec "refs/heads/*:refs/remotes/me/*"
-   can be given to "git-push" command to update the tracking
-   branches that is used to track the repository you are pushing
-   from on the remote side.
-
- - git-branch and git-show-branch know remote tracking branches
-   (use the command line switch "-r" to list only tracked branches).
-
- - git-push can now be used to delete a remote branch or a tag.
-   This requires the updated git on the remote side (use "git
-   push <remote> :refs/heads/<branch>" to delete "branch").
-
- - git-push more aggressively keeps the transferred objects
-   packed.  Earlier we recommended to monitor amount of loose
-   objects and repack regularly, but you should repack when you
-   accumulated too many small packs this way as well.  Updated
-   git-count-objects helps you with this.
-
- - git-fetch also more aggressively keeps the transferred objects
-   packed.  This behavior of git-push and git-fetch can be
-   tweaked with a single configuration transfer.unpacklimit (but
-   usually there should not be any need for a user to tweak it).
-
- - A new command, git-remote, can help you manage your remote
-   tracking branch definitions.
-
- - You may need to specify explicit paths for upload-pack and/or
-   receive-pack due to your ssh daemon configuration on the
-   other end.  This can now be done via remote.*.uploadpack and
-   remote.*.receivepack configuration.
-
-
-* Bare repositories
-
- - Certain commands change their behavior in a bare repository
-   (i.e. a repository without associated working tree).  We use
-   a fairly conservative heuristic (if $GIT_DIR is ".git", or
-   ends with "/.git", the repository is not bare) to decide if a
-   repository is bare, but "core.bare" configuration variable
-   can be used to override the heuristic when it misidentifies
-   your repository.
-
- - git-fetch used to complain updating the current branch but
-   this is now allowed for a bare repository.  So is the use of
-   'git-branch -f' to update the current branch.
-
- - Porcelain-ish commands that require a working tree refuses to
-   work in a bare repository.
-
-
-* Reflog
-
- - Reflog records the history from the view point of the local
-   repository. In other words, regardless of the real history,
-   the reflog shows the history as seen by one particular
-   repository (this enables you to ask "what was the current
-   revision in _this_ repository, yesterday at 1pm?").  This
-   facility is enabled by default for repositories with working
-   trees, and can be accessed with the "branch@{time}" and
-   "branch@{Nth}" notation.
-
- - "git show-branch" learned showing the reflog data with the
-   new -g option.  "git log" has -g option to view reflog
-   entries in a more verbose manner.
-
- - git-branch knows how to rename branches and moves existing
-   reflog data from the old branch to the new one.
-
- - In addition to the reflog support in v1.4.4 series, HEAD
-   reference maintains its own log.  "HEAD@{5.minutes.ago}"
-   means the commit you were at 5 minutes ago, which takes
-   branch switching into account.  If you want to know where the
-   tip of your current branch was at 5 minutes ago, you need to
-   explicitly say its name (e.g. "master@{5.minutes.ago}") or
-   omit the refname altogether i.e. "@{5.minutes.ago}".
-
- - The commits referred to by reflog entries are now protected
-   against pruning.  The new command "git reflog expire" can be
-   used to truncate older reflog entries and entries that refer
-   to commits that have been pruned away previously with older
-   versions of git.
-
-   Existing repositories that have been using reflog may get
-   complaints from fsck-objects and may not be able to run
-   git-repack, if you had run git-prune from older git; please
-   run "git reflog expire --stale-fix --all" first to remove
-   reflog entries that refer to commits that are no longer in
-   the repository when that happens.
-
-
-* Cruft removal
-
- - We used to say "old commits are retrievable using reflog and
-   'master@{yesterday}' syntax as long as you haven't run
-   git-prune".  We no longer have to say the latter half of the
-   above sentence, as git-prune does not remove things reachable
-   from reflog entries.
-
- - There is a toplevel garbage collector script, 'git-gc', that
-   runs periodic cleanup functions, including 'git-repack -a -d',
-   'git-reflog expire', 'git-pack-refs --prune', and 'git-rerere
-   gc'.
-
- - The output from fsck ("fsck-objects" is called just "fsck"
-   now, but the old name continues to work) was needlessly
-   alarming in that it warned missing objects that are reachable
-   only from dangling objects.  This has been corrected and the
-   output is much more useful.
-
-
-* Detached HEAD
-
- - You can use 'git-checkout' to check out an arbitrary revision
-   or a tag as well, instead of named branches.  This will
-   dissociate your HEAD from the branch you are currently on.
-
-   A typical use of this feature is to "look around".  E.g.
-
-	$ git checkout v2.6.16
-	... compile, test, etc.
-	$ git checkout v2.6.17
-	... compile, test, etc.
-
- - After detaching your HEAD, you can go back to an existing
-   branch with usual "git checkout $branch".  Also you can
-   start a new branch using "git checkout -b $newbranch" to
-   start a new branch at that commit.
-
- - You can even pull from other repositories, make merges and
-   commits while your HEAD is detached.  Also you can use "git
-   reset" to jump to arbitrary commit, while still keeping your
-   HEAD detached.
-
-   Remember that a detached state is volatile, i.e. it will be forgotten
-   as soon as you move away from it with the checkout or reset command,
-   unless a branch is created from it as mentioned above.  It is also
-   possible to rescue a lost detached state from the HEAD reflog.
-
-
-* Packed refs
-
- - Repositories with hundreds of tags have been paying large
-   overhead, both in storage and in runtime, due to the
-   traditional one-ref-per-file format.  A new command,
-   git-pack-refs, can be used to "pack" them in more efficient
-   representation (you can let git-gc do this for you).
-
- - Clones and fetches over dumb transports are now aware of
-   packed refs and can download from repositories that use
-   them.
-
-
-* Configuration
-
- - configuration related to color setting are consolidated under
-   color.* namespace (older diff.color.*, status.color.* are
-   still supported).
-
- - 'git-repo-config' command is accessible as 'git-config' now.
-
-
-* Updated features
-
- - git-describe uses better criteria to pick a base ref.  It
-   used to pick the one with the newest timestamp, but now it
-   picks the one that is topologically the closest (that is,
-   among ancestors of commit C, the ref T that has the shortest
-   output from "git-rev-list T..C" is chosen).
-
- - git-describe gives the number of commits since the base ref
-   between the refname and the hash suffix.  E.g. the commit one
-   before v2.6.20-rc6 in the kernel repository is:
-
-	v2.6.20-rc5-306-ga21b069
-
-   which tells you that its object name begins with a21b069,
-   v2.6.20-rc5 is an ancestor of it (meaning, the commit
-   contains everything -rc5 has), and there are 306 commits
-   since v2.6.20-rc5.
-
- - git-describe with --abbrev=0 can be used to show only the
-   name of the base ref.
-
- - git-blame learned a new option, --incremental, that tells it
-   to output the blames as they are assigned.  A sample script
-   to use it is also included as contrib/blameview.
-
- - git-blame starts annotating from the working tree by default.
-
-
-* Less external dependency
-
- - We no longer require the "merge" program from the RCS suite.
-   All 3-way file-level merges are now done internally.
-
- - The original implementation of git-merge-recursive which was
-   in Python has been removed; we have a C implementation of it
-   now.
-
- - git-shortlog is no longer a Perl script.  It no longer
-   requires output piped from git-log; it can accept revision
-   parameters directly on the command line.
-
-
-* I18n
-
- - We have always encouraged the commit message to be encoded in
-   UTF-8, but the users are allowed to use legacy encoding as
-   appropriate for their projects.  This will continue to be the
-   case.  However, a non UTF-8 commit encoding _must_ be
-   explicitly set with i18n.commitencoding in the repository
-   where a commit is made; otherwise git-commit-tree will
-   complain if the log message does not look like a valid UTF-8
-   string.
-
- - The value of i18n.commitencoding in the originating
-   repository is recorded in the commit object on the "encoding"
-   header, if it is not UTF-8.  git-log and friends notice this,
-   and re-encodes the message to the log output encoding when
-   displaying, if they are different.  The log output encoding
-   is determined by "git log --encoding=<encoding>",
-   i18n.logoutputencoding configuration, or i18n.commitencoding
-   configuration, in the decreasing order of preference, and
-   defaults to UTF-8.
-
- - Tools for e-mailed patch application now default to -u
-   behavior; i.e. it always re-codes from the e-mailed encoding
-   to the encoding specified with i18n.commitencoding.  This
-   unfortunately forces projects that have happily been using a
-   legacy encoding without setting i18n.commitencoding to set
-   the configuration, but taken with other improvement, please
-   excuse us for this very minor one-time inconvenience.
-
-
-* e-mailed patches
-
- - See the above I18n section.
-
- - git-format-patch now enables --binary without being asked.
-   git-am does _not_ default to it, as sending binary patch via
-   e-mail is unusual and is harder to review than textual
-   patches and it is prudent to require the person who is
-   applying the patch to explicitly ask for it.
-
- - The default suffix for git-format-patch output is now ".patch",
-   not ".txt".  This can be changed with --suffix=.txt option,
-   or setting the config variable "format.suffix" to ".txt".
-
-
-* Foreign SCM interfaces
-
- - git-svn now requires the Perl SVN:: libraries, the
-   command-line backend was too slow and limited.
-
- - the 'commit' subcommand of git-svn has been renamed to
-   'set-tree', and 'dcommit' is the recommended replacement for
-   day-to-day work.
-
- - git fast-import backend.
-
-
-* User support
-
- - Quite a lot of documentation updates.
-
- - Bash completion scripts have been updated heavily.
-
- - Better error messages for often used Porcelainish commands.
-
- - Git GUI.  This is a simple Tk based graphical interface for
-   common Git operations.
-
-
-* Sliding mmap
-
- - We used to assume that we can mmap the whole packfile while
-   in use, but with a large project this consumes huge virtual
-   memory space and truly huge ones would not fit in the
-   userland address space on 32-bit platforms.  We now mmap huge
-   packfile in pieces to avoid this problem.
-
-
-* Shallow clones
-
- - There is a partial support for 'shallow' repositories that
-   keeps only recent history.  A 'shallow clone' is created by
-   specifying how deep that truncated history should be
-   (e.g. "git clone --depth 5 git://some.where/repo.git").
-
-   Currently a shallow repository has number of limitations:
-
-   - Cloning and fetching _from_ a shallow clone are not
-     supported (nor tested -- so they might work by accident but
-     they are not expected to).
-
-   - Pushing from nor into a shallow clone are not expected to
-     work.
-
-   - Merging inside a shallow repository would work as long as a
-     merge base is found in the recent history, but otherwise it
-     will be like merging unrelated histories and may result in
-     huge conflicts.
-
-   but this would be more than adequate for people who want to
-   look at near the tip of a big project with a deep history and
-   send patches in e-mail format.
diff --git a/third_party/git/Documentation/RelNotes/1.5.1.1.txt b/third_party/git/Documentation/RelNotes/1.5.1.1.txt
deleted file mode 100644
index 91471213bdec..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.1.1.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-GIT v1.5.1.1 Release Notes
-==========================
-
-Fixes since v1.5.1
-------------------
-
-* Documentation updates
-
-  - The --left-right option of rev-list and friends is documented.
-
-  - The documentation for cvsimport has been majorly improved.
-
-  - "git-show-ref --exclude-existing" was documented.
-
-* Bugfixes
-
-  - The implementation of -p option in "git cvsexportcommit" had
-    the meaning of -C (context reduction) option wrong, and
-    loosened the context requirements when it was told to be
-    strict.
-
-  - "git cvsserver" did not behave like the real cvsserver when
-    client side removed a file from the working tree without
-    doing anything else on the path.  In such a case, it should
-    restore it from the checked out revision.
-
-  - "git fsck" issued an alarming error message on detached
-    HEAD.  It is not an error since at least 1.5.0.
-
-  - "git send-email" produced of References header of unbounded length;
-    fixed this with line-folding.
-
-  - "git archive" to download from remote site should not
-    require you to be in a git repository, but it incorrectly
-    did.
-
-  - "git apply" ignored -p<n> for "diff --git" formatted
-    patches.
-
-  - "git rerere" recorded a conflict that had one side empty
-    (the other side adds) incorrectly; this made merging in the
-    other direction fail to use previously recorded resolution.
-
-  - t4200 test was broken where "wc -l" pads its output with
-    spaces.
-
-  - "git branch -m old new" to rename branch did not work
-    without a configuration file in ".git/config".
-
-  - The sample hook for notification e-mail was misnamed.
-
-  - gitweb did not show type-changing patch correctly in the
-    blobdiff view.
-
-  - git-svn did not error out with incorrect command line options.
-
-  - git-svn fell into an infinite loop when insanely long commit
-    message was found.
-
-  - git-svn dcommit and rebase was confused by patches that were
-    merged from another branch that is managed by git-svn.
-
-  - git-svn used to get confused when globbing remote branch/tag
-    spec (e.g. "branches = proj/branches/*:refs/remotes/origin/*")
-    is used and there was a plain file that matched the glob.
diff --git a/third_party/git/Documentation/RelNotes/1.5.1.2.txt b/third_party/git/Documentation/RelNotes/1.5.1.2.txt
deleted file mode 100644
index d88456306c50..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.1.2.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-GIT v1.5.1.2 Release Notes
-==========================
-
-Fixes since v1.5.1.1
---------------------
-
-* Bugfixes
-
-  - "git clone" over http from a repository that has lost the
-    loose refs by running "git pack-refs" were broken (a code to
-    deal with this was added to "git fetch" in v1.5.0, but it
-    was missing from "git clone").
-
-  - "git diff a/ b/" incorrectly fell in "diff between two
-    filesystem objects" codepath, when the user most likely
-    wanted to limit the extent of output to two tracked
-    directories.
-
-  - git-quiltimport had the same bug as we fixed for
-    git-applymbox in v1.5.1.1 -- it gave an alarming "did not
-    have any patch" message (but did not actually fail and was
-    harmless).
-
-  - various git-svn fixes.
-
-  - Sample update hook incorrectly always refused requests to
-    delete branches through push.
-
-  - git-blame on a very long working tree path had buffer
-    overrun problem.
-
-  - git-apply did not like to be fed two patches in a row that created
-    and then modified the same file.
-
-  - git-svn was confused when a non-project was stored directly under
-    trunk/, branches/ and tags/.
-
-  - git-svn wants the Error.pm module that was at least as new
-    as what we ship as part of git; install ours in our private
-    installation location if the one on the system is older.
-
-  - An earlier update to command line integer parameter parser was
-    botched and made 'update-index --cacheinfo' completely useless.
-
-
-* Documentation updates
-
-  - Various documentation updates from J. Bruce Fields, Frank
-    Lichtenheld, Alex Riesen and others.  Andrew Ruder started a
-    war on undocumented options.
diff --git a/third_party/git/Documentation/RelNotes/1.5.1.3.txt b/third_party/git/Documentation/RelNotes/1.5.1.3.txt
deleted file mode 100644
index 876408b65a0e..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.1.3.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-GIT v1.5.1.3 Release Notes
-==========================
-
-Fixes since v1.5.1.2
---------------------
-
-* Bugfixes
-
-  - git-add tried to optimize by finding common leading
-    directories across its arguments but botched, causing very
-    confused behaviour.
-
-  - unofficial rpm.spec file shipped with git was letting
-    ETC_GITCONFIG set to /usr/etc/gitconfig.  Tweak the official
-    Makefile to make it harder for distro people to make the
-    same mistake, by setting the variable to /etc/gitconfig if
-    prefix is set to /usr.
-
-  - git-svn inconsistently stripped away username from the URL
-    only when svnsync_props was in use.
-
-  - git-svn got confused when handling symlinks on Mac OS.
-
-  - git-send-email was not quoting recipient names that have
-    period '.' in them.  Also it did not allow overriding
-    envelope sender, which made it impossible to send patches to
-    certain subscriber-only lists.
-
-  - built-in write_tree() routine had a sequence that renamed a
-    file that is still open, which some systems did not like.
-
-  - when memory is very tight, sliding mmap code to read
-    packfiles incorrectly closed the fd that was still being
-    used to read the pack.
-
-  - import-tars contributed front-end for fastimport was passing
-    wrong directory modes without checking.
-
-  - git-fastimport trusted its input too much and allowed to
-    create corrupt tree objects with entries without a name.
-
-  - git-fetch needlessly barfed when too long reflog action
-    description was given by the caller.
-
-Also contains various documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.5.1.4.txt b/third_party/git/Documentation/RelNotes/1.5.1.4.txt
deleted file mode 100644
index df2f66ccb5d2..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.1.4.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-GIT v1.5.1.4 Release Notes
-==========================
-
-Fixes since v1.5.1.3
---------------------
-
-* Bugfixes
-
-  - "git-http-fetch" did not work around a bug in libcurl
-    earlier than 7.16 (curl_multi_remove_handle() was broken).
-
-  - "git cvsserver" handles a file that was once removed and
-    then added again correctly.
-
-  - import-tars script (in contrib/) handles GNU tar archives
-    that contain pathnames longer than 100 bytes (long-link
-    extension) correctly.
-
-  - xdelta test program did not build correctly.
-
-  - gitweb sometimes tried incorrectly to apply function to
-    decode utf8 twice, resulting in corrupt output.
-
-  - "git blame -C" mishandled text at the end of a group of
-    lines.
-
-  - "git log/rev-list --boundary" did not produce output
-    correctly without --left-right option.
-
-  - Many documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.5.1.5.txt b/third_party/git/Documentation/RelNotes/1.5.1.5.txt
deleted file mode 100644
index b0ab8eb371cc..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.1.5.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-GIT v1.5.1.5 Release Notes
-==========================
-
-Fixes since v1.5.1.4
---------------------
-
-* Bugfixes
-
-  - git-send-email did not understand aliases file for mutt, which
-    allows leading whitespaces.
-
-  - git-format-patch emitted Content-Type and Content-Transfer-Encoding
-    headers for non ASCII contents, but failed to add MIME-Version.
-
-  - git-name-rev had a buffer overrun with a deep history.
-
-  - contributed script import-tars did not get the directory in
-    tar archives interpreted correctly.
-
-  - git-svn was reported to segfault for many people on list and
-    #git; hopefully this has been fixed.
-
-  - "git-svn clone" does not try to minimize the URL
-    (i.e. connect to higher level hierarchy) by default, as this
-    can prevent clone to fail if only part of the repository
-    (e.g. 'trunk') is open to public.
-
-  - "git checkout branch^0" did not detach the head when you are
-    already on 'branch'; backported the fix from the 'master'.
-
-  - "git-config section.var" did not correctly work when
-    existing configuration file had both [section] and [section "name"]
-    next to each other.
-
-  - "git clone ../other-directory" was fooled if the current
-    directory $PWD points at is a symbolic link.
-
-  - (build) tree_entry_extract() function was both static inline
-    and extern, which caused trouble compiling with Forte12
-    compilers on Sun.
-
-  - Many many documentation fixes and updates.
diff --git a/third_party/git/Documentation/RelNotes/1.5.1.6.txt b/third_party/git/Documentation/RelNotes/1.5.1.6.txt
deleted file mode 100644
index 55f3ac13e3c2..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.1.6.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-GIT v1.5.1.6 Release Notes
-==========================
-
-Fixes since v1.5.1.4
---------------------
-
-* Bugfixes
-
-  - git-send-email did not understand aliases file for mutt, which
-    allows leading whitespaces.
-
-  - git-format-patch emitted Content-Type and Content-Transfer-Encoding
-    headers for non ASCII contents, but failed to add MIME-Version.
-
-  - git-name-rev had a buffer overrun with a deep history.
-
-  - contributed script import-tars did not get the directory in
-    tar archives interpreted correctly.
-
-  - git-svn was reported to segfault for many people on list and
-    #git; hopefully this has been fixed.
-
-  - git-svn also had a bug to crash svnserve by sending a bad
-    sequence of requests.
-
-  - "git-svn clone" does not try to minimize the URL
-    (i.e. connect to higher level hierarchy) by default, as this
-    can prevent clone to fail if only part of the repository
-    (e.g. 'trunk') is open to public.
-
-  - "git checkout branch^0" did not detach the head when you are
-    already on 'branch'; backported the fix from the 'master'.
-
-  - "git-config section.var" did not correctly work when
-    existing configuration file had both [section] and [section "name"]
-    next to each other.
-
-  - "git clone ../other-directory" was fooled if the current
-    directory $PWD points at is a symbolic link.
-
-  - (build) tree_entry_extract() function was both static inline
-    and extern, which caused trouble compiling with Forte12
-    compilers on Sun.
-
-  - Many many documentation fixes and updates.
diff --git a/third_party/git/Documentation/RelNotes/1.5.1.txt b/third_party/git/Documentation/RelNotes/1.5.1.txt
deleted file mode 100644
index daed3672709f..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.1.txt
+++ /dev/null
@@ -1,371 +0,0 @@
-GIT v1.5.1 Release Notes
-========================
-
-Updates since v1.5.0
---------------------
-
-* Deprecated commands and options.
-
-  - git-diff-stages and git-resolve have been removed.
-
-* New commands and options.
-
-  - "git log" and friends take --reverse, which instructs them
-    to give their output in the order opposite from their usual.
-    They typically output from new to old, but with this option
-    their output would read from old to new.  "git shortlog"
-    usually lists older commits first, but with this option,
-    they are shown from new to old.
-
-  - "git log --pretty=format:<string>" to allow more flexible
-    custom log output.
-
-  - "git diff" learned --ignore-space-at-eol.  This is a weaker
-    form of --ignore-space-change.
-
-  - "git diff --no-index pathA pathB" can be used as diff
-    replacement with git specific enhancements.
-
-  - "git diff --no-index" can read from '-' (standard input).
-
-  - "git diff" also learned --exit-code to exit with non-zero
-    status when it found differences.  In the future we might
-    want to make this the default but that would be a rather big
-    backward incompatible change; it will stay as an option for
-    now.
-
-  - "git diff --quiet" is --exit-code with output turned off,
-    meant for scripted use to quickly determine if there is any
-    tree-level difference.
-
-  - Textual patch generation with "git diff" without -w/-b
-    option has been significantly optimized.  "git blame" got
-    faster because of the same change.
-
-  - "git log" and "git rev-list" has been optimized
-    significantly when they are used with pathspecs.
-
-  - "git branch --track" can be used to set up configuration
-    variables to help it easier to base your work on branches
-    you track from a remote site.
-
-  - "git format-patch --attach" now emits attachments.  Use
-    --inline to get an inlined multipart/mixed.
-
-  - "git name-rev" learned --refs=<pattern>, to limit the tags
-    used for naming the given revisions only to the ones
-    matching the given pattern.
-
-  - "git remote update" is to run "git fetch" for defined remotes
-    to update tracking branches.
-
-  - "git cvsimport" can now take '-d' to talk with a CVS
-    repository different from what are recorded in CVS/Root
-    (overriding it with environment CVSROOT does not work).
-
-  - "git bundle" can help sneaker-netting your changes between
-    repositories.
-
-  - "git mergetool" can help 3-way file-level conflict
-    resolution with your favorite graphical merge tools.
-
-  - A new configuration "core.symlinks" can be used to disable
-    symlinks on filesystems that do not support them; they are
-    checked out as regular files instead.
-
-  - You can name a commit object with its first line of the
-    message.  The syntax to use is ':/message text'.  E.g.
-
-    $ git show ":/object name: introduce ':/<oneline prefix>' notation"
-
-    means the same thing as:
-
-    $ git show 28a4d940443806412effa246ecc7768a21553ec7
-
-  - "git bisect" learned a new command "run" that takes a script
-    to run after each revision is checked out to determine if it
-    is good or bad, to automate the bisection process.
-
-  - "git log" family learned a new traversal option --first-parent,
-    which does what the name suggests.
-
-
-* Updated behavior of existing commands.
-
-  - "git-merge-recursive" used to barf when there are more than
-    one common ancestors for the merge, and merging them had a
-    rename/rename conflict.  This has been fixed.
-
-  - "git fsck" does not barf on corrupt loose objects.
-
-  - "git rm" does not remove newly added files without -f.
-
-  - "git archimport" allows remapping when coming up with git
-    branch names from arch names.
-
-  - git-svn got almost a rewrite.
-
-  - core.autocrlf configuration, when set to 'true', makes git
-    to convert CRLF at the end of lines in text files to LF when
-    reading from the filesystem, and convert in reverse when
-    writing to the filesystem.  The variable can be set to
-    'input', in which case the conversion happens only while
-    reading from the filesystem but files are written out with
-    LF at the end of lines.  Currently, which paths to consider
-    'text' (i.e. be subjected to the autocrlf mechanism) is
-    decided purely based on the contents, but the plan is to
-    allow users to explicitly override this heuristic based on
-    paths.
-
-  - The behavior of 'git-apply', when run in a subdirectory,
-    without --index nor --cached were inconsistent with that of
-    the command with these options.  This was fixed to match the
-    behavior with --index.  A patch that is meant to be applied
-    with -p1 from the toplevel of the project tree can be
-    applied with any custom -p<n> option.  A patch that is not
-    relative to the toplevel needs to be applied with -p<n>
-    option with or without --index (or --cached).
-
-  - "git diff" outputs a trailing HT when pathnames have embedded
-    SP on +++/--- header lines, in order to help "GNU patch" to
-    parse its output.  "git apply" was already updated to accept
-    this modified output format since ce74618d (Sep 22, 2006).
-
-  - "git cvsserver" runs hooks/update and honors its exit status.
-
-  - "git cvsserver" can be told to send everything with -kb.
-
-  - "git diff --check" also honors the --color output option.
-
-  - "git name-rev" used to stress the fact that a ref is a tag too
-    much, by saying something like "v1.2.3^0~22".  It now says
-    "v1.2.3~22" in such a case (it still says "v1.2.3^0" if it does
-    not talk about an ancestor of the commit that is tagged, which
-    makes sense).
-
-  - "git rev-list --boundary" now shows boundary markers for the
-    commits omitted by --max-age and --max-count condition.
-
-  - The configuration mechanism now reads $(prefix)/etc/gitconfig.
-
-  - "git apply --verbose" shows what preimage lines were wanted
-    when it couldn't find them.
-
-  - "git status" in a read-only repository got a bit saner.
-
-  - "git fetch" (hence "git clone" and "git pull") are less
-    noisy when the output does not go to tty.
-
-  - "git fetch" between repositories with many refs were slow
-    even when there are not many changes that needed
-    transferring.  This has been sped up by partially rewriting
-    the heaviest parts in C.
-
-  - "git mailinfo" which splits an e-mail into a patch and the
-    meta-information was rewritten, thanks to Don Zickus.  It
-    handles nested multipart better.  The command was broken for
-    a brief period on 'master' branch since 1.5.0 but the
-    breakage is fixed now.
-
-  - send-email learned configurable bcc and chain-reply-to.
-
-  - "git remote show $remote" also talks about branches that
-    would be pushed if you run "git push remote".
-
-  - Using objects from packs is now seriously optimized by clever
-    use of a cache.  This should be most noticeable in git-log
-    family of commands that involve reading many tree objects.
-    In addition, traversing revisions while filtering changes
-    with pathspecs is made faster by terminating the comparison
-    between the trees as early as possible.
-
-
-* Hooks
-
-  - The part to send out notification e-mails was removed from
-    the sample update hook, as it was not an appropriate place
-    to do so.  The proper place to do this is the new post-receive
-    hook.  An example hook has been added to contrib/hooks/.
-
-
-* Others
-
-  - git-revert, git-gc and git-cherry-pick are now built-ins.
-
-Fixes since v1.5.0
-------------------
-
-These are all in v1.5.0.x series.
-
-* Documentation updates
-
-  - Clarifications and corrections to 1.5.0 release notes.
-
-  - The main documentation did not link to git-remote documentation.
-
-  - Clarified introductory text of git-rebase documentation.
-
-  - Converted remaining mentions of update-index on Porcelain
-    documents to git-add/git-rm.
-
-  - Some i18n.* configuration variables were incorrectly
-    described as core.*; fixed.
-
-  - added and clarified core.bare, core.legacyheaders configurations.
-
-  - updated "git-clone --depth" documentation.
-
-  - user-manual updates.
-
-  - Options to 'git remote add' were described insufficiently.
-
-  - Configuration format.suffix was not documented.
-
-  - Other formatting and spelling fixes.
-
-  - user-manual has better cross references.
-
-  - gitweb installation/deployment procedure is now documented.
-
-
-* Bugfixes
-
-  - git-upload-pack closes unused pipe ends; earlier this caused
-    many zombies to hang around.
-
-  - git-rerere was recording the contents of earlier hunks
-    duplicated in later hunks.  This prevented resolving the same
-    conflict when performing the same merge the other way around.
-
-  - git-add and git-update-index on a filesystem on which
-    executable bits are unreliable incorrectly reused st_mode
-    bits even when the path changed between symlink and regular
-    file.
-
-  - git-daemon marks the listening sockets with FD_CLOEXEC so
-    that it won't be leaked into the children.
-
-  - segfault from git-blame when the mandatory pathname
-    parameter was missing was fixed; usage() message is given
-    instead.
-
-  - git-rev-list did not read $GIT_DIR/config file, which means
-    that did not honor i18n.logoutputencoding correctly.
-
-  - Automated merge conflict handling when changes to symbolic
-    links conflicted were completely broken.  The merge-resolve
-    strategy created a regular file with conflict markers in it
-    in place of the symbolic link.  The default strategy,
-    merge-recursive was even more broken.  It removed the path
-    that was pointed at by the symbolic link.  Both of these
-    problems have been fixed.
-
-  - 'git diff maint master next' did not correctly give combined
-    diff across three trees.
-
-  - 'git fast-import' portability fix for Solaris.
-
-  - 'git show-ref --verify' without arguments did not error out
-    but segfaulted.
-
-  - 'git diff :tracked-file `pwd`/an-untracked-file' gave an extra
-    slashes after a/ and b/.
-
-  - 'git format-patch' produced too long filenames if the commit
-    message had too long line at the beginning.
-
-  - Running 'make all' and then without changing anything
-    running 'make install' still rebuilt some files.  This
-    was inconvenient when building as yourself and then
-    installing as root (especially problematic when the source
-    directory is on NFS and root is mapped to nobody).
-
-  - 'git-rerere' failed to deal with two unconflicted paths that
-    sorted next to each other.
-
-  - 'git-rerere' attempted to open(2) a symlink and failed if
-    there was a conflict.  Since a conflicting change to a
-    symlink would not benefit from rerere anyway, the command
-    now ignores conflicting changes to symlinks.
-
-  - 'git-repack' did not like to pass more than 64 arguments
-    internally to underlying 'rev-list' logic, which made it
-    impossible to repack after accumulating many (small) packs
-    in the repository.
-
-  - 'git-diff' to review the combined diff during a conflicted
-    merge were not reading the working tree version correctly
-    when changes to a symbolic link conflicted.  It should have
-    read the data using readlink(2) but read from the regular
-    file the symbolic link pointed at.
-
-  - 'git-remote' did not like period in a remote's name.
-
-  - 'git.el' honors the commit coding system from the configuration.
-
-  - 'blameview' in contrib/ correctly digs deeper when a line is
-    clicked.
-
-  - 'http-push' correctly makes sure the remote side has leading
-    path.  Earlier it started in the middle of the path, and
-    incorrectly.
-
-  - 'git-merge' did not exit with non-zero status when the
-    working tree was dirty and cannot fast forward.  It does
-    now.
-
-  - 'cvsexportcommit' does not lose yet-to-be-used message file.
-
-  - int-vs-size_t typefix when running combined diff on files
-    over 2GB long.
-
-  - 'git apply --whitespace=strip' should not touch unmodified
-    lines.
-
-  - 'git-mailinfo' choke when a logical header line was too long.
-
-  - 'git show A..B' did not error out.  Negative ref ("not A" in
-    this example) does not make sense for the purpose of the
-    command, so now it errors out.
-
-  - 'git fmt-merge-msg --file' without file parameter did not
-    correctly error out.
-
-  - 'git archimport' barfed upon encountering a commit without
-    summary.
-
-  - 'git index-pack' did not protect itself from getting a short
-    read out of pread(2).
-
-  - 'git http-push' had a few buffer overruns.
-
-  - Build dependency fixes to rebuild fetch.o when other headers
-    change.
-
-  - git.el does not add duplicate sign-off lines.
-
-  - git-commit shows the full stat of the resulting commit, not
-    just about the files in the current directory, when run from
-    a subdirectory.
-
-  - "git-checkout -m '@{8 hours ago}'" had a funny failure from
-    eval; fixed.
-
-  - git-merge (hence git-pull) did not refuse fast-forwarding
-    when the working tree had local changes that would have
-    conflicted with it.
-
-  - a handful small fixes to gitweb.
-
-  - build procedure for user-manual is fixed not to require locally
-    installed stylesheets.
-
-  - "git commit $paths" on paths whose earlier contents were
-    already updated in the index were failing out.
-
-
-* Tweaks
-
-  - sliding mmap() inefficiently mmaped the same region of a
-    packfile with an access pattern that used objects in the
-    reverse order.  This has been made more efficient.
diff --git a/third_party/git/Documentation/RelNotes/1.5.2.1.txt b/third_party/git/Documentation/RelNotes/1.5.2.1.txt
deleted file mode 100644
index d41984df0b6b..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.2.1.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-GIT v1.5.2.1 Release Notes
-==========================
-
-Fixes since v1.5.2
-------------------
-
-* Bugfixes
-
-  - Temporary files that are used when invoking external diff
-    programs did not tolerate a long TMPDIR.
-
-  - git-daemon did not notice when it could not write into its
-    pid file.
-
-  - git-status did not honor core.excludesFile configuration like
-    git-add did.
-
-  - git-annotate did not work from a subdirectory while
-    git-blame did.
-
-  - git-cvsserver should have disabled access to a repository
-    with "gitcvs.pserver.enabled = false" set even when
-    "gitcvs.enabled = true" was set at the same time.  It
-    didn't.
-
-  - git-cvsimport did not work correctly in a repository with
-    its branch heads were packed with pack-refs.
-
-  - ident unexpansion to squash "$Id: xxx $" that is in the
-    repository copy removed incorrect number of bytes.
-
-  - git-svn misbehaved when the subversion repository did not
-    provide MD5 checksums for files.
-
-  - git rebase (and git am) misbehaved on commits that have '\n'
-    (literally backslash and en, not a linefeed) in the title.
-
-  - code to decode base85 used in binary patches had one error
-    return codepath wrong.
-
-  - RFC2047 Q encoding output by git-format-patch used '_' for a
-    space, which is not understood by some programs.  It uses =20
-    which is safer.
-
-  - git-fastimport --import-marks was broken; fixed.
-
-  - A lot of documentation updates, clarifications and fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.5.2.2.txt b/third_party/git/Documentation/RelNotes/1.5.2.2.txt
deleted file mode 100644
index 7bfa34175060..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.2.2.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-GIT v1.5.2.2 Release Notes
-==========================
-
-Fixes since v1.5.2.1
---------------------
-
-* Usability fix
-
-  - git-gui is shipped with its updated blame interface.  It is
-    rumored that the older one was not just unusable but was
-    active health hazard, but this one is actually pretty.
-    Please see for yourself.
-
-* Bugfixes
-
-  - "git checkout fubar" was utterly confused when there is a
-    branch fubar and a tag fubar at the same time.  It correctly
-    checks out the branch fubar now.
-
-  - "git clone /path/foo" to clone a local /path/foo.git
-    repository left an incorrect configuration.
-
-  - "git send-email" correctly unquotes RFC 2047 quoted names in
-    the patch-email before using their values.
-
-  - We did not accept number of seconds since epoch older than
-    year 2000 as a valid timestamp.  We now interpret positive
-    integers more than 8 digits as such, which allows us to
-    express timestamps more recent than March 1973.
-
-  - git-cvsimport did not work when you have GIT_DIR to point
-    your repository at a nonstandard location.
-
-  - Some systems (notably, Solaris) lack hstrerror() to make
-    h_errno human readable; prepare a replacement
-    implementation.
-
-  - .gitignore file listed git-core.spec but what we generate is
-    git.spec, and nobody noticed for a long time.
-
-  - "git-merge-recursive" does not try to run file level merge
-    on binary files.
-
-  - "git-branch --track" did not create tracking configuration
-    correctly when the branch name had slash in it.
-
-  - The email address of the user specified with user.email
-    configuration was overridden by EMAIL environment variable.
-
-  - The tree parser did not warn about tree entries with
-    nonsense file modes, and assumed they must be blobs.
-
-  - "git log -z" without any other request to generate diff still
-    invoked the diff machinery, wasting cycles.
-
-* Documentation
-
-  - Many updates to fix stale or missing documentation.
-
-  - Although our documentation was primarily meant to be formatted
-    with AsciiDoc7, formatting with AsciiDoc8 is supported better.
diff --git a/third_party/git/Documentation/RelNotes/1.5.2.3.txt b/third_party/git/Documentation/RelNotes/1.5.2.3.txt
deleted file mode 100644
index addb22955b4e..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.2.3.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-GIT v1.5.2.3 Release Notes
-==========================
-
-Fixes since v1.5.2.2
---------------------
-
- * Bugfixes
-
-   - Version 2 pack index format was introduced in version 1.5.2
-     to support pack files that has offset that cannot be
-     represented in 32-bit.  The runtime code to validate such
-     an index mishandled such an index for an empty pack.
-
-   - Commit walkers (most notably, fetch over http protocol)
-     tried to traverse commit objects contained in trees (aka
-     subproject); they shouldn't.
-
-   - A build option NO_R_TO_GCC_LINKER was not explained in Makefile
-     comment correctly.
-
- * Documentation Fixes and Updates
-
-   - git-config --regexp was not documented properly.
-
-   - git-repack -a was not documented properly.
-
-   - git-remote -n was not documented properly.
diff --git a/third_party/git/Documentation/RelNotes/1.5.2.4.txt b/third_party/git/Documentation/RelNotes/1.5.2.4.txt
deleted file mode 100644
index 75cff475f654..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.2.4.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-GIT v1.5.2.4 Release Notes
-==========================
-
-Fixes since v1.5.2.3
---------------------
-
- * Bugfixes
-
-   - "git-gui" bugfixes, including a handful fixes to run it
-     better on Cygwin/MSYS.
-
-   - "git checkout" failed to switch back and forth between
-     branches, one of which has "frotz -> xyzzy" symlink and
-     file "xyzzy/filfre", while the other one has a file
-     "frotz/filfre".
-
-   - "git prune" used to segfault upon seeing a commit that is
-     referred to by a tree object (aka "subproject").
-
-   - "git diff --name-status --no-index" mishandled an added file.
-
-   - "git apply --reverse --whitespace=warn" still complained
-     about whitespaces that a forward application would have
-     introduced.
-
- * Documentation Fixes and Updates
-
-   - A handful documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.5.2.5.txt b/third_party/git/Documentation/RelNotes/1.5.2.5.txt
deleted file mode 100644
index e8281c72a0b9..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.2.5.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-GIT v1.5.2.5 Release Notes
-==========================
-
-Fixes since v1.5.2.4
---------------------
-
- * Bugfixes
-
-   - "git add -u" had a serious data corruption problem in one
-     special case (when the changes to a subdirectory's files
-     consist only deletion of files).
-
-   - "git add -u <path>" did not work from a subdirectory.
-
-   - "git apply" left an empty directory after all its files are
-     renamed away.
-
-   - "git $anycmd foo/bar", when there is a file 'foo' in the
-     working tree, complained that "git $anycmd foo/bar --" form
-     should be used to disambiguate between revs and files,
-     which was completely bogus.
-
-   - "git checkout-index" and other commands that checks out
-     files to the work tree tried unlink(2) on directories,
-     which is a sane thing to do on sane systems, but not on
-     Solaris when you are root.
-
- * Documentation Fixes and Updates
-
-   - A handful documentation fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.5.2.txt b/third_party/git/Documentation/RelNotes/1.5.2.txt
deleted file mode 100644
index e8328d090a43..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.2.txt
+++ /dev/null
@@ -1,197 +0,0 @@
-GIT v1.5.2 Release Notes
-========================
-
-Updates since v1.5.1
---------------------
-
-* Plumbing level superproject support.
-
-  You can include a subdirectory that has an independent git
-  repository in your index and tree objects of your project
-  ("superproject").  This plumbing (i.e. "core") level
-  superproject support explicitly excludes recursive behaviour.
-
-  The "subproject" entries in the index and trees of a superproject
-  are incompatible with older versions of git.  Experimenting with
-  the plumbing level support is encouraged, but be warned that
-  unless everybody in your project updates to this release or
-  later, using this feature would make your project
-  inaccessible by people with older versions of git.
-
-* Plumbing level gitattributes support.
-
-  The gitattributes mechanism allows you to add 'attributes' to
-  paths in your project, and affect the way certain git
-  operations work.  Currently you can influence if a path is
-  considered a binary or text (the former would be treated by
-  'git diff' not to produce textual output; the latter can go
-  through the line endings conversion process in repositories
-  with core.autocrlf set), expand and unexpand '$Id$' keyword
-  with blob object name, specify a custom 3-way merge driver,
-  and specify a custom diff driver.  You can also apply
-  arbitrary filter to contents on check-in/check-out codepath
-  but this feature is an extremely sharp-edged razor and needs
-  to be handled with caution (do not use it unless you
-  understand the earlier mailing list discussion on keyword
-  expansion).  These conversions apply when checking files in
-  or out, and exporting via git-archive.
-
-* The packfile format now optionally supports 64-bit index.
-
-  This release supports the "version 2" format of the .idx
-  file.  This is automatically enabled when a huge packfile
-  needs more than 32-bit to express offsets of objects in the
-  pack.
-
-* Comes with an updated git-gui 0.7.1
-
-* Updated gitweb:
-
-  - can show combined diff for merges;
-  - uses font size of user's preference, not hardcoded in pixels;
-  - can now 'grep';
-
-* New commands and options.
-
-  - "git bisect start" can optionally take a single bad commit and
-    zero or more good commits on the command line.
-
-  - "git shortlog" can optionally be told to wrap its output.
-
-  - "subtree" merge strategy allows another project to be merged in as
-    your subdirectory.
-
-  - "git format-patch" learned a new --subject-prefix=<string>
-    option, to override the built-in "[PATCH]".
-
-  - "git add -u" is a quick way to do the first stage of "git
-    commit -a" (i.e. update the index to match the working
-    tree); it obviously does not make a commit.
-
-  - "git clean" honors a new configuration, "clean.requireforce".  When
-    set to true, this makes "git clean" a no-op, preventing you
-    from losing files by typing "git clean" when you meant to
-    say "make clean".  You can still say "git clean -f" to
-    override this.
-
-  - "git log" family of commands learned --date={local,relative,default}
-    option.  --date=relative is synonym to the --relative-date.
-    --date=local gives the timestamp in local timezone.
-
-* Updated behavior of existing commands.
-
-  - When $GIT_COMMITTER_EMAIL or $GIT_AUTHOR_EMAIL is not set
-    but $EMAIL is set, the latter is used as a substitute.
-
-  - "git diff --stat" shows size of preimage and postimage blobs
-    for binary contents.  Earlier it only said "Bin".
-
-  - "git lost-found" shows stuff that are unreachable except
-    from reflogs.
-
-  - "git checkout branch^0" now detaches HEAD at the tip commit
-    on the named branch, instead of just switching to the
-    branch (use "git checkout branch" to switch to the branch,
-    as before).
-
-  - "git bisect next" can be used after giving only a bad commit
-    without giving a good one (this starts bisection half-way to
-    the root commit).  We used to refuse to operate without a
-    good and a bad commit.
-
-  - "git push", when pushing into more than one repository, does
-    not stop at the first error.
-
-  - "git archive" does not insist you to give --format parameter
-    anymore; it defaults to "tar".
-
-  - "git cvsserver" can use backends other than sqlite.
-
-  - "gitview" (in contrib/ section) learned to better support
-    "git-annotate".
-
-  - "git diff $commit1:$path2 $commit2:$path2" can now report
-    mode changes between the two blobs.
-
-  - Local "git fetch" from a repository whose object store is
-    one of the alternates (e.g. fetching from the origin in a
-    repository created with "git clone -l -s") avoids
-    downloading objects unnecessarily.
-
-  - "git blame" uses .mailmap to canonicalize the author name
-    just like "git shortlog" does.
-
-  - "git pack-objects" pays attention to pack.depth
-    configuration variable.
-
-  - "git cherry-pick" and "git revert" does not use .msg file in
-    the working tree to prepare commit message; instead it uses
-    $GIT_DIR/MERGE_MSG as other commands do.
-
-* Builds
-
-  - git-p4import has never been installed; now there is an
-    installation option to do so.
-
-  - gitk and git-gui can be configured out.
-
-  - Generated documentation pages automatically get version
-    information from GIT_VERSION.
-
-  - Parallel build with "make -j" descending into subdirectory
-    was fixed.
-
-* Performance Tweaks
-
-  - Optimized "git-rev-list --bisect" (hence "git-bisect").
-
-  - Optimized "git-add $path" in a large directory, most of
-    whose contents are ignored.
-
-  - Optimized "git-diff-tree" for reduced memory footprint.
-
-  - The recursive merge strategy updated a worktree file that
-    was changed identically in two branches, when one of them
-    renamed it.  We do not do that when there is no rename, so
-    match that behaviour.  This avoids excessive rebuilds.
-
-  - The default pack depth has been increased to 50, as the
-    recent addition of delta_base_cache makes deeper delta chains
-    much less expensive to access.  Depending on the project, it was
-    reported that this reduces the resulting pack file by 10%
-    or so.
-
-
-Fixes since v1.5.1
-------------------
-
-All of the fixes in v1.5.1 maintenance series are included in
-this release, unless otherwise noted.
-
-* Bugfixes
-
-  - Switching branches with "git checkout" refused to work when
-    a path changes from a file to a directory between the
-    current branch and the new branch, in order not to lose
-    possible local changes in the directory that is being turned
-    into a file with the switch.  We now allow such a branch
-    switch after making sure that there is no locally modified
-    file nor un-ignored file in the directory.  This has not
-    been backported to 1.5.1.x series, as it is rather an
-    intrusive change.
-
-  - Merging branches that have a file in one and a directory in
-    another at the same path used to get quite confused.  We
-    handle such a case a bit more carefully, even though that is
-    still left as a conflict for the user to sort out.  This
-    will not be backported to 1.5.1.x series, as it is rather an
-    intrusive change.
-
-  - git-fetch had trouble with a remote with insanely large number
-    of refs.
-
-  - "git clean -d -X" now does not remove non-excluded directories.
-
-  - rebasing (without -m) a series that changes a symlink to a directory
-    in the middle of a path confused git-apply greatly and refused to
-    operate.
diff --git a/third_party/git/Documentation/RelNotes/1.5.3.1.txt b/third_party/git/Documentation/RelNotes/1.5.3.1.txt
deleted file mode 100644
index 7ff546c743b3..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.3.1.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-GIT v1.5.3.1 Release Notes
-==========================
-
-Fixes since v1.5.3
-------------------
-
-This is solely to fix the generated RPM's dependencies.  We used
-to have git-p4 package but we do not anymore.  As suggested on
-the mailing list, this release makes git-core "Obsolete" git-p4,
-so that yum update would not complain.
diff --git a/third_party/git/Documentation/RelNotes/1.5.3.2.txt b/third_party/git/Documentation/RelNotes/1.5.3.2.txt
deleted file mode 100644
index 4bbde3cab4dc..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.3.2.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-GIT v1.5.3.2 Release Notes
-==========================
-
-Fixes since v1.5.3.1
---------------------
-
- * git-push sent thin packs by default, which was not good for
-   the public distribution server (no point in saving transfer
-   while pushing; no point in making the resulting pack less
-   optimum).
-
- * git-svn sometimes terminated with "Malformed network data" when
-   talking over svn:// protocol.
-
- * git-send-email re-issued the same message-id about 10% of the
-   time if you fired off 30 messages within a single second.
-
- * git-stash was not terminating the log message of commits it
-   internally creates with LF.
-
- * git-apply failed to check the size of the patch hunk when its
-   beginning part matched the remainder of the preimage exactly,
-   even though the preimage recorded in the hunk was much larger
-   (therefore the patch should not have applied), leading to a
-   segfault.
-
- * "git rm foo && git commit foo" complained that 'foo' needs to
-   be added first, instead of committing the removal, which was a
-   nonsense.
-
- * git grep -c said "/dev/null: 0".
-
- * git-add -u failed to recognize a blob whose type changed
-   between the index and the work tree.
-
- * The limit to rename detection has been tightened a lot to
-   reduce performance problems with a huge change.
-
- * cvsimport and svnimport barfed when the input tried to move
-   a tag.
-
- * "git apply -pN" did not chop the right number of directories.
-
- * "git svnimport" did not like SVN tags with funny characters in them.
-
- * git-gui 0.8.3, with assorted fixes, including:
-
-   - font-chooser on X11 was unusable with large number of fonts;
-   - a diff that contained a deleted symlink made it barf;
-   - an untracked symbolic link to a directory made it fart;
-   - a file with % in its name made it vomit;
-
-
-Documentation updates
----------------------
-
-User manual has been somewhat restructured.  I think the new
-organization is much easier to read.
diff --git a/third_party/git/Documentation/RelNotes/1.5.3.3.txt b/third_party/git/Documentation/RelNotes/1.5.3.3.txt
deleted file mode 100644
index d2138469511d..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.3.3.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-GIT v1.5.3.3 Release Notes
-==========================
-
-Fixes since v1.5.3.2
---------------------
-
- * git-quiltimport did not like it when a patch described in the
-   series file does not exist.
-
- * p4 importer missed executable bit in some cases.
-
- * The default shell on some FreeBSD did not execute the
-   argument parsing code correctly and made git unusable.
-
- * git-svn incorrectly spawned pager even when the user
-   explicitly asked not to.
-
- * sample post-receive hook overquoted the envelope sender
-   value.
-
- * git-am got confused when the patch contained a change that is
-   only about type and not contents.
-
- * git-mergetool did not show our and their version of the
-   conflicted file when started from a subdirectory of the
-   project.
-
- * git-mergetool did not pass correct options when invoking diff3.
-
- * git-log sometimes invoked underlying "diff" machinery
-   unnecessarily.
diff --git a/third_party/git/Documentation/RelNotes/1.5.3.4.txt b/third_party/git/Documentation/RelNotes/1.5.3.4.txt
deleted file mode 100644
index b04b3a45a562..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.3.4.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-GIT v1.5.3.4 Release Notes
-==========================
-
-Fixes since v1.5.3.3
---------------------
-
- * Change to "git-ls-files" in v1.5.3.3 that was introduced to support
-   partial commit of removal better had a segfaulting bug, which was
-   diagnosed and fixed by Keith and Carl.
-
- * Performance improvements for rename detection has been backported
-   from the 'master' branch.
-
- * "git-for-each-ref --format='%(numparent)'" was not working
-   correctly at all, and --format='%(parent)' was not working for
-   merge commits.
-
- * Sample "post-receive-hook" incorrectly sent out push
-   notification e-mails marked as "From: " the committer of the
-   commit that happened to be at the tip of the branch that was
-   pushed, not from the person who pushed.
-
- * "git-remote" did not exit non-zero status upon error.
-
- * "git-add -i" did not respond very well to EOF from tty nor
-   bogus input.
-
- * "git-rebase -i" squash subcommand incorrectly made the
-   author of later commit the author of resulting commit,
-   instead of taking from the first one in the squashed series.
-
- * "git-stash apply --index" was not documented.
-
- * autoconfiguration learned that "ar" command is found as "gas" on
-   some systems.
diff --git a/third_party/git/Documentation/RelNotes/1.5.3.5.txt b/third_party/git/Documentation/RelNotes/1.5.3.5.txt
deleted file mode 100644
index 7ff1d5d0d100..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.3.5.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-GIT v1.5.3.5 Release Notes
-==========================
-
-Fixes since v1.5.3.4
---------------------
-
- * Comes with git-gui 0.8.4.
-
- * "git-config" silently ignored options after --list; now it will
-   error out with a usage message.
-
- * "git-config --file" failed if the argument used a relative path
-   as it changed directories before opening the file.
-
- * "git-config --file" now displays a proper error message if it
-   cannot read the file specified on the command line.
-
- * "git-config", "git-diff", "git-apply" failed if run from a
-   subdirectory with relative GIT_DIR and GIT_WORK_TREE set.
-
- * "git-blame" crashed if run during a merge conflict.
-
- * "git-add -i" did not handle single line hunks correctly.
-
- * "git-rebase -i" and "git-stash apply" failed if external diff
-   drivers were used for one or more files in a commit.  They now
-   avoid calling the external diff drivers.
-
- * "git-log --follow" did not work unless diff generation (e.g. -p)
-   was also requested.
-
- * "git-log --follow -B" did not work at all.  Fixed.
-
- * "git-log -M -B" did not correctly handle cases of very large files
-   being renamed and replaced by very small files in the same commit.
-
- * "git-log" printed extra newlines between commits when a diff
-   was generated internally (e.g. -S or --follow) but not displayed.
-
- * "git-push" error message is more helpful when pushing to a
-   repository with no matching refs and none specified.
-
- * "git-push" now respects + (force push) on wildcard refspecs,
-   matching the behavior of git-fetch.
-
- * "git-filter-branch" now updates the working directory when it
-   has finished filtering the current branch.
-
- * "git-instaweb" no longer fails on Mac OS X.
-
- * "git-cvsexportcommit" didn't always create new parent directories
-   before trying to create new child directories.  Fixed.
-
- * "git-fetch" printed a scary (but bogus) error message while
-   fetching a tag that pointed to a tree or blob.  The error did
-   not impact correctness, only user perception.  The bogus error
-   is no longer printed.
-
- * "git-ls-files --ignored" did not properly descend into non-ignored
-   directories that themselves contained ignored files if d_type
-   was not supported by the filesystem.  This bug impacted systems
-   such as AFS.  Fixed.
-
- * Git segfaulted when reading an invalid .gitattributes file.  Fixed.
-
- * post-receive-email example hook was fixed for non-fast-forward
-   updates.
-
- * Documentation updates for supported (but previously undocumented)
-   options of "git-archive" and "git-reflog".
-
- * "make clean" no longer deletes the configure script that ships
-   with the git tarball, making multiple architecture builds easier.
-
- * "git-remote show origin" spewed a warning message from Perl
-   when no remote is defined for the current branch via
-   branch.<name>.remote configuration settings.
-
- * Building with NO_PERL_MAKEMAKER excessively rebuilt contents
-   of perl/ subdirectory by rewriting perl.mak.
-
- * http.sslVerify configuration settings were not used in scripted
-   Porcelains.
-
- * "git-add" leaked a bit of memory while scanning for files to add.
-
- * A few workarounds to squelch false warnings from recent gcc have
-   been added.
-
- * "git-send-pack $remote frotz" segfaulted when there is nothing
-   named 'frotz' on the local end.
-
- * "git-rebase --interactive" did not handle its "--strategy" option
-   properly.
diff --git a/third_party/git/Documentation/RelNotes/1.5.3.6.txt b/third_party/git/Documentation/RelNotes/1.5.3.6.txt
deleted file mode 100644
index 069a2b2cf9e9..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.3.6.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-GIT v1.5.3.6 Release Notes
-==========================
-
-Fixes since v1.5.3.5
---------------------
-
- * git-cvsexportcommit handles root commits better.
-
- * git-svn dcommit used to clobber when sending a series of
-   patches.
-
- * git-svn dcommit failed after attempting to rebase when
-   started with a dirty index; now it stops upfront.
-
- * git-grep sometimes refused to work when your index was
-   unmerged.
-
- * "git-grep -A1 -B2" acted as if it was told to run "git -A1 -B21".
-
- * git-hash-object did not honor configuration variables, such as
-   core.compression.
-
- * git-index-pack choked on a huge pack on 32-bit machines, even when
-   large file offsets are supported.
-
- * atom feeds from git-web said "10" for the month of November.
-
- * a memory leak in commit walker was plugged.
-
- * When git-send-email inserted the original author's From:
-   address in body, it did not mark the message with
-   Content-type: as needed.
-
- * git-revert and git-cherry-pick incorrectly refused to start
-   when the work tree was dirty.
-
- * git-clean did not honor core.excludesfile configuration.
-
- * git-add mishandled ".gitignore" files when applying them to
-   subdirectories.
-
- * While importing a too branchy history, git-fastimport did not
-   honor delta depth limit properly.
-
- * Support for zlib implementations that lack ZLIB_VERNUM and definition
-   of deflateBound() has been added.
-
- * Quite a lot of documentation clarifications.
diff --git a/third_party/git/Documentation/RelNotes/1.5.3.7.txt b/third_party/git/Documentation/RelNotes/1.5.3.7.txt
deleted file mode 100644
index 2f690616c832..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.3.7.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-GIT v1.5.3.7 Release Notes
-==========================
-
-Fixes since v1.5.3.6
---------------------
-
- * git-send-email added 8-bit contents to the payload without
-   marking it as 8-bit in a CTE header.
-
- * "git-bundle create a.bndl HEAD" dereferenced the symref and
-   did not record the ref as 'HEAD'; this prevented a bundle
-   from being used as a normal source of git-clone.
-
- * The code to reject nonsense command line of the form
-   "git-commit -a paths..." and "git-commit --interactive
-   paths..." were broken.
-
- * Adding a signature that is not ASCII-only to an original
-   commit that is ASCII-only would make the result non-ASCII.
-   "git-format-patch -s" did not mark such a message correctly
-   with MIME encoding header.
-
- * git-add sometimes did not mark the resulting index entry
-   stat-clean.  This affected only cases when adding the
-   contents with the same length as the previously staged
-   contents, and the previous staging made the index entry
-   "racily clean".
-
- * git-commit did not honor GIT_INDEX_FILE the user had in the
-   environment.
-
- * When checking out a revision, git-checkout did not report where the
-   updated HEAD is if you happened to have a file called HEAD in the
-   work tree.
-
- * "git-rev-list --objects" mishandled a tree that points at a
-   submodule.
-
- * "git cvsimport" was not ready for packed refs that "git gc" can
-   produce and gave incorrect results.
-
- * Many scripted Porcelains were confused when you happened to have a
-   file called "HEAD" in your work tree.
-
-Also it contains updates to the user manual and documentation.
diff --git a/third_party/git/Documentation/RelNotes/1.5.3.8.txt b/third_party/git/Documentation/RelNotes/1.5.3.8.txt
deleted file mode 100644
index 0e3ff58a46f3..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.3.8.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-GIT v1.5.3.8 Release Notes
-==========================
-
-Fixes since v1.5.3.7
---------------------
-
- * Some documentation used "email.com" as an example domain.
-
- * git-svn fix to handle funky branch and project names going over
-   http/https correctly.
-
- * git-svn fix to tone down a needlessly alarming warning message.
-
- * git-clone did not correctly report errors while fetching over http.
-
- * git-send-email added redundant Message-Id: header to the outgoing
-   e-mail when the patch text already had one.
-
- * a read-beyond-end-of-buffer bug in configuration file updater was fixed.
-
- * git-grep used to show the same hit repeatedly for unmerged paths.
-
- * After amending the patch title in "git-am -i", the command did not
-   report the patch it applied with the updated title.
-
diff --git a/third_party/git/Documentation/RelNotes/1.5.3.txt b/third_party/git/Documentation/RelNotes/1.5.3.txt
deleted file mode 100644
index 0668d3c0cadc..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.3.txt
+++ /dev/null
@@ -1,366 +0,0 @@
-GIT v1.5.3 Release Notes
-========================
-
-Updates since v1.5.2
---------------------
-
-* The commit walkers other than http are officially deprecated,
-  but still supported for now.
-
-* The submodule support has Porcelain layer.
-
-  Note that the current submodule support is minimal and this is
-  deliberately so.  A design decision we made is that operations
-  at the supermodule level do not recurse into submodules by
-  default.  The expectation is that later we would add a
-  mechanism to tell git which submodules the user is interested
-  in, and this information might be used to determine the
-  recursive behaviour of certain commands (e.g. "git checkout"
-  and "git diff"), but currently we haven't agreed on what that
-  mechanism should look like.  Therefore, if you use submodules,
-  you would probably need "git submodule update" on the
-  submodules you care about after running a "git checkout" at
-  the supermodule level.
-
-* There are a handful pack-objects changes to help you cope better
-  with repositories with pathologically large blobs in them.
-
-* For people who need to import from Perforce, a front-end for
-  fast-import is in contrib/fast-import/.
-
-* Comes with git-gui 0.8.2.
-
-* Comes with updated gitk.
-
-* New commands and options.
-
-  - "git log --date=<format>" can use more formats: iso8601, rfc2822.
-
-  - The hunk header output from "git diff" family can be customized
-    with the attributes mechanism.  See gitattributes(5) for details.
-
-  - "git stash" allows you to quickly save away your work in
-    progress and replay it later on an updated state.
-
-  - "git rebase" learned an "interactive" mode that let you
-    pick and reorder which commits to rebuild.
-
-  - "git fsck" can save its findings in $GIT_DIR/lost-found, without a
-    separate invocation of "git lost-found" command.  The blobs stored by
-    lost-found are stored in plain format to allow you to grep in them.
-
-  - $GIT_WORK_TREE environment variable can be used together with
-    $GIT_DIR to work in a subdirectory of a working tree that is
-    not located at "$GIT_DIR/..".
-
-  - Giving "--file=<file>" option to "git config" is the same as
-    running the command with GIT_CONFIG=<file> environment.
-
-  - "git log" learned a new option "--follow", to follow
-    renaming history of a single file.
-
-  - "git filter-branch" lets you rewrite the revision history of
-    specified branches. You can specify a number of filters to
-    modify the commits, files and trees.
-
-  - "git cvsserver" learned new options (--base-path, --export-all,
-    --strict-paths) inspired by "git daemon".
-
-  - "git daemon --base-path-relaxed" can help migrating a repository URL
-    that did not use to use --base-path to use --base-path.
-
-  - "git commit" can use "-t templatefile" option and commit.template
-    configuration variable to prime the commit message given to you in the
-    editor.
-
-  - "git submodule" command helps you manage the projects from
-    the superproject that contain them.
-
-  - In addition to core.compression configuration option,
-    core.loosecompression and pack.compression options can
-    independently tweak zlib compression levels used for loose
-    and packed objects.
-
-  - "git ls-tree -l" shows size of blobs pointed at by the
-    tree entries, similar to "/bin/ls -l".
-
-  - "git rev-list" learned --regexp-ignore-case and
-    --extended-regexp options to tweak its matching logic used
-    for --grep filtering.
-
-  - "git describe --contains" is a handier way to call more
-    obscure command "git name-rev --tags".
-
-  - "git gc --aggressive" tells the command to spend more cycles
-    to optimize the repository harder.
-
-  - "git repack" learned a "window-memory" limit which
-    dynamically reduces the window size to stay within the
-    specified memory usage.
-
-  - "git repack" can be told to split resulting packs to avoid
-    exceeding limit specified with "--max-pack-size".
-
-  - "git fsck" gained --verbose option.  This is really really
-    verbose but it might help you identify exact commit that is
-    corrupt in your repository.
-
-  - "git format-patch" learned --numbered-files option.  This
-    may be useful for MH users.
-
-  - "git format-patch" learned format.subjectprefix configuration
-    variable, which serves the same purpose as "--subject-prefix"
-    option.
-
-  - "git tag -n -l" shows tag annotations while listing tags.
-
-  - "git cvsimport" can optionally use the separate-remote layout.
-
-  - "git blame" can be told to see through commits that change
-    whitespaces and indentation levels with "-w" option.
-
-  - "git send-email" can be told not to thread the messages when
-    sending out more than one patches.
-
-  - "git send-email" can also be told how to find whom to cc the
-    message to for each message via --cc-cmd.
-
-  - "git config" learned NUL terminated output format via -z to
-    help scripts.
-
-  - "git add" learned "--refresh <paths>..." option to selectively refresh
-    the cached stat information.
-
-  - "git init -q" makes the command quieter.
-
-  - "git -p command" now has a cousin of opposite sex, "git --no-pager
-    command".
-
-* Updated behavior of existing commands.
-
-  - "gitweb" can offer multiple snapshot formats.
-
-    ***NOTE*** Unfortunately, this changes the format of the
-    $feature{snapshot}{default} entry in the per-site
-    configuration file 'gitweb_config.perl'.  It used to be a
-    three-element tuple that describe a single format; with the
-    new configuration item format, you only have to say the name
-    of the format ('tgz', 'tbz2' or 'zip').  Please update the
-    your configuration file accordingly.
-
-  - "git clone" uses -l (hardlink files under .git) by default when
-    cloning locally.
-
-  - URL used for "git clone" and friends can specify nonstandard SSH port
-    by using ssh://host:port/path/to/repo syntax.
-
-  - "git bundle create" can now create a bundle without negative refs,
-    i.e. "everything since the beginning up to certain points".
-
-  - "git diff" (but not the plumbing level "git diff-tree") now
-    recursively descends into trees by default.
-
-  - "git diff" does not show differences that come only from
-    stat-dirtiness in the form of "diff --git" header anymore.
-    It runs "update-index --refresh" silently as needed.
-
-  - "git tag -l" used to match tags by globbing its parameter as if it
-    has wildcard '*' on both ends, which made "git tag -l gui" to match
-    tag 'gitgui-0.7.0'; this was very annoying.  You now have to add
-    asterisk on the sides you want to wildcard yourself.
-
-  - The editor to use with many interactive commands can be
-    overridden with GIT_EDITOR environment variable, or if it
-    does not exist, with core.editor configuration variable.  As
-    before, if you have neither, environment variables VISUAL
-    and EDITOR are consulted in this order, and then finally we
-    fall back on "vi".
-
-  - "git rm --cached" does not complain when removing a newly
-    added file from the index anymore.
-
-  - Options to "git log" to affect how --grep/--author options look for
-    given strings now have shorter abbreviations.  -i is for ignore case,
-    and -E is for extended regexp.
-
-  - "git log" learned --log-size to show the number of bytes in
-    the log message part of the output to help qgit.
-
-  - "git log --name-status" does not require you to give "-r" anymore.
-    As a general rule, Porcelain commands should recurse when showing
-    diff.
-
-  - "git format-patch --root A" can be used to format everything
-    since the beginning up to A.  This was supported with
-    "git format-patch --root A A" for a long time, but was not
-    properly documented.
-
-  - "git svn dcommit" retains local merge information.
-
-  - "git svnimport" allows an empty string to be specified as the
-    trunk/ directory.  This is necessary to suck data from a SVN
-    repository that doe not have trunk/ branches/ and tags/ organization
-    at all.
-
-  - "git config" to set values also honors type flags like --bool
-    and --int.
-
-  - core.quotepath configuration can be used to make textual git
-    output to emit most of the characters in the path literally.
-
-  - "git mergetool" chooses its backend more wisely, taking
-    notice of its environment such as use of X, Gnome/KDE, etc.
-
-  - "gitweb" shows merge commits a lot nicer than before.  The
-    default view uses more compact --cc format, while the UI
-    allows to choose normal diff with any parent.
-
-  - snapshot files "gitweb" creates from a repository at
-    $path/$project/.git are more useful.  We use $project part
-    in the filename, which we used to discard.
-
-  - "git cvsimport" creates lightweight tags; there is no
-    interesting information we can record in an annotated tag,
-    and the handcrafted ones the old code created was not
-    properly formed anyway.
-
-  - "git push" pretends that you immediately fetched back from
-    the remote by updating corresponding remote tracking
-    branches if you have any.
-
-  - The diffstat given after a merge (or a pull) honors the
-    color.diff configuration.
-
-  - "git commit --amend" is now compatible with various message source
-    options such as -m/-C/-c/-F.
-
-  - "git apply --whitespace=strip" removes blank lines added at
-    the end of the file.
-
-  - "git fetch" over git native protocols with "-v" option shows
-    connection status, and the IP address of the other end, to
-    help diagnosing problems.
-
-  - We used to have core.legacyheaders configuration, when
-    set to false, allowed git to write loose objects in a format
-    that mimics the format used by objects stored in packs.  It
-    turns out that this was not so useful.  Although we will
-    continue to read objects written in that format, we do not
-    honor that configuration anymore and create loose objects in
-    the legacy/traditional format.
-
-  - "--find-copies-harder" option to diff family can now be
-    spelled as "-C -C" for brevity.
-
-  - "git mailsplit" (hence "git am") can read from Maildir
-    formatted mailboxes.
-
-  - "git cvsserver" does not barf upon seeing "cvs login"
-    request.
-
-  - "pack-objects" honors "delta" attribute set in
-    .gitattributes.  It does not attempt to deltify blobs that
-    come from paths with delta attribute set to false.
-
-  - "new-workdir" script (in contrib) can now be used with a
-    bare repository.
-
-  - "git mergetool" learned to use gvimdiff.
-
-  - "gitview" (in contrib) has a better blame interface.
-
-  - "git log" and friends did not handle a commit log message
-    that is larger than 16kB; they do now.
-
-  - "--pretty=oneline" output format for "git log" and friends
-    deals with "malformed" commit log messages that have more
-    than one lines in the first paragraph better.  We used to
-    show the first line, cutting the title at mid-sentence; we
-    concatenate them into a single line and treat the result as
-    "oneline".
-
-  - "git p4import" has been demoted to contrib status.  For
-    a superior option, checkout the "git p4" front end to
-    "git fast-import" (also in contrib).  The man page and p4
-    rpm have been removed as well.
-
-  - "git mailinfo" (hence "am") now tries to see if the message
-    is in utf-8 first, instead of assuming iso-8859-1, if
-    incoming e-mail does not say what encoding it is in.
-
-* Builds
-
-  - old-style function definitions (most notably, a function
-    without parameter defined with "func()", not "func(void)")
-    have been eradicated.
-
-  - "git tag" and "git verify-tag" have been rewritten in C.
-
-* Performance Tweaks
-
-  - "git pack-objects" avoids re-deltification cost by caching
-    small enough delta results it creates while looking for the
-    best delta candidates.
-
-  - "git pack-objects" learned a new heuristic to prefer delta
-    that is shallower in depth over the smallest delta
-    possible.  This improves both overall packfile access
-    performance and packfile density.
-
-  - diff-delta code that is used for packing has been improved
-    to work better on big files.
-
-  - when there are more than one pack files in the repository,
-    the runtime used to try finding an object always from the
-    newest packfile; it now tries the same packfile as we found
-    the object requested the last time, which exploits the
-    locality of references.
-
-  - verifying pack contents done by "git fsck --full" got boost
-    by carefully choosing the order to verify objects in them.
-
-  - "git read-tree -m" to read into an already populated index
-    has been optimized vastly.  The effect of this can be seen
-    when switching branches that have differences in only a
-    handful paths.
-
-  - "git add paths..." and "git commit paths..." has also been
-    heavily optimized.
-
-Fixes since v1.5.2
-------------------
-
-All of the fixes in v1.5.2 maintenance series are included in
-this release, unless otherwise noted.
-
-* Bugfixes
-
-  - "gitweb" had trouble handling non UTF-8 text with older
-    Encode.pm Perl module.
-
-  - "git svn" misparsed the data from the commits in the repository when
-    the user had "color.diff = true" in the configuration.  This has been
-    fixed.
-
-  - There was a case where "git svn dcommit" clobbered changes made on the
-    SVN side while committing multiple changes.
-
-  - "git-write-tree" had a bad interaction with racy-git avoidance and
-    gitattributes mechanisms.
-
-  - "git --bare command" overrode existing GIT_DIR setting and always
-    made it treat the current working directory as GIT_DIR.
-
-  - "git ls-files --error-unmatch" does not complain if you give the
-    same path pattern twice by mistake.
-
-  - "git init" autodetected core.filemode but not core.symlinks, which
-    made a new directory created automatically by "git clone" cumbersome
-    to use on filesystems that require these configurations to be set.
-
-  - "git log" family of commands behaved differently when run as "git
-    log" (no pathspec) and as "git log --" (again, no pathspec).  This
-    inconsistency was introduced somewhere in v1.3.0 series but now has
-    been corrected.
-
-  - "git rebase -m" incorrectly displayed commits that were skipped.
diff --git a/third_party/git/Documentation/RelNotes/1.5.4.1.txt b/third_party/git/Documentation/RelNotes/1.5.4.1.txt
deleted file mode 100644
index d4e44b8b09d7..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.4.1.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-GIT v1.5.4.1 Release Notes
-==========================
-
-Fixes since v1.5.4
-------------------
-
- * "git-commit -C $tag" used to work but rewrite in C done in
-   1.5.4 broke it.
-
- * An entry in the .gitattributes file that names a pattern in a
-   subdirectory of the directory it is in did not match
-   correctly (e.g. pattern "b/*.c" in "a/.gitattributes" should
-   match "a/b/foo.c" but it didn't).
-
- * Customized color specification was parsed incorrectly when
-   numeric color values are used.  This was fixed in 1.5.4.1.
-
diff --git a/third_party/git/Documentation/RelNotes/1.5.4.2.txt b/third_party/git/Documentation/RelNotes/1.5.4.2.txt
deleted file mode 100644
index 21d0df59fbb0..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.4.2.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-GIT v1.5.4.2 Release Notes
-==========================
-
-Fixes since v1.5.4
-------------------
-
- * The configuration parser was not prepared to see string
-   valued variables misspelled as boolean and segfaulted.
-
- * Temporary files left behind due to interrupted object
-   transfers were not cleaned up with "git prune".
-
- * "git config --unset" was confused when the unset variables
-   were spelled with continuation lines in the config file.
-
- * The merge message detection in "git cvsimport" did not catch
-   a message that began with "Merge...".
-
- * "git status" suggests "git rm --cached" for unstaging the
-   earlier "git add" before the initial commit.
-
- * "git status" output was incorrect during a partial commit.
-
- * "git bisect" refused to start when the HEAD was detached.
-
- * "git bisect" allowed a wildcard character in the commit
-   message expanded while writing its log file.
-
- * Manual pages were not formatted correctly with docbook xsl
-   1.72; added a workaround.
-
- * "git-commit -C $tag" used to work but rewrite in C done in
-   1.5.4 broke it.  This was fixed in 1.5.4.1.
-
- * An entry in the .gitattributes file that names a pattern in a
-   subdirectory of the directory it is in did not match
-   correctly (e.g. pattern "b/*.c" in "a/.gitattributes" should
-   match "a/b/foo.c" but it didn't).  This was fixed in 1.5.4.1.
-
- * Customized color specification was parsed incorrectly when
-   numeric color values are used.  This was fixed in 1.5.4.1.
-
- * http transport misbehaved when linked with curl-gnutls.
diff --git a/third_party/git/Documentation/RelNotes/1.5.4.3.txt b/third_party/git/Documentation/RelNotes/1.5.4.3.txt
deleted file mode 100644
index b0fc67fb2ade..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.4.3.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-GIT v1.5.4.3 Release Notes
-==========================
-
-Fixes since v1.5.4.2
---------------------
-
- * RPM spec used to pull in everything with 'git'.  This has been
-   changed so that 'git' package contains just the core parts,
-   and we now supply 'git-all' metapackage to slurp in everything.
-   This should match end user's expectation better.
-
- * When some refs failed to update, git-push reported "failure"
-   which was unclear if some other refs were updated or all of
-   them failed atomically (the answer is the former).  Reworded
-   the message to clarify this.
-
- * "git clone" from a repository whose HEAD was misconfigured
-   did not set up the remote properly.  Now it tries to do
-   better.
-
- * Updated git-push documentation to clarify what "matching"
-   means, in order to reduce user confusion.
-
- * Updated git-add documentation to clarify "add -u" operates in
-   the current subdirectory you are in, just like other commands.
-
- * git-gui updates to work on OSX and Windows better.
diff --git a/third_party/git/Documentation/RelNotes/1.5.4.4.txt b/third_party/git/Documentation/RelNotes/1.5.4.4.txt
deleted file mode 100644
index 323c1a88c7fe..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.4.4.txt
+++ /dev/null
@@ -1,66 +0,0 @@
-GIT v1.5.4.4 Release Notes
-==========================
-
-Fixes since v1.5.4.3
---------------------
-
- * Building and installing with an overtight umask such as 077 made
-   installed templates unreadable by others, while the rest of the install
-   are done in a way that is friendly to umask 022.
-
- * "git cvsexportcommit -w $cvsdir" misbehaved when GIT_DIR is set to a
-   relative directory.
-
- * "git http-push" had an invalid memory access that could lead it to
-   segfault.
-
- * When "git rebase -i" gave control back to the user for a commit that is
-   marked to be edited, it just said "modify it with commit --amend",
-   without saying what to do to continue after modifying it.  Give an
-   explicit instruction to run "rebase --continue" to be more helpful.
-
- * "git send-email" in 1.5.4.3 issued a bogus empty In-Reply-To: header.
-
- * "git bisect" showed mysterious "won't bisect on seeked tree" error message.
-   This was leftover from Cogito days to prevent "bisect" starting from a
-   cg-seeked state.  We still keep the Cogito safety, but running "git bisect
-   start" when another bisect was in effect will clean up and start over.
-
- * "git push" with an explicit PATH to receive-pack did not quite work if
-   receive-pack was not on usual PATH.  We earlier fixed the same issue
-   with "git fetch" and upload-pack, but somehow forgot to do so in the
-   other direction.
-
- * git-gui's info dialog was not displayed correctly when the user tries
-   to commit nothing (i.e. without staging anything).
-
- * "git revert" did not properly fail when attempting to run with a
-   dirty index.
-
- * "git merge --no-commit --no-ff <other>" incorrectly made commits.
-
- * "git merge --squash --no-ff <other>", which is a nonsense combination
-   of options, was not rejected.
-
- * "git ls-remote" and "git remote show" against an empty repository
-   failed, instead of just giving an empty result (regression).
-
- * "git fast-import" did not handle a renamed path whose name needs to be
-   quoted, due to a bug in unquote_c_style() function.
-
- * "git cvsexportcommit" was confused when multiple files with the same
-   basename needed to be pushed out in the same commit.
-
- * "git daemon" did not send early errors to syslog.
-
- * "git log --merge" did not work well with --left-right option.
-
- * "git svn" prompted for client cert password every time it accessed the
-   server.
-
- * The reset command in "git fast-import" data stream was documented to
-   end with an optional LF, but it actually required one.
-
- * "git svn dcommit/rebase" did not honor --rewrite-root option.
-
-Also included are a handful documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.5.4.5.txt b/third_party/git/Documentation/RelNotes/1.5.4.5.txt
deleted file mode 100644
index bbd130e36d41..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.4.5.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-GIT v1.5.4.5 Release Notes
-==========================
-
-Fixes since v1.5.4.4
---------------------
-
- * "git fetch there" when the URL information came from the Cogito style
-   branches/there file did not update refs/heads/there (regression in
-   1.5.4).
-
- * Bogus refspec configuration such as "remote.there.fetch = =" were not
-   detected as errors (regression in 1.5.4).
-
- * You couldn't specify a custom editor whose path contains a whitespace
-   via GIT_EDITOR (and core.editor).
-
- * The subdirectory filter to "git filter-branch" mishandled a history
-   where the subdirectory becomes empty and then later becomes non-empty.
-
- * "git shortlog" gave an empty line if the original commit message was
-   malformed (e.g. a botched import from foreign SCM).  Now it finds the
-   first non-empty line and uses it for better information.
-
- * When the user fails to give a revision parameter to "git svn", an error
-   from the Perl interpreter was issued because the script lacked proper
-   error checking.
-
- * After "git rebase" stopped due to conflicts, if the user played with
-   "git reset" and friends, "git rebase --abort" failed to go back to the
-   correct commit.
-
- * Additional work trees prepared with git-new-workdir (in contrib/) did
-   not share git-svn metadata directory .git/svn with the original.
-
- * "git-merge-recursive" did not mark addition of the same path with
-   different filemodes correctly as a conflict.
-
- * "gitweb" gave malformed URL when pathinfo stype paths are in use.
-
- * "-n" stands for "--no-tags" again for "git fetch".
-
- * "git format-patch" did not detect the need to add 8-bit MIME header
-   when the user used format.header configuration.
-
- * "rev~" revision specifier used to mean "rev", which was inconsistent
-   with how "rev^" worked.  Now "rev~" is the same as "rev~1" (hence it
-   also is the same as "rev^1"), and "rev~0" is the same as "rev^0"
-   (i.e. it has to be a commit).
-
- * "git quiltimport" did not grok empty lines, lines in "file -pNNN"
-   format to specify the prefix levels and lines with trailing comments.
-
- * "git rebase -m" triggered pre-commit verification, which made
-   "rebase --continue" impossible.
-
-As usual, it also comes with many documentation fixes and clarifications.
diff --git a/third_party/git/Documentation/RelNotes/1.5.4.6.txt b/third_party/git/Documentation/RelNotes/1.5.4.6.txt
deleted file mode 100644
index 3e3c3e55a31f..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.4.6.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-GIT v1.5.4.6 Release Notes
-==========================
-
-I personally do not think there is any reason anybody should want to
-run v1.5.4.X series these days, because 'master' version is always
-more stable than any tagged released version of git.
-
-This is primarily to futureproof "git-shell" to accept requests
-without a dash between "git" and subcommand name (e.g. "git
-upload-pack") which the newer client will start to make sometime in
-the future.
-
-Fixes since v1.5.4.5
---------------------
-
- * Command line option "-n" to "git-repack" was not correctly parsed.
-
- * Error messages from "git-apply" when the patchfile cannot be opened
-   have been improved.
-
- * Error messages from "git-bisect" when given nonsense revisions have
-   been improved.
-
- * reflog syntax that uses time e.g. "HEAD@{10 seconds ago}:path" did not
-   stop parsing at the closing "}".
-
- * "git rev-parse --symbolic-full-name ^master^2" printed solitary "^",
-   but it should print nothing.
-
- * "git apply" did not enforce "match at the beginning" correctly.
-
- * a path specification "a/b" in .gitattributes file should not match
-   "sub/a/b", but it did.
-
- * "git log --date-order --topo-order" did not override the earlier
-   date-order with topo-order as expected.
-
- * "git fast-export" did not export octopus merges correctly.
-
- * "git archive --prefix=$path/" mishandled gitattributes.
-
-As usual, it also comes with many documentation fixes and clarifications.
-
diff --git a/third_party/git/Documentation/RelNotes/1.5.4.7.txt b/third_party/git/Documentation/RelNotes/1.5.4.7.txt
deleted file mode 100644
index 9065a0e27346..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.4.7.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-GIT v1.5.4.7 Release Notes
-==========================
-
-Fixes since 1.5.4.7
--------------------
-
- * Removed support for an obsolete gitweb request URI, whose
-   implementation ran "git diff" Porcelain, instead of using plumbing,
-   which would have run an external diff command specified in the
-   repository configuration as the gitweb user.
diff --git a/third_party/git/Documentation/RelNotes/1.5.4.txt b/third_party/git/Documentation/RelNotes/1.5.4.txt
deleted file mode 100644
index f1323b61746e..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.4.txt
+++ /dev/null
@@ -1,377 +0,0 @@
-GIT v1.5.4 Release Notes
-========================
-
-Removal
--------
-
- * "git svnimport" was removed in favor of "git svn".  It is still there
-   in the source tree (contrib/examples) but unsupported.
-
- * As git-commit and git-status have been rewritten, "git runstatus"
-   helper script lost all its users and has been removed.
-
-
-Temporarily disabled
---------------------
-
- * "git http-push" is known not to work well with cURL library older
-   than 7.16, and we had reports of repository corruption.  It is
-   disabled on such platforms for now.  Unfortunately, 1.5.3.8 shares
-   the same issue.  In other words, this does not mean you will be
-   fine if you stick to an older git release.  For now, please do not
-   use http-push from older git with cURL older than 7.16 if you
-   value your data. A proper fix will hopefully materialize in
-   later versions.
-
-
-Deprecation notices
--------------------
-
- * From v1.6.0, git will by default install dashed form of commands
-   (e.g. "git-commit") outside of users' normal $PATH, and will install
-   only selected commands ("git" itself, and "gitk") in $PATH.  This
-   implies:
-
-   - Using dashed forms of git commands (e.g. "git-commit") from the
-     command line has been informally deprecated since early 2006, but
-     now it officially is, and will be removed in the future.  Use
-     dash-less forms (e.g. "git commit") instead.
-
-   - Using dashed forms from your scripts, without first prepending the
-     return value from "git --exec-path" to the scripts' PATH, has been
-     informally deprecated since early 2006, but now it officially is.
-
-   - Use of dashed forms with "PATH=$(git --exec-path):$PATH; export
-     PATH" early in your script is not deprecated with this change.
-
-   Users are strongly encouraged to adjust their habits and scripts now
-   to prepare for this change.
-
- * The post-receive hook was introduced in March 2007 to supersede
-   the post-update hook, primarily to overcome the command line length
-   limitation of the latter.  Use of post-update hook will be deprecated
-   in future versions of git, starting from v1.6.0.
-
- * "git lost-found" was deprecated in favor of "git fsck"'s --lost-found
-   option, and will be removed in the future.
-
- * "git peek-remote" is deprecated, as "git ls-remote" was written in C
-   and works for all transports; "git peek-remote" will be removed in
-   the future.
-
- * "git repo-config" which was an old name for "git config" command
-   has been supported without being advertised for a long time.  The
-   next feature release will remove it.
-
- * From v1.6.0, the repack.usedeltabaseoffset config option will default
-   to true, which will give denser packfiles (i.e. more efficient storage).
-   The downside is that git older than version 1.4.4 will not be able
-   to directly use a repository packed using this setting.
-
- * From v1.6.0, the pack.indexversion config option will default to 2,
-   which is slightly more efficient, and makes repacking more immune to
-   data corruptions.  Git older than version 1.5.2 may revert to version 1
-   of the pack index with a manual "git index-pack" to be able to directly
-   access corresponding pack files.
-
-
-Updates since v1.5.3
---------------------
-
- * Comes with much improved gitk, with i18n.
-
- * Comes with git-gui 0.9.2 with i18n.
-
- * gitk is now merged as a subdirectory of git.git project, in
-   preparation for its i18n.
-
- * progress displays from many commands are a lot nicer to the eye.
-   Transfer commands show throughput data.
-
- * many commands that pay attention to per-directory .gitignore now do
-   so lazily, which makes the usual case go much faster.
-
- * Output processing for '--pretty=format:<user format>' has been
-   optimized.
-
- * Rename detection of diff family while detecting exact matches has
-   been greatly optimized.
-
- * Rename detection of diff family tries to make more natural looking
-   pairing.  Earlier, if multiple identical rename sources were
-   found in the preimage, the source used was picked pretty much at random.
-
- * Value "true" for color.diff and color.status configuration used to
-   mean "always" (even when the output is not going to a terminal).
-   This has been corrected to mean the same thing as "auto".
-
- * "git diff" Porcelain now respects diff.external configuration, which
-   is another way to specify GIT_EXTERNAL_DIFF.
-
- * "git diff" can be told to use different prefixes other than
-   "a/" and "b/" e.g. "git diff --src-prefix=l/ --dst-prefix=k/".
-
- * "git diff" sometimes did not quote paths with funny
-   characters properly.
-
- * "git log" (and any revision traversal commands) misbehaved
-   when --diff-filter is given but was not asked to actually
-   produce diff.
-
- * HTTP proxy can be specified per remote repository using
-   remote.*.httpproxy configuration, or global http.proxy configuration
-   variable.
-
- * Various Perforce importer updates.
-
- * Example update and post-receive hooks have been improved.
-
- * Any command that wants to take a commit object name can now use
-   ":/string" syntax to name a commit.
-
- * "git reset" is now built-in and its output can be squelched with -q.
-
- * "git reset --hard" does not make any sense in a bare
-   repository, but did not error out; fixed.
-
- * "git send-email" can optionally talk over ssmtp and use SMTP-AUTH.
-
- * "git rebase" learned --whitespace option.
-
- * In "git rebase", when you decide not to replay a particular change
-   after the command stopped with a conflict, you can say "git rebase
-   --skip" without first running "git reset --hard", as the command now
-   runs it for you.
-
- * "git rebase --interactive" mode can now work on detached HEAD.
-
- * Other minor to serious bugs in "git rebase -i" have been fixed.
-
- * "git rebase" now detaches head during its operation, so after a
-   successful "git rebase" operation, the reflog entry branch@{1} for
-   the current branch points at the commit before the rebase was
-   started.
-
- * "git rebase -i" also triggers rerere to help your repeated merges.
-
- * "git merge" can call the "post-merge" hook.
-
- * "git pack-objects" can optionally run deltification with multiple
-   threads.
-
- * "git archive" can optionally substitute keywords in files marked with
-   export-subst attribute.
-
- * "git cherry-pick" made a misguided attempt to repeat the original
-   command line in the generated log message, when told to cherry-pick a
-   commit by naming a tag that points at it.  It does not anymore.
-
- * "git for-each-ref" learned %(xxxdate:<date-format>) syntax to show the
-   various date fields in different formats.
-
- * "git gc --auto" is a low-impact way to automatically run a variant of
-   "git repack" that does not lose unreferenced objects (read: safer
-   than the usual one) after the user accumulates too many loose
-   objects.
-
- * "git clean" has been rewritten in C.
-
- * You need to explicitly set clean.requireForce to "false" to allow
-   "git clean" without -f to do any damage (lack of the configuration
-   variable used to mean "do not require -f option to lose untracked
-   files", but we now use the safer default).
-
- * The kinds of whitespace errors "git diff" and "git apply" notice (and
-   fix) can be controlled via 'core.whitespace' configuration variable
-   and 'whitespace' attribute in .gitattributes file.
-
- * "git push" learned --dry-run option to show what would happen if a
-   push is run.
-
- * "git push" does not update a tracking ref on the local side when the
-   remote refused to update the corresponding ref.
-
- * "git push" learned --mirror option.  This is to push the local refs
-   one-to-one to the remote, and deletes refs from the remote that do
-   not exist anymore in the repository on the pushing side.
-
- * "git push" can remove a corrupt ref at the remote site with the usual
-   ":ref" refspec.
-
- * "git remote" knows --mirror mode.  This is to set up configuration to
-   push into a remote repository to store local branch heads to the same
-   branch on the remote side, and remove branch heads locally removed
-   from local repository at the same time.  Suitable for pushing into a
-   back-up repository.
-
- * "git remote" learned "rm" subcommand.
-
- * "git cvsserver" can be run via "git shell".  Also, "cvs" is
-   recognized as a synonym for "git cvsserver", so that CVS users
-   can be switched to git just by changing their login shell.
-
- * "git cvsserver" acts more like receive-pack by running post-receive
-   and post-update hooks.
-
- * "git am" and "git rebase" are far less verbose.
-
- * "git pull" learned to pass --[no-]ff option to underlying "git
-   merge".
-
- * "git pull --rebase" is a different way to integrate what you fetched
-   into your current branch.
-
- * "git fast-export" produces data-stream that can be fed to fast-import
-   to reproduce the history recorded in a git repository.
-
- * "git add -i" takes pathspecs to limit the set of files to work on.
-
- * "git add -p" is a short-hand to go directly to the selective patch
-   subcommand in the interactive command loop and to exit when done.
-
- * "git add -i" UI has been colorized.  The interactive prompt
-   and menu can be colored by setting color.interactive
-   configuration.  The diff output (including the hunk picker)
-   are colored with color.diff configuration.
-
- * "git commit --allow-empty" allows you to create a single-parent
-   commit that records the same tree as its parent, overriding the usual
-   safety valve.
-
- * "git commit --amend" can amend a merge that does not change the tree
-   from its first parent.
-
- * "git commit" used to unconditionally strip comment lines that
-   began with '#' and removed excess blank lines.  This behavior has
-   been made configurable.
-
- * "git commit" has been rewritten in C.
-
- * "git stash random-text" does not create a new stash anymore.  It was
-   a UI mistake.  Use "git stash save random-text", or "git stash"
-   (without extra args) for that.
-
- * "git stash clear extra-text" does not clear the whole stash
-   anymore.  It is tempting to expect "git stash clear stash@{2}"
-   to drop only a single named stash entry, and it is rude to
-   discard everything when that is asked (but not provided).
-
- * "git prune --expire <time>" can exempt young loose objects from
-   getting pruned.
-
- * "git branch --contains <commit>" can list branches that are
-   descendants of a given commit.
-
- * "git log" learned --early-output option to help interactive GUI
-   implementations.
-
- * "git bisect" learned "skip" action to mark untestable commits.
-
- * "git bisect visualize" learned a shorter synonym "git bisect view".
-
- * "git bisect visualize" runs "git log" in a non-windowed
-   environments.  It also can be told what command to run (e.g. "git
-   bisect visualize tig").
-
- * "git format-patch" learned "format.numbered" configuration variable
-   to automatically turn --numbered option on when more than one commits
-   are formatted.
-
- * "git ls-files" learned "--exclude-standard" to use the canned set of
-   exclude files.
-
- * "git tag -a -f existing" begins the editor session using the existing
-   annotation message.
-
- * "git tag -m one -m bar" (multiple -m options) behaves similarly to
-   "git commit"; the parameters to -m options are formatted as separate
-   paragraphs.
-
- * The format "git show" outputs an annotated tag has been updated to
-   include "Tagger: " and "Date: " lines from the tag itself.  Strictly
-   speaking this is a backward incompatible change, but this is a
-   reasonable usability fix and people's scripts shouldn't have been
-   relying on the exact output from "git show" Porcelain anyway.
-
- * "git cvsimport" did not notice errors from underlying "cvsps"
-   and produced a corrupt import silently.
-
- * "git cvsexportcommit" learned -w option to specify and switch to the
-   CVS working directory.
-
- * "git checkout" from a subdirectory learned to use "../path" to allow
-   checking out a path outside the current directory without cd'ing up.
-
- * "git checkout" from and to detached HEAD leaves a bit more
-   information in the reflog.
-
- * "git send-email --dry-run" shows full headers for easier diagnosis.
-
- * "git merge-ours" is now built-in.
-
- * "git svn" learned "info" and "show-externals" subcommands.
-
- * "git svn" run from a subdirectory failed to read settings from the
-   .git/config.
-
- * "git svn" learned --use-log-author option, which picks up more
-   descriptive name from From: and Signed-off-by: lines in the commit
-   message.
-
- * "git svn" wasted way too much disk to record revision mappings
-   between svn and git; a new representation that is much more compact
-   for this information has been introduced to correct this.
-
- * "git svn" left temporary index files it used without cleaning them
-   up; this was corrected.
-
- * "git status" from a subdirectory now shows relative paths, which
-   makes copy-and-pasting for git-checkout/git-add/git-rm easier.  The
-   traditional behavior to show the full path relative to the top of
-   the work tree can be had by setting status.relativepaths
-   configuration variable to false.
-
- * "git blame" kept text for each annotated revision in core needlessly;
-   this has been corrected.
-
- * "git shortlog" learned to default to HEAD when the standard input is
-   a terminal and the user did not give any revision parameter.
-
- * "git shortlog" learned "-e" option to show e-mail addresses as well as
-   authors' names.
-
- * "git help" learned "-w" option to show documentation in browsers.
-
- * In addition there are quite a few internal clean-ups. Notably:
-
-   - many fork/exec have been replaced with run-command API,
-     brought from the msysgit effort.
-
-   - introduction and more use of the option parser API.
-
-   - enhancement and more use of the strbuf API.
-
- * Makefile tweaks to support HP-UX is in.
-
-Fixes since v1.5.3
-------------------
-
-All of the fixes in v1.5.3 maintenance series are included in
-this release, unless otherwise noted.
-
-These fixes are only in v1.5.4 and not backported to v1.5.3 maintenance
-series.
-
- * The way "git diff --check" behaves is much more consistent with the way
-   "git apply --whitespace=warn" works.
-
- * "git svn" talking with the SVN over HTTP will correctly quote branch
-   and project names.
-
- * "git config" did not work correctly on platforms that define
-   REG_NOMATCH to an even number.
-
- * Recent versions of AsciiDoc 8 has a change to break our
-   documentation; a workaround has been implemented.
-
- * "git diff --color-words" colored context lines in a wrong color.
diff --git a/third_party/git/Documentation/RelNotes/1.5.5.1.txt b/third_party/git/Documentation/RelNotes/1.5.5.1.txt
deleted file mode 100644
index 7de419708f77..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.5.1.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-GIT v1.5.5.1 Release Notes
-==========================
-
-Fixes since v1.5.5
-------------------
-
- * "git archive --prefix=$path/" mishandled gitattributes.
-
- * "git fetch -v" that fetches into FETCH_HEAD did not report the summary
-   the same way as done for updating the tracking refs.
-
- * "git svn" misbehaved when the configuration file customized the "git
-   log" output format using format.pretty.
-
- * "git submodule status" leaked an unnecessary error message.
-
- * "git log --date-order --topo-order" did not override the earlier
-   date-order with topo-order as expected.
-
- * "git bisect good $this" did not check the validity of the revision
-   given properly.
-
- * "url.<there>.insteadOf" did not work correctly.
-
- * "git clean" ran inside subdirectory behaved as if the directory was
-   explicitly specified for removal by the end user from the top level.
-
- * "git bisect" from a detached head leaked an unnecessary error message.
-
- * "git bisect good $a $b" when $a is Ok but $b is bogus should have
-   atomically failed before marking $a as good.
-
- * "git fmt-merge-msg" did not clean up leading empty lines from commit
-   log messages like "git log" family does.
-
- * "git am" recorded a commit with empty Subject: line without
-   complaining.
-
- * when given a commit log message whose first paragraph consists of
-   multiple lines, "git rebase" squashed it into a single line.
-
- * "git remote add $bogus_name $url" did not complain properly.
-
-Also comes with various documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.5.5.2.txt b/third_party/git/Documentation/RelNotes/1.5.5.2.txt
deleted file mode 100644
index 391a7b02eaf3..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.5.2.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-GIT v1.5.5.2 Release Notes
-==========================
-
-Fixes since v1.5.5.1
---------------------
-
- * "git repack -n" was mistakenly made no-op earlier.
-
- * "git imap-send" wanted to always have imap.host even when use of
-   imap.tunnel made it unnecessary.
-
- * reflog syntax that uses time e.g. "HEAD@{10 seconds ago}:path" did not
-   stop parsing at the closing "}".
-
- * "git rev-parse --symbolic-full-name ^master^2" printed solitary "^",
-   but it should print nothing.
-
- * "git commit" did not detect when it failed to write tree objects.
-
- * "git fetch" sometimes transferred too many objects unnecessarily.
-
- * a path specification "a/b" in .gitattributes file should not match
-   "sub/a/b".
-
- * various gitweb fixes.
-
-Also comes with various documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.5.5.3.txt b/third_party/git/Documentation/RelNotes/1.5.5.3.txt
deleted file mode 100644
index f22f98b734f8..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.5.3.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-GIT v1.5.5.3 Release Notes
-==========================
-
-Fixes since v1.5.5.2
---------------------
-
- * "git send-email --compose" did not notice that non-ascii contents
-   needed some MIME magic.
-
- * "git fast-export" did not export octopus merges correctly.
-
-Also comes with various documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.5.5.4.txt b/third_party/git/Documentation/RelNotes/1.5.5.4.txt
deleted file mode 100644
index 2d0279ecce62..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.5.4.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-GIT v1.5.5.4 Release Notes
-==========================
-
-Fixes since v1.5.5.4
---------------------
-
- * "git name-rev --all" used to segfault.
diff --git a/third_party/git/Documentation/RelNotes/1.5.5.5.txt b/third_party/git/Documentation/RelNotes/1.5.5.5.txt
deleted file mode 100644
index 30fa3615c77d..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.5.5.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-GIT v1.5.5.5 Release Notes
-==========================
-
-I personally do not think there is any reason anybody should want to
-run v1.5.5.X series these days, because 'master' version is always
-more stable than any tagged released version of git.
-
-This is primarily to futureproof "git-shell" to accept requests
-without a dash between "git" and subcommand name (e.g. "git
-upload-pack") which the newer client will start to make sometime in
-the future.
diff --git a/third_party/git/Documentation/RelNotes/1.5.5.6.txt b/third_party/git/Documentation/RelNotes/1.5.5.6.txt
deleted file mode 100644
index d5e85cb70ebe..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.5.6.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-GIT v1.5.5.6 Release Notes
-==========================
-
-Fixes since 1.5.5.5
--------------------
-
- * Removed support for an obsolete gitweb request URI, whose
-   implementation ran "git diff" Porcelain, instead of using plumbing,
-   which would have run an external diff command specified in the
-   repository configuration as the gitweb user.
diff --git a/third_party/git/Documentation/RelNotes/1.5.5.txt b/third_party/git/Documentation/RelNotes/1.5.5.txt
deleted file mode 100644
index 29322124881b..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.5.txt
+++ /dev/null
@@ -1,207 +0,0 @@
-GIT v1.5.5 Release Notes
-========================
-
-Updates since v1.5.4
---------------------
-
-(subsystems)
-
- * Comes with git-gui 0.10.1
-
-(portability)
-
- * We shouldn't ask for BSD group ownership semantics by setting g+s bit
-   on directories on older BSD systems that refuses chmod() by non root
-   users.  BSD semantics is the default there anyway.
-
- * Bunch of portability improvement patches coming from an effort to port
-   to Solaris has been applied.
-
-(performance)
-
- * On platforms with suboptimal qsort(3) implementation, there
-   is an option to use more reasonable substitute we ship with
-   our software.
-
- * New configuration variable "pack.packsizelimit" can be used
-   in place of command line option --max-pack-size.
-
- * "git fetch" over the native git protocol used to make a
-   connection to find out the set of current remote refs and
-   another to actually download the pack data.  We now use only
-   one connection for these tasks.
-
- * "git commit" does not run lstat(2) more than necessary
-   anymore.
-
-(usability, bells and whistles)
-
- * Bash completion script (in contrib) are aware of more commands and
-   options.
-
- * You can be warned when core.autocrlf conversion is applied in
-   such a way that results in an irreversible conversion.
-
- * A catch-all "color.ui" configuration variable can be used to
-   enable coloring of all color-capable commands, instead of
-   individual ones such as "color.status" and "color.branch".
-
- * The commands refused to take absolute pathnames where they
-   require pathnames relative to the work tree or the current
-   subdirectory.  They now can take absolute pathnames in such a
-   case as long as the pathnames do not refer outside of the
-   work tree.  E.g. "git add $(pwd)/foo" now works.
-
- * Error messages used to be sent to stderr, only to get hidden,
-   when $PAGER was in use.  They now are sent to stdout along
-   with the command output to be shown in the $PAGER.
-
- * A pattern "foo/" in .gitignore file now matches a directory
-   "foo".  Pattern "foo" also matches as before.
-
- * bash completion's prompt helper function can talk about
-   operation in-progress (e.g. merge, rebase, etc.).
-
- * Configuration variables "url.<usethis>.insteadof = <otherurl>" can be
-   used to tell "git-fetch" and "git-push" to use different URL than what
-   is given from the command line.
-
- * "git add -i" behaves better even before you make an initial commit.
-
- * "git am" refused to run from a subdirectory without a good reason.
-
- * After "git apply --whitespace=fix" fixes whitespace errors in a patch,
-   a line before the fix can appear as a context or preimage line in a
-   later patch, causing the patch not to apply.  The command now knows to
-   see through whitespace fixes done to context lines to successfully
-   apply such a patch series.
-
- * "git branch" (and "git checkout -b") to branch from a local branch can
-   optionally set "branch.<name>.merge" to mark the new branch to build on
-   the other local branch, when "branch.autosetupmerge" is set to
-   "always", or when passing the command line option "--track" (this option
-   was ignored when branching from local branches).  By default, this does
-   not happen when branching from a local branch.
-
- * "git checkout" to switch to a branch that has "branch.<name>.merge" set
-   (i.e. marked to build on another branch) reports how much the branch
-   and the other branch diverged.
-
- * When "git checkout" has to update a lot of paths, it used to be silent
-   for 4 seconds before it showed any progress report.  It is now a bit
-   more impatient and starts showing progress report early.
-
- * "git commit" learned a new hook "prepare-commit-msg" that can
-   inspect what is going to be committed and prepare the commit
-   log message template to be edited.
-
- * "git cvsimport" can now take more than one -M options.
-
- * "git describe" learned to limit the tags to be used for
-   naming with --match option.
-
- * "git describe --contains" now barfs when the named commit
-   cannot be described.
-
- * "git describe --exact-match" describes only commits that are tagged.
-
- * "git describe --long" describes a tagged commit as $tag-0-$sha1,
-   instead of just showing the exact tagname.
-
- * "git describe" warns when using a tag whose name and path contradict
-   with each other.
-
- * "git diff" learned "--relative" option to limit and output paths
-   relative to the current directory when working in a subdirectory.
-
- * "git diff" learned "--dirstat" option to show birds-eye-summary of
-   changes more concisely than "--diffstat".
-
- * "git format-patch" learned --cover-letter option to generate a cover
-   letter template.
-
- * "git gc" learned --quiet option.
-
- * "git gc" now automatically prunes unreachable objects that are two
-   weeks old or older.
-
- * "git gc --auto" can be disabled more easily by just setting gc.auto
-   to zero.  It also tolerates more packfiles by default.
-
- * "git grep" now knows "--name-only" is a synonym for the "-l" option.
-
- * "git help <alias>" now reports "'git <alias>' is alias to <what>",
-   instead of saying "No manual entry for git-<alias>".
-
- * "git help" can use different backends to show manual pages and this can
-   be configured using "man.viewer" configuration.
-
- * "gitk" does not restore window position from $HOME/.gitk anymore (it
-   still restores the size).
-
- * "git log --grep=<what>" learned "--fixed-strings" option to look for
-   <what> without treating it as a regular expression.
-
- * "git gui" learned an auto-spell checking.
-
- * "git push <somewhere> HEAD" and "git push <somewhere> +HEAD" works as
-   expected; they push the current branch (and only the current branch).
-   In addition, HEAD can be written as the value of "remote.<there>.push"
-   configuration variable.
-
- * When the configuration variable "pack.threads" is set to 0, "git
-   repack" auto detects the number of CPUs and uses that many threads.
-
- * "git send-email" learned to prompt for passwords
-   interactively.
-
- * "git send-email" learned an easier way to suppress CC
-   recipients.
-
- * "git stash" learned "pop" command, that applies the latest stash and
-   removes it from the stash, and "drop" command to discard the named
-   stash entry.
-
- * "git submodule" learned a new subcommand "summary" to show the
-   symmetric difference between the HEAD version and the work tree version
-   of the submodule commits.
-
- * Various "git cvsimport", "git cvsexportcommit", "git cvsserver",
-   "git svn" and "git p4" improvements.
-
-(internal)
-
- * Duplicated code between git-help and git-instaweb that
-   launches user's preferred browser has been refactored.
-
- * It is now easier to write test scripts that records known
-   breakages.
-
- * "git checkout" is rewritten in C.
-
- * "git remote" is rewritten in C.
-
- * Two conflict hunks that are separated by a very short span of common
-   lines are now coalesced into one larger hunk, to make the result easier
-   to read.
-
- * Run-command API's use of file descriptors is documented clearer and
-   is more consistent now.
-
- * diff output can be sent to FILE * that is different from stdout.  This
-   will help reimplementing more things in C.
-
-Fixes since v1.5.4
-------------------
-
-All of the fixes in v1.5.4 maintenance series are included in
-this release, unless otherwise noted.
-
- * "git-http-push" did not allow deletion of remote ref with the usual
-   "push <remote> :<branch>" syntax.
-
- * "git-rebase --abort" did not go back to the right location if
-   "git-reset" was run during the "git-rebase" session.
-
- * "git imap-send" without setting imap.host did not error out but
-   segfaulted.
diff --git a/third_party/git/Documentation/RelNotes/1.5.6.1.txt b/third_party/git/Documentation/RelNotes/1.5.6.1.txt
deleted file mode 100644
index 4864b16445f3..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.6.1.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-GIT v1.5.6.1 Release Notes
-==========================
-
-Fixes since v1.5.6
-------------------
-
-* Last minute change broke loose object creation on AIX.
-
-* (performance fix) We used to make $GIT_DIR absolute path early in the
-  programs but keeping it relative to the current directory internally
-  gives 1-3 per-cent performance boost.
-
-* bash completion knows the new --graph option to git-log family.
-
-
-* git-diff -c/--cc showed unnecessary "deletion" lines at the context
-  boundary.
-
-* git-for-each-ref ignored %(object) and %(type) requests for tag
-  objects.
-
-* git-merge usage had a typo.
-
-* Rebuilding of git-svn metainfo database did not take rewriteRoot
-  option into account.
-
-* Running "git-rebase --continue/--skip/--abort" before starting a
-  rebase gave nonsense error messages.
diff --git a/third_party/git/Documentation/RelNotes/1.5.6.2.txt b/third_party/git/Documentation/RelNotes/1.5.6.2.txt
deleted file mode 100644
index 5902a85a7861..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.6.2.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-GIT v1.5.6.2 Release Notes
-==========================
-
-Futureproof
------------
-
- * "git-shell" accepts requests without a dash between "git" and
-   subcommand name (e.g. "git upload-pack") which the newer client will
-   start to make sometime in the future.
-
-Fixes since v1.5.6.1
---------------------
-
-* "git clone" from a remote that is named with url.insteadOf setting in
-  $HOME/.gitconfig did not work well.
-
-* "git describe --long --tags" segfaulted when the described revision was
-  tagged with a lightweight tag.
-
-* "git diff --check" did not report the result via its exit status
-  reliably.
-
-* When remote side used to have branch 'foo' and git-fetch finds that now
-  it has branch 'foo/bar', it refuses to lose the existing remote tracking
-  branch and its reflog.  The error message has been improved to suggest
-  pruning the remote if the user wants to proceed and get the latest set
-  of branches from the remote, including such 'foo/bar'.
-
-* "git reset file" should mean the same thing as "git reset HEAD file",
-  but we required disambiguating -- even when "file" is not ambiguous.
-
-* "git show" segfaulted when an annotated tag that points at another
-  annotated tag was given to it.
-
-* Optimization for a large import via "git-svn" introduced in v1.5.6 had a
-  serious memory and temporary file leak, which made it unusable for
-  moderately large import.
-
-* "git-svn" mangled remote nickname used in the configuration file
-  unnecessarily.
diff --git a/third_party/git/Documentation/RelNotes/1.5.6.3.txt b/third_party/git/Documentation/RelNotes/1.5.6.3.txt
deleted file mode 100644
index f61dd3504afb..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.6.3.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-GIT v1.5.6.3 Release Notes
-==========================
-
-Fixes since v1.5.6.2
---------------------
-
-* Setting core.sharedrepository to traditional "true" value was supposed to make
-  the repository group writable but should not affect permission for others.
-  However, since 1.5.6, it was broken to drop permission for others when umask is
-  022, making the repository unreadable by others.
-
-* Setting GIT_TRACE will report spawning of external process via run_command().
-
-* Using an object with very deep delta chain pinned memory needed for extracting
-  intermediate base objects unnecessarily long, leading to excess memory usage.
-
-* Bash completion script did not notice '--' marker on the command
-  line and tried the relatively slow "ref completion" even when
-  completing arguments after one.
-
-* Registering a non-empty blob racily and then truncating the working
-  tree file for it confused "racy-git avoidance" logic into thinking
-  that the path is now unchanged.
-
-* The section that describes attributes related to git-archive were placed
-  in a wrong place in the gitattributes(5) manual page.
-
-* "git am" was not helpful to the users when it detected that the committer
-  information is not set up properly yet.
-
-* "git clone" had a leftover debugging fprintf().
-
-* "git clone -q" was not quiet enough as it used to and gave object count
-  and progress reports.
-
-* "git clone" marked downloaded packfile with .keep; this could be a
-  good thing if the remote side is well packed but otherwise not,
-  especially for a project that is not really big.
-
-* "git daemon" used to call syslog() from a signal handler, which
-  could raise signals of its own but generally is not reentrant.  This
-  was fixed by restructuring the code to report syslog() after the handler
-  returns.
-
-* When "git push" tries to remove a remote ref, and corresponding
-  tracking ref is missing, we used to report error (i.e. failure to
-  remove something that does not exist).
-
-* "git mailinfo" (hence "git am") did not handle commit log messages in a
-  MIME multipart mail correctly.
-
-Contains other various documentation fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.5.6.4.txt b/third_party/git/Documentation/RelNotes/1.5.6.4.txt
deleted file mode 100644
index d8968f1ecbd9..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.6.4.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-GIT v1.5.6.4 Release Notes
-==========================
-
-Fixes since v1.5.6.3
---------------------
-
-* Various commands could overflow its internal buffer on a platform
-  with small PATH_MAX value in a repository that has contents with
-  long pathnames.
-
-* There wasn't a way to make --pretty=format:%<> specifiers to honor
-  .mailmap name rewriting for authors and committers.  Now you can with
-  %aN and %cN.
-
-* Bash completion wasted too many cycles; this has been optimized to be
-  usable again.
-
-* Bash completion lost ref part when completing something like "git show
-  pu:Makefile".
-
-* "git-cvsserver" did not clean up its temporary working area after annotate
-  request.
-
-* "git-daemon" called syslog() from its signal handler, which was a
-  no-no.
-
-* "git-fetch" into an empty repository used to remind that the fetch will
-   be huge by saying "no common commits", but this was an unnecessary
-   noise; it is already known by the user anyway.
-
-* "git-http-fetch" would have segfaulted when pack idx file retrieved
-  from the other side was corrupt.
-
-* "git-index-pack" used too much memory when dealing with a deep delta chain.
-
-* "git-mailinfo" (hence "git-am") did not correctly handle in-body [PATCH]
-  line to override the commit title taken from the mail Subject header.
-
-* "git-rebase -i -p" lost parents that are not involved in the history
-  being rewritten.
-
-* "git-rm" lost track of where the index file was when GIT_DIR was
-  specified as a relative path.
-
-* "git-rev-list --quiet" was not quiet as advertised.
-
-Contains other various documentation fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.5.6.5.txt b/third_party/git/Documentation/RelNotes/1.5.6.5.txt
deleted file mode 100644
index 47ca1724620f..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.6.5.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-GIT v1.5.6.5 Release Notes
-==========================
-
-Fixes since v1.5.6.4
---------------------
-
-* "git cvsimport" used to spit out "UNKNOWN LINE..." diagnostics to stdout.
-
-* "git commit -F filename" and "git tag -F filename" run from subdirectories
-  did not read the right file.
-
-* "git init --template=" with blank "template" parameter linked files
-  under root directories to .git, which was a total nonsense.  Instead, it
-  means "I do not want to use anything from the template directory".
-
-* "git diff-tree" and other diff plumbing ignored diff.renamelimit configuration
-  variable when the user explicitly asked for rename detection.
-
-* "git name-rev --name-only" did not work when "--stdin" option was in effect.
-
-* "git show-branch" mishandled its 8th branch.
-
-* Addition of "git update-index --ignore-submodules" that happened during
-  1.5.6 cycle broke "git update-index --ignore-missing".
-
-* "git send-email" did not parse charset from an existing Content-type:
-  header properly.
-
-Contains other various documentation fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.5.6.6.txt b/third_party/git/Documentation/RelNotes/1.5.6.6.txt
deleted file mode 100644
index 79da23db5ac6..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.6.6.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-GIT v1.5.6.6 Release Notes
-==========================
-
-Fixes since 1.5.6.5
--------------------
-
- * Removed support for an obsolete gitweb request URI, whose
-   implementation ran "git diff" Porcelain, instead of using plumbing,
-   which would have run an external diff command specified in the
-   repository configuration as the gitweb user.
diff --git a/third_party/git/Documentation/RelNotes/1.5.6.txt b/third_party/git/Documentation/RelNotes/1.5.6.txt
deleted file mode 100644
index e143d8d61be1..000000000000
--- a/third_party/git/Documentation/RelNotes/1.5.6.txt
+++ /dev/null
@@ -1,115 +0,0 @@
-GIT v1.5.6 Release Notes
-========================
-
-Updates since v1.5.5
---------------------
-
-(subsystems)
-
-* Comes with updated gitk and git-gui.
-
-(portability)
-
-* git will build on AIX better than before now.
-
-* core.ignorecase configuration variable can be used to work better on
-  filesystems that are not case sensitive.
-
-* "git init" now autodetects the case sensitivity of the filesystem and
-  sets core.ignorecase accordingly.
-
-* cpio is no longer used; neither "curl" binary (libcurl is still used).
-
-(documentation)
-
-* Many freestanding documentation pages have been converted and made
-  available to "git help" (aka "man git<something>") as section 7 of
-  the manual pages. This means bookmarks to some HTML documentation
-  files may need to be updated (eg "tutorial.html" became
-  "gittutorial.html").
-
-(performance)
-
-* "git clone" was rewritten in C.  This will hopefully help cloning a
-  repository with insane number of refs.
-
-* "git rebase --onto $there $from $branch" used to switch to the tip of
-  $branch only to immediately reset back to $from, smudging work tree
-  files unnecessarily.  This has been optimized.
-
-* Object creation codepath in "git-svn" has been optimized by enhancing
-  plumbing commands git-cat-file and git-hash-object.
-
-(usability, bells and whistles)
-
-* "git add -p" (and the "patch" subcommand of "git add -i") can choose to
-  apply (or not apply) mode changes independently from contents changes.
-
-* "git bisect help" gives longer and more helpful usage information.
-
-* "git bisect" does not use a special branch "bisect" anymore; instead, it
-  does its work on a detached HEAD.
-
-* "git branch" (and "git checkout -b") can be told to set up
-  branch.<name>.rebase automatically, so that later you can say "git pull"
-  and magically cause "git pull --rebase" to happen.
-
-* "git branch --merged" and "git branch --no-merged" can be used to list
-  branches that have already been merged (or not yet merged) to the
-  current branch.
-
-* "git cherry-pick" and "git revert" can add a sign-off.
-
-* "git commit" mentions the author identity when you are committing
-  somebody else's changes.
-
-* "git diff/log --dirstat" output is consistent between binary and textual
-  changes.
-
-* "git filter-branch" rewrites signed tags by demoting them to annotated.
-
-* "git format-patch --no-binary" can produce a patch that lack binary
-  changes (i.e. cannot be used to propagate the whole changes) meant only
-  for reviewing.
-
-* "git init --bare" is a synonym for "git --bare init" now.
-
-* "git gc --auto" honors a new pre-auto-gc hook to temporarily disable it.
-
-* "git log --pretty=tformat:<custom format>" gives a LF after each entry,
-  instead of giving a LF between each pair of entries which is how
-  "git log --pretty=format:<custom format>" works.
-
-* "git log" and friends learned the "--graph" option to show the ancestry
-  graph at the left margin of the output.
-
-* "git log" and friends can be told to use date format that is different
-  from the default via 'log.date' configuration variable.
-
-* "git send-email" now can send out messages outside a git repository.
-
-* "git send-email --compose" was made aware of rfc2047 quoting.
-
-* "git status" can optionally include output from "git submodule
-  summary".
-
-* "git svn" learned --add-author-from option to propagate the authorship
-  by munging the commit log message.
-
-* new object creation and looking up in "git svn" has been optimized.
-
-* "gitweb" can read from a system-wide configuration file.
-
-(internal)
-
-* "git unpack-objects" and "git receive-pack" is now more strict about
-  detecting breakage in the objects they receive over the wire.
-
-
-Fixes since v1.5.5
-------------------
-
-All of the fixes in v1.5.5 maintenance series are included in
-this release, unless otherwise noted.
-
-And there are too numerous small fixes to otherwise note here ;-)
diff --git a/third_party/git/Documentation/RelNotes/1.6.0.1.txt b/third_party/git/Documentation/RelNotes/1.6.0.1.txt
deleted file mode 100644
index 49d7a1cafabd..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.0.1.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-GIT v1.6.0.1 Release Notes
-==========================
-
-Fixes since v1.6.0
-------------------
-
-* "git diff --cc" did not honor content mangling specified by
-  gitattributes and core.autocrlf when reading from the work tree.
-
-* "git diff --check" incorrectly detected new trailing blank lines when
-  whitespace check was in effect.
-
-* "git for-each-ref" tried to dereference NULL when asked for '%(body)" on
-  a tag with a single incomplete line as its payload.
-
-* "git format-patch" peeked before the beginning of a string when
-  "format.headers" variable is empty (a misconfiguration).
-
-* "git help help" did not work correctly.
-
-* "git mailinfo" (hence "git am") was unhappy when MIME multipart message
-  contained garbage after the finishing boundary.
-
-* "git mailinfo" also was unhappy when the "From: " line only had a bare
-  e-mail address.
-
-* "git merge" did not refresh the index correctly when a merge resulted in
-  a fast-forward.
-
-* "git merge" did not resolve a truly trivial merges that can be done
-  without content level merges.
-
-* "git svn dcommit" to a repository with URL that has embedded usernames
-  did not work correctly.
-
-Contains other various documentation fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.6.0.2.txt b/third_party/git/Documentation/RelNotes/1.6.0.2.txt
deleted file mode 100644
index 7d8fb85e1b49..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.0.2.txt
+++ /dev/null
@@ -1,81 +0,0 @@
-GIT v1.6.0.2 Release Notes
-==========================
-
-Fixes since v1.6.0.1
---------------------
-
-* Installation on platforms that needs .exe suffix to git-* programs were
-  broken in 1.6.0.1.
-
-* Installation on filesystems without symbolic links support did not
-  work well.
-
-* In-tree documentations and test scripts now use "git foo" form to set a
-  better example, instead of the "git-foo" form (which is an acceptable
-  form if you have "PATH=$(git --exec-path):$PATH" in your script)
-
-* Many commands did not use the correct working tree location when used
-  with GIT_WORK_TREE environment settings.
-
-* Some systems need to use compatibility fnmatch and regex libraries
-  independent from each other; the compat/ area has been reorganized to
-  allow this.
-
-
-* "git apply --unidiff-zero" incorrectly applied a -U0 patch that inserts
-  a new line before the second line.
-
-* "git blame -c" did not exactly work like "git annotate" when range
-  boundaries are involved.
-
-* "git checkout file" when file is still unmerged checked out contents from
-  a random high order stage, which was confusing.
-
-* "git clone $there $here/" with extra trailing slashes after explicit
-  local directory name $here did not work as expected.
-
-* "git diff" on tracked contents with CRLF line endings did not drive "less"
-  intelligently when showing added or removed lines.
-
-* "git diff --dirstat -M" did not add changes in subdirectories up
-  correctly for renamed paths.
-
-* "git diff --cumulative" did not imply "--dirstat".
-
-* "git for-each-ref refs/heads/" did not work as expected.
-
-* "git gui" allowed users to feed patch without any context to be applied.
-
-* "git gui" botched parsing "diff" output when a line that begins with two
-  dashes and a space gets removed or a line that begins with two pluses
-  and a space gets added.
-
-* "git gui" translation updates and i18n fixes.
-
-* "git index-pack" is more careful against disk corruption while completing
-  a thin pack.
-
-* "git log -i --grep=pattern" did not ignore case; neither "git log -E
-  --grep=pattern" triggered extended regexp.
-
-* "git log --pretty="%ad" --date=short" did not use short format when
-  showing the timestamp.
-
-* "git log --author=author" match incorrectly matched with the
-  timestamp part of "author " line in commit objects.
-
-* "git log -F --author=author" did not work at all.
-
-* Build procedure for "git shell" that used stub versions of some
-  functions and globals was not understood by linkers on some platforms.
-
-* "git stash" was fooled by a stat-dirty but otherwise unmodified paths
-  and refused to work until the user refreshed the index.
-
-* "git svn" was broken on Perl before 5.8 with recent fixes to reduce
-  use of temporary files.
-
-* "git verify-pack -v" did not work correctly when given more than one
-  packfile.
-
-Also contains many documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.6.0.3.txt b/third_party/git/Documentation/RelNotes/1.6.0.3.txt
deleted file mode 100644
index ae0577836ae8..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.0.3.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-GIT v1.6.0.3 Release Notes
-==========================
-
-Fixes since v1.6.0.2
---------------------
-
-* "git archive --format=zip" did not honor core.autocrlf while
-  --format=tar did.
-
-* Continuing "git rebase -i" was very confused when the user left modified
-  files in the working tree while resolving conflicts.
-
-* Continuing "git rebase -i" was also very confused when the user left
-  some staged changes in the index after "edit".
-
-* "git rebase -i" now honors the pre-rebase hook, just like the
-  other rebase implementations "git rebase" and "git rebase -m".
-
-* "git rebase -i" incorrectly aborted when there is no commit to replay.
-
-* Behaviour of "git diff --quiet" was inconsistent with "diff --exit-code"
-  with the output redirected to /dev/null.
-
-* "git diff --no-index" on binary files no longer outputs a bogus
-  "diff --git" header line.
-
-* "git diff" hunk header patterns with multiple elements separated by LF
-  were not used correctly.
-
-* Hunk headers in "git diff" default to using extended regular
-  expressions, fixing some of the internal patterns on non-GNU
-  platforms.
-
-* New config "diff.*.xfuncname" exposes extended regular expressions
-  for user specified hunk header patterns.
-
-* "git gc" when ejecting otherwise unreachable objects from packfiles into
-  loose form leaked memory.
-
-* "git index-pack" was recently broken and mishandled objects added by
-  thin-pack completion processing under memory pressure.
-
-* "git index-pack" was recently broken and misbehaved when run from inside
-  .git/objects/pack/ directory.
-
-* "git stash apply sash@{1}" was fixed to error out.  Prior versions
-  would have applied stash@{0} incorrectly.
-
-* "git stash apply" now offers a better suggestion on how to continue
-  if the working tree is currently dirty.
-
-* "git for-each-ref --format=%(subject)" fixed for commits with no
-  no newline in the message body.
-
-* "git remote" fixed to protect printf from user input.
-
-* "git remote show -v" now displays all URLs of a remote.
-
-* "git checkout -b branch" was confused when branch already existed.
-
-* "git checkout -q" once again suppresses the locally modified file list.
-
-* "git clone -q", "git fetch -q" asks remote side to not send
-  progress messages, actually making their output quiet.
-
-* Cross-directory renames are no longer used when creating packs.  This
-  allows more graceful behavior on filesystems like sshfs.
-
-* Stale temporary files under $GIT_DIR/objects/pack are now cleaned up
-  automatically by "git prune".
-
-* "git merge" once again removes directories after the last file has
-  been removed from it during the merge.
-
-* "git merge" did not allocate enough memory for the structure itself when
-  enumerating the parents of the resulting commit.
-
-* "git blame -C -C" no longer segfaults while trying to pass blame if
-   it encounters a submodule reference.
-
-* "git rm" incorrectly claimed that you have local modifications when a
-  path was merely stat-dirty.
-
-* "git svn" fixed to display an error message when 'set-tree' failed,
-   instead of a Perl compile error.
-
-* "git submodule" fixed to handle checking out a different commit
-  than HEAD after initializing the submodule.
-
-* The "git commit" error message when there are still unmerged
-  files present was clarified to match "git write-tree".
-
-* "git init" was confused when core.bare or core.sharedRepository are set
-  in system or user global configuration file by mistake.  When --bare or
-  --shared is given from the command line, these now override such
-  settings made outside the repositories.
-
-* Some segfaults due to uncaught NULL pointers were fixed in multiple
-  tools such as apply, reset, update-index.
-
-* Solaris builds now default to OLD_ICONV=1 to avoid compile warnings;
-  Solaris 8 does not define NEEDS_LIBICONV by default.
-
-* "Git.pm" tests relied on unnecessarily more recent version of Perl.
-
-* "gitweb" triggered undef warning on commits without log messages.
-
-* "gitweb" triggered undef warnings on missing trees.
-
-* "gitweb" now removes PATH_INFO from its URLs so users don't have
-  to manually set the URL in the gitweb configuration.
-
-* Bash completion removed support for legacy "git-fetch", "git-push"
-  and "git-pull" as these are no longer installed.  Dashless form
-  ("git fetch") is still however supported.
-
-Many other documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.6.0.4.txt b/third_party/git/Documentation/RelNotes/1.6.0.4.txt
deleted file mode 100644
index d522661d315c..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.0.4.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-GIT v1.6.0.4 Release Notes
-==========================
-
-Fixes since v1.6.0.3
---------------------
-
-* 'git add -p' said "No changes" when only binary files were changed.
-
-* 'git archive' did not work correctly in bare repositories.
-
-* 'git checkout -t -b newbranch' when you are on detached HEAD was broken.
-
-* when we refuse to detect renames because there are too many new or
-  deleted files, 'git diff' did not say how many there are.
-
-* 'git push --mirror' tried and failed to push the stash; there is no
-  point in sending it to begin with.
-
-* 'git push' did not update the remote tracking reference if the corresponding
-  ref on the remote end happened to be already up to date.
-
-* 'git pull $there $branch:$current_branch' did not work when you were on
-  a branch yet to be born.
-
-* when giving up resolving a conflicted merge, 'git reset --hard' failed
-  to remove new paths from the working tree.
-
-* 'git send-email' had a small fd leak while scanning directory.
-
-* 'git status' incorrectly reported a submodule directory as an untracked
-  directory.
-
-* 'git svn' used deprecated 'git-foo' form of subcommand invocation.
-
-* 'git update-ref -d' to remove a reference did not honor --no-deref option.
-
-* Plugged small memleaks here and there.
-
-* Also contains many documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.6.0.5.txt b/third_party/git/Documentation/RelNotes/1.6.0.5.txt
deleted file mode 100644
index a08bb96738aa..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.0.5.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-GIT v1.6.0.5 Release Notes
-==========================
-
-Fixes since v1.6.0.4
---------------------
-
-* "git checkout" used to crash when your HEAD was pointing at a deleted
-  branch.
-
-* "git checkout" from an un-checked-out state did not allow switching out
-  of the current branch.
-
-* "git diff" always allowed GIT_EXTERNAL_DIFF and --no-ext-diff was no-op for
-  the command.
-
-* Giving 3 or more tree-ish to "git diff" is supposed to show the combined
-  diff from second and subsequent trees to the first one, but the order was
-  screwed up.
-
-* "git fast-export" did not export all tags.
-
-* "git ls-files --with-tree=<tree>" did not work with options other
-  than -c, most notably with -m.
-
-* "git pack-objects" did not make its best effort to honor --max-pack-size
-  option when a single first object already busted the given limit and
-  placed many objects in a single pack.
-
-* "git-p4" fast import frontend was too eager to trigger its keyword expansion
-  logic, even on a keyword-looking string that does not have closing '$' on the
-  same line.
-
-* "git push $there" when the remote $there is defined in $GIT_DIR/branches/$there
-  behaves more like what cg-push from Cogito used to work.
-
-* when giving up resolving a conflicted merge, "git reset --hard" failed
-  to remove new paths from the working tree.
-
-* "git tag" did not complain when given mutually incompatible set of options.
-
-* The message constructed in the internal editor was discarded when "git
-  tag -s" failed to sign the message, which was often caused by the user
-  not configuring GPG correctly.
-
-* "make check" cannot be run without sparse; people may have meant to say
-  "make test" instead, so suggest that.
-
-* Internal diff machinery had a corner case performance bug that choked on
-  a large file with many repeated contents.
-
-* "git repack" used to grab objects out of packs marked with .keep
-  into a new pack.
-
-* Many unsafe call to sprintf() style varargs functions are corrected.
-
-* Also contains quite a few documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.6.0.6.txt b/third_party/git/Documentation/RelNotes/1.6.0.6.txt
deleted file mode 100644
index 64ece1ffd5cb..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.0.6.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-GIT v1.6.0.6 Release Notes
-==========================
-
-Fixes since 1.6.0.5
--------------------
-
- * "git fsck" had a deep recursion that wasted stack space.
-
- * "git fast-export" and "git fast-import" choked on an old style
-   annotated tag that lack the tagger information.
-
- * "git mergetool -- file" did not correctly skip "--" marker that
-   signals the end of options list.
-
- * "git show $tag" segfaulted when an annotated $tag pointed at a
-   nonexistent object.
-
- * "git show 2>error" when the standard output is automatically redirected
-   to the pager redirected the standard error to the pager as well; there
-   was no need to.
-
- * "git send-email" did not correctly handle list of addresses when
-   they had quoted comma (e.g. "Lastname, Givenname" <mail@addre.ss>).
-
- * Logic to discover branch ancestry in "git svn" was unreliable when
-   the process to fetch history was interrupted.
-
- * Removed support for an obsolete gitweb request URI, whose
-   implementation ran "git diff" Porcelain, instead of using plumbing,
-   which would have run an external diff command specified in the
-   repository configuration as the gitweb user.
-
-Also contains numerous documentation typofixes.
diff --git a/third_party/git/Documentation/RelNotes/1.6.0.txt b/third_party/git/Documentation/RelNotes/1.6.0.txt
deleted file mode 100644
index de7ef166b692..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.0.txt
+++ /dev/null
@@ -1,258 +0,0 @@
-GIT v1.6.0 Release Notes
-========================
-
-User visible changes
---------------------
-
-With the default Makefile settings, most of the programs are now
-installed outside your $PATH, except for "git", "gitk" and
-some server side programs that need to be accessible for technical
-reasons.  Invoking a git subcommand as "git-xyzzy" from the command
-line has been deprecated since early 2006 (and officially announced in
-1.5.4 release notes); use of them from your scripts after adding
-output from "git --exec-path" to the $PATH is still supported in this
-release, but users are again strongly encouraged to adjust their
-scripts to use "git xyzzy" form, as we will stop installing
-"git-xyzzy" hardlinks for built-in commands in later releases.
-
-An earlier change to page "git status" output was overwhelmingly unpopular
-and has been reverted.
-
-Source changes needed for porting to MinGW environment are now all in the
-main git.git codebase.
-
-By default, packfiles created with this version uses delta-base-offset
-encoding introduced in v1.4.4.  Pack idx files are using version 2 that
-allows larger packs and added robustness thanks to its CRC checking,
-introduced in v1.5.2 and v1.4.4.5.  If you want to keep your repositories
-backwards compatible past these versions, set repack.useDeltaBaseOffset
-to false or pack.indexVersion to 1, respectively.
-
-We used to prevent sample hook scripts shipped in templates/ from
-triggering by default by relying on the fact that we install them as
-unexecutable, but on some filesystems, this approach does not work.
-They are now shipped with ".sample" suffix.  If you want to activate
-any of these samples as-is, rename them to drop the ".sample" suffix,
-instead of running "chmod +x" on them.  For example, you can rename
-hooks/post-update.sample to hooks/post-update to enable the sample
-hook that runs update-server-info, in order to make repositories
-friendly to dumb protocols (i.e. HTTP).
-
-GIT_CONFIG, which was only documented as affecting "git config", but
-actually affected all git commands, now only affects "git config".
-GIT_LOCAL_CONFIG, also only documented as affecting "git config" and
-not different from GIT_CONFIG in a useful way, is removed.
-
-The ".dotest" temporary area "git am" and "git rebase" use is now moved
-inside the $GIT_DIR, to avoid mistakes of adding it to the project by
-accident.
-
-An ancient merge strategy "stupid" has been removed.
-
-
-Updates since v1.5.6
---------------------
-
-(subsystems)
-
-* git-p4 in contrib learned "allowSubmit" configuration to control on
-  which branch to allow "submit" subcommand.
-
-* git-gui learned to stage changes per-line.
-
-(portability)
-
-* Changes for MinGW port have been merged, thanks to Johannes Sixt and
-  gangs.
-
-* Sample hook scripts shipped in templates/ are now suffixed with
-  *.sample.
-
-* perl's in-place edit (-i) does not work well without backup files on Windows;
-  some tests are rewritten to cope with this.
-
-(documentation)
-
-* Updated howto/update-hook-example
-
-* Got rid of usage of "git-foo" from the tutorial and made typography
-  more consistent.
-
-* Disambiguating "--" between revs and paths is finally documented.
-
-(performance, robustness, sanity etc.)
-
-* index-pack used too much memory when dealing with a deep delta chain.
-  This has been optimized.
-
-* reduced excessive inlining to shrink size of the "git" binary.
-
-* verify-pack checks the object CRC when using version 2 idx files.
-
-* When an object is corrupt in a pack, the object became unusable even
-  when the same object is available in a loose form,  We now try harder to
-  fall back to these redundant objects when able.  In particular, "git
-  repack -a -f" can be used to fix such a corruption as long as necessary
-  objects are available.
-
-* Performance of "git-blame -C -C" operation is vastly improved.
-
-* git-clone does not create refs in loose form anymore (it behaves as
-  if you immediately ran git-pack-refs after cloning).  This will help
-  repositories with insanely large number of refs.
-
-* core.fsyncobjectfiles configuration can be used to ensure that the loose
-  objects created will be fsync'ed (this is only useful on filesystems
-  that does not order data writes properly).
-
-* "git commit-tree" plumbing can make Octopus with more than 16 parents.
-  "git commit" has been capable of this for quite some time.
-
-(usability, bells and whistles)
-
-* even more documentation pages are now accessible via "man" and "git help".
-
-* A new environment variable GIT_CEILING_DIRECTORIES can be used to stop
-  the discovery process of the toplevel of working tree; this may be useful
-  when you are working in a slow network disk and are outside any working tree,
-  as bash-completion and "git help" may still need to run in these places.
-
-* By default, stash entries never expire.  Set reflogexpire in [gc
-  "refs/stash"] to a reasonable value to get traditional auto-expiration
-  behaviour back
-
-* Longstanding latency issue with bash completion script has been
-  addressed.  This will need to be backmerged to 'maint' later.
-
-* pager.<cmd> configuration variable can be used to enable/disable the
-  default paging behaviour per command.
-
-* "git-add -i" has a new action 'e/dit' to allow you edit the patch hunk
-  manually.
-
-* git-am records the original tip of the branch in ORIG_HEAD before it
-  starts applying patches.
-
-* git-apply can handle a patch that touches the same path more than once
-  much better than before.
-
-* git-apply can be told not to trust the line counts recorded in the input
-  patch but recount, with the new --recount option.
-
-* git-apply can be told to apply a patch to a path deeper than what the
-  patch records with --directory option.
-
-* git-archive can be told to omit certain paths from its output using
-  export-ignore attributes.
-
-* git-archive uses the zlib default compression level when creating
-  zip archive.
-
-* git-archive's command line options --exec and --remote can take their
-  parameters as separate command line arguments, similar to other commands.
-  IOW, both "--exec=path" and "--exec path" are now supported.
-
-* With -v option, git-branch describes the remote tracking statistics
-  similar to the way git-checkout reports by how many commits your branch
-  is ahead/behind.
-
-* git-branch's --contains option used to always require a commit parameter
-  to limit the branches with; it now defaults to list branches that
-  contains HEAD if this parameter is omitted.
-
-* git-branch's --merged and --no-merged option used to always limit the
-  branches relative to the HEAD, but they can now take an optional commit
-  argument that is used in place of HEAD.
-
-* git-bundle can read the revision arguments from the standard input.
-
-* git-cherry-pick can replay a root commit now.
-
-* git-clone can clone from a remote whose URL would be rewritten by
-  configuration stored in $HOME/.gitconfig now.
-
-* "git-clone --mirror" is a handy way to set up a bare mirror repository.
-
-* git-cvsserver learned to respond to "cvs co -c".
-
-* git-diff --check now checks leftover merge conflict markers.
-
-* "git-diff -p" learned to grab a better hunk header lines in
-  BibTex, Pascal/Delphi, and Ruby files and also pays attention to
-  chapter and part boundary in TeX documents.
-
-* When remote side used to have branch 'foo' and git-fetch finds that now
-  it has branch 'foo/bar', it refuses to lose the existing remote tracking
-  branch and its reflog.  The error message has been improved to suggest
-  pruning the remote if the user wants to proceed and get the latest set
-  of branches from the remote, including such 'foo/bar'.
-
-* fast-export learned to export and import marks file; this can be used to
-  interface with fast-import incrementally.
-
-* fast-import and fast-export learned to export and import gitlinks.
-
-* "gitk" left background process behind after being asked to dig very deep
-  history and the user killed the UI; the process is killed when the UI goes
-  away now.
-
-* git-rebase records the original tip of branch in ORIG_HEAD before it is
-  rewound.
-
-* "git rerere" can be told to update the index with auto-reused resolution
-  with rerere.autoupdate configuration variable.
-
-* git-rev-parse learned $commit^! and $commit^@ notations used in "log"
-  family.  These notations are available in gitk as well, because the gitk
-  command internally uses rev-parse to interpret its arguments.
-
-* git-rev-list learned --children option to show child commits it
-  encountered during the traversal, instead of showing parent commits.
-
-* git-send-mail can talk not just over SSL but over TLS now.
-
-* git-shortlog honors custom output format specified with "--pretty=format:".
-
-* "git-stash save" learned --keep-index option.  This lets you stash away the
-  local changes and bring the changes staged in the index to your working
-  tree for examination and testing.
-
-* git-stash also learned branch subcommand to create a new branch out of
-  stashed changes.
-
-* git-status gives the remote tracking statistics similar to the way
-  git-checkout reports by how many commits your branch is ahead/behind.
-
-* "git-svn dcommit" is now aware of auto-props setting the subversion user
-  has.
-
-* You can tell "git status -u" to even more aggressively omit checking
-  untracked files with --untracked-files=no.
-
-* Original SHA-1 value for "update-ref -d" is optional now.
-
-* Error codes from gitweb are made more descriptive where possible, rather
-  than "403 forbidden" as we used to issue everywhere.
-
-(internal)
-
-* git-merge has been reimplemented in C.
-
-
-Fixes since v1.5.6
-------------------
-
-All of the fixes in v1.5.6 maintenance series are included in
-this release, unless otherwise noted.
-
- * git-clone ignored its -u option; the fix needs to be backported to
-   'maint';
-
- * git-mv used to lose the distinction between changes that are staged
-   and that are only in the working tree, by staging both in the index
-   after moving such a path.
-
- * "git-rebase -i -p" rewrote the parents to wrong ones when amending
-   (either edit or squash) was involved, and did not work correctly
-   when fast forwarding.
-
diff --git a/third_party/git/Documentation/RelNotes/1.6.1.1.txt b/third_party/git/Documentation/RelNotes/1.6.1.1.txt
deleted file mode 100644
index 8c594ba02fe6..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.1.1.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-GIT v1.6.1.1 Release Notes
-==========================
-
-Fixes since v1.6.1
-------------------
-
-* "git add frotz/nitfol" when "frotz" is a submodule should have errored
-  out, but it didn't.
-
-* "git apply" took file modes from the patch text and updated the mode
-  bits of the target tree even when the patch was not about mode changes.
-
-* "git bisect view" on Cygwin did not launch gitk
-
-* "git checkout $tree" did not trigger an error.
-
-* "git commit" tried to remove COMMIT_EDITMSG from the work tree by mistake.
-
-* "git describe --all" complained when a commit is described with a tag,
-  which was nonsense.
-
-* "git diff --no-index --" did not trigger no-index (aka "use git-diff as
-  a replacement of diff on untracked files") behaviour.
-
-* "git format-patch -1 HEAD" on a root commit failed to produce patch
-  text.
-
-* "git fsck branch" did not work as advertised; instead it behaved the same
-  way as "git fsck".
-
-* "git log --pretty=format:%s" did not handle a multi-line subject the
-  same way as built-in log listers (i.e. shortlog, --pretty=oneline, etc.)
-
-* "git daemon", and "git merge-file" are more careful when freopen fails
-  and barf, instead of going on and writing to unopened filehandle.
-
-* "git http-push" did not like some RFC 4918 compliant DAV server
-  responses.
-
-* "git merge -s recursive" mistakenly overwritten an untracked file in the
-  work tree upon delete/modify conflict.
-
-* "git merge -s recursive" didn't leave the index unmerged for entries with
-  rename/delete conflicts.
-
-* "git merge -s recursive" clobbered untracked files in the work tree.
-
-* "git mv -k" with more than one erroneous paths misbehaved.
-
-* "git read-tree -m -u" hence branch switching incorrectly lost a
-  subdirectory in rare cases.
-
-* "git rebase -i" issued an unnecessary error message upon a user error of
-  marking the first commit to be "squash"ed.
-
-* "git shortlog" did not format a commit message with multi-line
-  subject correctly.
-
-Many documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.6.1.2.txt b/third_party/git/Documentation/RelNotes/1.6.1.2.txt
deleted file mode 100644
index be37cbb8583b..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.1.2.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-GIT v1.6.1.2 Release Notes
-==========================
-
-Fixes since v1.6.1.1
---------------------
-
-* The logic for rename detection in internal diff used by commands like
-  "git diff" and "git blame" has been optimized to avoid loading the same
-  blob repeatedly.
-
-* We did not allow writing out a blob that is larger than 2GB for no good
-  reason.
-
-* "git format-patch -o $dir", when $dir is a relative directory, used it
-  as relative to the root of the work tree, not relative to the current
-  directory.
-
-* v1.6.1 introduced an optimization for "git push" into a repository (A)
-  that borrows its objects from another repository (B) to avoid sending
-  objects that are available in repository B, when they are not yet used
-  by repository A.  However the code on the "git push" sender side was
-  buggy and did not work when repository B had new objects that are not
-  known by the sender.  This caused pushing into a "forked" repository
-  served by v1.6.1 software using "git push" from v1.6.1 sometimes did not
-  work.  The bug was purely on the "git push" sender side, and has been
-  corrected.
-
-* "git status -v" did not paint its diff output in colour even when
-  color.ui configuration was set.
-
-* "git ls-tree" learned --full-tree option to help Porcelain scripts that
-  want to always see the full path regardless of the current working
-  directory.
-
-* "git grep" incorrectly searched in work tree paths even when they are
-  marked as assume-unchanged.  It now searches in the index entries.
-
-* "git gc" with no grace period needlessly ejected packed but unreachable
-  objects in their loose form, only to delete them right away.
diff --git a/third_party/git/Documentation/RelNotes/1.6.1.3.txt b/third_party/git/Documentation/RelNotes/1.6.1.3.txt
deleted file mode 100644
index cd08d8174ec1..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.1.3.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-GIT v1.6.1.3 Release Notes
-==========================
-
-Fixes since v1.6.1.2
---------------------
-
-* "git diff --binary | git apply" pipeline did not work well when
-  a binary blob is changed to a symbolic link.
-
-* Some combinations of -b/-w/--ignore-space-at-eol to "git diff" did
-  not work as expected.
-
-* "git grep" did not pass the -I (ignore binary) option when
-  calling out an external grep program.
-
-* "git log" and friends include HEAD to the set of starting points
-  when --all is given.  This makes a difference when you are not
-  on any branch.
-
-* "git mv" to move an untracked file to overwrite a tracked
-  contents misbehaved.
-
-* "git merge -s octopus" with many potential merge bases did not
-  work correctly.
-
-* RPM binary package installed the html manpages in a wrong place.
-
-Also includes minor documentation fixes and updates.
diff --git a/third_party/git/Documentation/RelNotes/1.6.1.4.txt b/third_party/git/Documentation/RelNotes/1.6.1.4.txt
deleted file mode 100644
index ccbad794c034..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.1.4.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-GIT v1.6.1.4 Release Notes
-==========================
-
-Fixes since v1.6.1.3
---------------------
-
-* .gitignore learned to handle backslash as a quoting mechanism for
-  comment introduction character "#".
-  This fix was first merged to 1.6.2.1.
-
-* "git fast-export" produced wrong output with some parents missing from
-  commits, when the history is clock-skewed.
-
-* "git fast-import" sometimes failed to read back objects it just wrote
-  out and aborted, because it failed to flush stale cached data.
-
-* "git-ls-tree" and "git-diff-tree" used a pathspec correctly when
-  deciding to descend into a subdirectory but they did not match the
-  individual paths correctly.  This caused pathspecs "abc/d ab" to match
-  "abc/0" ("abc/d" made them decide to descend into the directory "abc/",
-  and then "ab" incorrectly matched "abc/0" when it shouldn't).
-  This fix was first merged to 1.6.2.3.
-
-* import-zips script (in contrib) did not compute the common directory
-  prefix correctly.
-  This fix was first merged to 1.6.2.2.
-
-* "git init" segfaulted when given an overlong template location via
-  the --template= option.
-  This fix was first merged to 1.6.2.4.
-
-* "git repack" did not error out when necessary object was missing in the
-  repository.
-
-* git-repack (invoked from git-gc) did not work as nicely as it should in
-  a repository that borrows objects from neighbours via alternates
-  mechanism especially when some packs are marked with the ".keep" flag
-  to prevent them from being repacked.
-  This fix was first merged to 1.6.2.3.
-
-Also includes minor documentation fixes and updates.
diff --git a/third_party/git/Documentation/RelNotes/1.6.1.txt b/third_party/git/Documentation/RelNotes/1.6.1.txt
deleted file mode 100644
index 7b152a6fdc5d..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.1.txt
+++ /dev/null
@@ -1,280 +0,0 @@
-GIT v1.6.1 Release Notes
-========================
-
-Updates since v1.6.0
---------------------
-
-When some commands (e.g. "git log", "git diff") spawn pager internally, we
-used to make the pager the parent process of the git command that produces
-output.  This meant that the exit status of the whole thing comes from the
-pager, not the underlying git command.  We swapped the order of the
-processes around and you will see the exit code from the command from now
-on.
-
-(subsystems)
-
-* gitk can call out to git-gui to view "git blame" output; git-gui in turn
-  can run gitk from its blame view.
-
-* Various git-gui updates including updated translations.
-
-* Various gitweb updates from repo.or.cz installation.
-
-* Updates to emacs bindings.
-
-(portability)
-
-* A few test scripts used nonportable "grep" that did not work well on
-  some platforms, e.g. Solaris.
-
-* Sample pre-auto-gc script has OS X support.
-
-* Makefile has support for (ancient) FreeBSD 4.9.
-
-(performance)
-
-* Many operations that are lstat(3) heavy can be told to pre-execute
-  necessary lstat(3) in parallel before their main operations, which
-  potentially gives much improved performance for cold-cache cases or in
-  environments with weak metadata caching (e.g. NFS).
-
-* The underlying diff machinery to produce textual output has been
-  optimized, which would result in faster "git blame" processing.
-
-* Most of the test scripts (but not the ones that try to run servers)
-  can be run in parallel.
-
-* Bash completion of refnames in a repository with massive number of
-  refs has been optimized.
-
-* Cygwin port uses native stat/lstat implementations when applicable,
-  which leads to improved performance.
-
-* "git push" pays attention to alternate repositories to avoid sending
-  unnecessary objects.
-
-* "git svn" can rebuild an out-of-date rev_map file.
-
-(usability, bells and whistles)
-
-* When you mistype a command name, git helpfully suggests what it guesses
-  you might have meant to say.  help.autocorrect configuration can be set
-  to a non-zero value to accept the suggestion when git can uniquely
-  guess.
-
-* The packfile machinery hopefully is more robust when dealing with
-  corrupt packs if redundant objects involved in the corruption are
-  available elsewhere.
-
-* "git add -N path..." adds the named paths as an empty blob, so that
-  subsequent "git diff" will show a diff as if they are creation events.
-
-* "git add" gained a built-in synonym for people who want to say "stage
-  changes" instead of "add contents to the staging area" which amounts
-  to the same thing.
-
-* "git apply" learned --include=paths option, similar to the existing
-  --exclude=paths option.
-
-* "git bisect" is careful about a user mistake and suggests testing of
-  merge base first when good is not a strict ancestor of bad.
-
-* "git bisect skip" can take a range of commits.
-
-* "git blame" re-encodes the commit metainfo to UTF-8 from i18n.commitEncoding
-  by default.
-
-* "git check-attr --stdin" can check attributes for multiple paths.
-
-* "git checkout --track origin/hack" used to be a syntax error.  It now
-  DWIMs to create a corresponding local branch "hack", i.e. acts as if you
-  said "git checkout --track -b hack origin/hack".
-
-* "git checkout --ours/--theirs" can be used to check out one side of a
-  conflicting merge during conflict resolution.
-
-* "git checkout -m" can be used to recreate the initial conflicted state
-  during conflict resolution.
-
-* "git cherry-pick" can also utilize rerere for conflict resolution.
-
-* "git clone" learned to be verbose with -v
-
-* "git commit --author=$name" can look up author name from existing
-  commits.
-
-* output from "git commit" has been reworded in a more concise and yet
-  more informative way.
-
-* "git count-objects" reports the on-disk footprint for packfiles and
-  their corresponding idx files.
-
-* "git daemon" learned --max-connections=<count> option.
-
-* "git daemon" exports REMOTE_ADDR to record client address, so that
-  spawned programs can act differently on it.
-
-* "git describe --tags" favours closer lightweight tags than farther
-  annotated tags now.
-
-* "git diff" learned to mimic --suppress-blank-empty from GNU diff via a
-  configuration option.
-
-* "git diff" learned to put more sensible hunk headers for Python,
-  HTML and ObjC contents.
-
-* "git diff" learned to vary the a/ vs b/ prefix depending on what are
-  being compared, controlled by diff.mnemonicprefix configuration.
-
-* "git diff" learned --dirstat-by-file to count changed files, not number
-  of lines, when summarizing the global picture.
-
-* "git diff" learned "textconv" filters --- a binary or hard-to-read
-  contents can be munged into human readable form and the difference
-  between the results of the conversion can be viewed (obviously this
-  cannot produce a patch that can be applied, so this is disabled in
-  format-patch among other things).
-
-* "--cached" option to "git diff has an easier to remember synonym "--staged",
-  to ask "what is the difference between the given commit and the
-  contents staged in the index?"
-
-* "git for-each-ref" learned "refname:short" token that gives an
-  unambiguously abbreviated refname.
-
-* Auto-numbering of the subject lines is the default for "git
-  format-patch" now.
-
-* "git grep" learned to accept -z similar to GNU grep.
-
-* "git help" learned to use GIT_MAN_VIEWER environment variable before
-  using "man" program.
-
-* "git imap-send" can optionally talk SSL.
-
-* "git index-pack" is more careful against disk corruption while
-  completing a thin pack.
-
-* "git log --check" and "git log --exit-code" passes their underlying diff
-  status with their exit status code.
-
-* "git log" learned --simplify-merges, a milder variant of --full-history;
-  "gitk --simplify-merges" is easier to view than with --full-history.
-
-* "git log" learned "--source" to show what ref each commit was reached
-  from.
-
-* "git log" also learned "--simplify-by-decoration" to show the
-  birds-eye-view of the topology of the history.
-
-* "git log --pretty=format:" learned "%d" format element that inserts
-  names of tags that point at the commit.
-
-* "git merge --squash" and "git merge --no-ff" into an unborn branch are
-  noticed as user errors.
-
-* "git merge -s $strategy" can use a custom built strategy if you have a
-  command "git-merge-$strategy" on your $PATH.
-
-* "git pull" (and "git fetch") can be told to operate "-v"erbosely or
-  "-q"uietly.
-
-* "git push" can be told to reject deletion of refs with receive.denyDeletes
-  configuration.
-
-* "git rebase" honours pre-rebase hook; use --no-verify to bypass it.
-
-* "git rebase -p" uses interactive rebase machinery now to preserve the merges.
-
-* "git reflog expire branch" can be used in place of "git reflog expire
-  refs/heads/branch".
-
-* "git remote show $remote" lists remote branches one-per-line now.
-
-* "git send-email" can be given revision range instead of files and
-  maildirs on the command line, and automatically runs format-patch to
-  generate patches for the given revision range.
-
-* "git submodule foreach" subcommand allows you to iterate over checked
-  out submodules.
-
-* "git submodule sync" subcommands allows you to update the origin URL
-  recorded in submodule directories from the toplevel .gitmodules file.
-
-* "git svn branch" can create new branches on the other end.
-
-* "gitweb" can use more saner PATH_INFO based URL.
-
-(internal)
-
-* "git hash-object" learned to lie about the path being hashed, so that
-  correct gitattributes processing can be done while hashing contents
-  stored in a temporary file.
-
-* various callers of git-merge-recursive avoid forking it as an external
-  process.
-
-* Git class defined in "Git.pm" can be subclasses a bit more easily.
-
-* We used to link GNU regex library as a compatibility layer for some
-  platforms, but it turns out it is not necessary on most of them.
-
-* Some path handling routines used fixed number of buffers used alternately
-  but depending on the call depth, this arrangement led to hard to track
-  bugs.  This issue is being addressed.
-
-
-Fixes since v1.6.0
-------------------
-
-All of the fixes in v1.6.0.X maintenance series are included in this
-release, unless otherwise noted.
-
-* Porcelains implemented as shell scripts were utterly confused when you
-  entered to a subdirectory of a work tree from sideways, following a
-  symbolic link (this may need to be backported to older releases later).
-
-* Tracking symbolic links would work better on filesystems whose lstat()
-  returns incorrect st_size value for them.
-
-* "git add" and "git update-index" incorrectly allowed adding S/F when S
-  is a tracked symlink that points at a directory D that has a path F in
-  it (we still need to fix a similar nonsense when S is a submodule and F
-  is a path in it).
-
-* "git am" after stopping at a broken patch lost --whitespace, -C, -p and
-  --3way options given from the command line initially.
-
-* "git diff --stdin" used to take two trees on a line and compared them,
-  but we dropped support for such a use case long time ago.  This has
-  been resurrected.
-
-* "git filter-branch" failed to rewrite a tag name with slashes in it.
-
-* "git http-push" did not understand URI scheme other than opaquelocktoken
-  when acquiring a lock from the server (this may need to be backported to
-  older releases later).
-
-* After "git rebase -p" stopped with conflicts while replaying a merge,
- "git rebase --continue" did not work (may need to be backported to older
-  releases).
-
-* "git revert" records relative to which parent a revert was made when
-  reverting a merge.  Together with new documentation that explains issues
-  around reverting a merge and merging from the updated branch later, this
-  hopefully will reduce user confusion (this may need to be backported to
-  older releases later).
-
-* "git rm --cached" used to allow an empty blob that was added earlier to
-  be removed without --force, even when the file in the work tree has
-  since been modified.
-
-* "git push --tags --all $there" failed with generic usage message without
-  telling saying these two options are incompatible.
-
-* "git log --author/--committer" match used to potentially match the
-  timestamp part, exposing internal implementation detail.  Also these did
-  not work with --fixed-strings match at all.
-
-* "gitweb" did not mark non-ASCII characters imported from external HTML fragments
-  correctly.
diff --git a/third_party/git/Documentation/RelNotes/1.6.2.1.txt b/third_party/git/Documentation/RelNotes/1.6.2.1.txt
deleted file mode 100644
index dfa36416af24..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.2.1.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-GIT v1.6.2.1 Release Notes
-==========================
-
-Fixes since v1.6.2
-------------------
-
-* .gitignore learned to handle backslash as a quoting mechanism for
-  comment introduction character "#".
-
-* timestamp output in --date=relative mode used to display timestamps that
-  are long time ago in the default mode; it now uses "N years M months
-  ago", and "N years ago".
-
-* git-add -i/-p now works with non-ASCII pathnames.
-
-* "git hash-object -w" did not read from the configuration file from the
-  correct .git directory.
-
-* git-send-email learned to correctly handle multiple Cc: addresses.
diff --git a/third_party/git/Documentation/RelNotes/1.6.2.2.txt b/third_party/git/Documentation/RelNotes/1.6.2.2.txt
deleted file mode 100644
index fafa9986b0e5..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.2.2.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-GIT v1.6.2.2 Release Notes
-==========================
-
-Fixes since v1.6.2.1
---------------------
-
-* A longstanding confusing description of what --pickaxe option of
-  git-diff does has been clarified in the documentation.
-
-* "git-blame -S" did not quite work near the commits that were given
-  on the command line correctly.
-
-* "git diff --pickaxe-regexp" did not count overlapping matches
-  correctly.
-
-* "git diff" did not feed files in work-tree representation to external
-  diff and textconv.
-
-* "git-fetch" in a repository that was not cloned from anywhere said
-  it cannot find 'origin', which was hard to understand for new people.
-
-* "git-format-patch --numbered-files --stdout" did not have to die of
-  incompatible options; it now simply ignores --numbered-files as no files
-  are produced anyway.
-
-* "git-ls-files --deleted" did not work well with GIT_DIR&GIT_WORK_TREE.
-
-* "git-read-tree A B C..." without -m option has been broken for a long
-  time.
-
-* git-send-email ignored --in-reply-to when --no-thread was given.
-
-* 'git-submodule add' did not tolerate extra slashes and ./ in the path it
-  accepted from the command line; it now is more lenient.
-
-* git-svn misbehaved when the project contained a path that began with
-  two dashes.
-
-* import-zips script (in contrib) did not compute the common directory
-  prefix correctly.
-
-* miscompilation of negated enum constants by old gcc (2.9) affected the
-  codepaths to spawn subprocesses.
-
-Many small documentation updates are included as well.
diff --git a/third_party/git/Documentation/RelNotes/1.6.2.3.txt b/third_party/git/Documentation/RelNotes/1.6.2.3.txt
deleted file mode 100644
index 4d3c1ac91cf3..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.2.3.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-GIT v1.6.2.3 Release Notes
-==========================
-
-Fixes since v1.6.2.2
---------------------
-
-* Setting an octal mode value to core.sharedrepository configuration to
-  restrict access to the repository to group members did not work as
-  advertised.
-
-* A fairly large and trivial memory leak while rev-list shows list of
-  reachable objects has been identified and plugged.
-
-* "git-commit --interactive" did not abort when underlying "git-add -i"
-  signaled a failure.
-
-* git-repack (invoked from git-gc) did not work as nicely as it should in
-  a repository that borrows objects from neighbours via alternates
-  mechanism especially when some packs are marked with the ".keep" flag
-  to prevent them from being repacked.
-
-Many small documentation updates are included as well.
diff --git a/third_party/git/Documentation/RelNotes/1.6.2.4.txt b/third_party/git/Documentation/RelNotes/1.6.2.4.txt
deleted file mode 100644
index f4bf1d09863c..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.2.4.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-GIT v1.6.2.4 Release Notes
-==========================
-
-Fixes since v1.6.2.3
---------------------
-
-* The configuration parser had a buffer overflow while parsing an overlong
-  value.
-
-* pruning reflog entries that are unreachable from the tip of the ref
-  during "git reflog prune" (hence "git gc") was very inefficient.
-
-* "git-add -p" lacked a way to say "q"uit to refuse staging any hunks for
-  the remaining paths.  You had to say "d" and then ^C.
-
-* "git-checkout <tree-ish> <submodule>" did not update the index entry at
-  the named path; it now does.
-
-* "git-fast-export" choked when seeing a tag that does not point at commit.
-
-* "git init" segfaulted when given an overlong template location via
-  the --template= option.
-
-* "git-ls-tree" and "git-diff-tree" used a pathspec correctly when
-  deciding to descend into a subdirectory but they did not match the
-  individual paths correctly.  This caused pathspecs "abc/d ab" to match
-  "abc/0" ("abc/d" made them decide to descend into the directory "abc/",
-  and then "ab" incorrectly matched "abc/0" when it shouldn't).
-
-* "git-merge-recursive" was broken when a submodule entry was involved in
-  a criss-cross merge situation.
-
-Many small documentation updates are included as well.
-
----
-exec >/var/tmp/1
-echo O=$(git describe maint)
-O=v1.6.2.3-38-g318b847
-git shortlog --no-merges $O..maint
diff --git a/third_party/git/Documentation/RelNotes/1.6.2.5.txt b/third_party/git/Documentation/RelNotes/1.6.2.5.txt
deleted file mode 100644
index b23f9e95d1cb..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.2.5.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-GIT v1.6.2.5 Release Notes
-==========================
-
-Fixes since v1.6.2.4
---------------------
-
-* "git apply" mishandled if you fed a git generated patch that renames
-  file A to B and file B to A at the same time.
-
-* "git diff -c -p" (and "diff --cc") did not expect to see submodule
-  differences and instead refused to work.
-
-* "git grep -e '('" segfaulted, instead of diagnosing a mismatched
-  parentheses error.
-
-* "git fetch" generated packs with offset-delta encoding when both ends of
-  the connection are capable of producing one; this cannot be read by
-  ancient git and the user should be able to disable this by setting
-  repack.usedeltabaseoffset configuration to false.
-
-
diff --git a/third_party/git/Documentation/RelNotes/1.6.2.txt b/third_party/git/Documentation/RelNotes/1.6.2.txt
deleted file mode 100644
index 980adfb31546..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.2.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-GIT v1.6.2 Release Notes
-========================
-
-With the next major release, "git push" into a branch that is
-currently checked out will be refused by default.  You can choose
-what should happen upon such a push by setting the configuration
-variable receive.denyCurrentBranch in the receiving repository.
-
-To ease the transition plan, the receiving repository of such a
-push running this release will issue a big warning when the
-configuration variable is missing.  Please refer to:
-
-  http://git.or.cz/gitwiki/GitFaq#non-bare
-  https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/
-
-for more details on the reason why this change is needed and the
-transition plan.
-
-For a similar reason, "git push $there :$killed" to delete the branch
-$killed in a remote repository $there, if $killed branch is the current
-branch pointed at by its HEAD, gets a large warning.  You can choose what
-should happen upon such a push by setting the configuration variable
-receive.denyDeleteCurrent in the receiving repository.
-
-
-Updates since v1.6.1
---------------------
-
-(subsystems)
-
-* git-svn updates.
-
-* gitweb updates, including a new patch view and RSS/Atom feed
-  improvements.
-
-* (contrib/emacs) git.el now has commands for checking out a branch,
-  creating a branch, cherry-picking and reverting commits; vc-git.el
-  is not shipped with git anymore (it is part of official Emacs).
-
-(performance)
-
-* pack-objects autodetects the number of CPUs available and uses threaded
-  version.
-
-(usability, bells and whistles)
-
-* automatic typo correction works on aliases as well
-
-* @{-1} is a way to refer to the last branch you were on.  This is
-  accepted not only where an object name is expected, but anywhere
-  a branch name is expected and acts as if you typed the branch name.
-  E.g. "git branch --track mybranch @{-1}", "git merge @{-1}", and
-  "git rev-parse --symbolic-full-name @{-1}" would work as expected.
-
-* When refs/remotes/origin/HEAD points at a remote tracking branch that
-  has been pruned away, many git operations issued warning when they
-  internally enumerated the refs.  We now warn only when you say "origin"
-  to refer to that pruned branch.
-
-* The location of .mailmap file can be configured, and its file format was
-  enhanced to allow mapping an incorrect e-mail field as well.
-
-* "git add -p" learned 'g'oto action to jump directly to a hunk.
-
-* "git add -p" learned to find a hunk with given text with '/'.
-
-* "git add -p" optionally can be told to work with just the command letter
-  without Enter.
-
-* when "git am" stops upon a patch that does not apply, it shows the
-  title of the offending patch.
-
-* "git am --directory=<dir>" and "git am --reject" passes these options
-  to underlying "git apply".
-
-* "git am" learned --ignore-date option.
-
-* "git blame" aligns author names better when they are spelled in
-  non US-ASCII encoding.
-
-* "git clone" now makes its best effort when cloning from an empty
-  repository to set up configuration variables to refer to the remote
-  repository.
-
-* "git checkout -" is a shorthand for "git checkout @{-1}".
-
-* "git cherry" defaults to whatever the current branch is tracking (if
-  exists) when the <upstream> argument is not given.
-
-* "git cvsserver" can be told not to add extra "via git-CVS emulator" to
-  the commit log message it serves via gitcvs.commitmsgannotation
-  configuration.
-
-* "git cvsserver" learned to handle 'noop' command some CVS clients seem
-  to expect to work.
-
-* "git diff" learned a new option --inter-hunk-context to coalesce close
-  hunks together and show context between them.
-
-* The definition of what constitutes a word for "git diff --color-words"
-  can be customized via gitattributes, command line or a configuration.
-
-* "git diff" learned --patience to run "patience diff" algorithm.
-
-* "git filter-branch" learned --prune-empty option that discards commits
-  that do not change the contents.
-
-* "git fsck" now checks loose objects in alternate object stores, instead
-  of misreporting them as missing.
-
-* "git gc --prune" was resurrected to allow "git gc --no-prune" and
-  giving non-default expiration period e.g. "git gc --prune=now".
-
-* "git grep -w" and "git grep" for fixed strings have been optimized.
-
-* "git mergetool" learned -y(--no-prompt) option to disable prompting.
-
-* "git rebase -i" can transplant a history down to root to elsewhere
-  with --root option.
-
-* "git reset --merge" is a new mode that works similar to the way
-  "git checkout" switches branches, taking the local changes while
-  switching to another commit.
-
-* "git submodule update" learned --no-fetch option.
-
-* "git tag" learned --contains that works the same way as the same option
-  from "git branch".
-
-
-Fixes since v1.6.1
-------------------
-
-All of the fixes in v1.6.1.X maintenance series are included in this
-release, unless otherwise noted.
-
-Here are fixes that this release has, but have not been backported to
-v1.6.1.X series.
-
-* "git-add sub/file" when sub is a submodule incorrectly added the path to
-  the superproject.
-
-* "git bundle" did not exclude annotated tags even when a range given
-  from the command line wanted to.
-
-* "git filter-branch" unnecessarily refused to work when you had
-  checked out a different commit from what is recorded in the superproject
-  index in a submodule.
-
-* "git filter-branch" incorrectly tried to update a nonexistent work tree
-  at the end when it is run in a bare repository.
-
-* "git gc" did not work if your repository was created with an ancient git
-  and never had any pack files in it before.
-
-* "git mergetool" used to ignore autocrlf and other attributes
-  based content rewriting.
-
-* branch switching and merges had a silly bug that did not validate
-  the correct directory when making sure an existing subdirectory is
-  clean.
-
-* "git -p cmd" when cmd is not a built-in one left the display in funny state
-  when killed in the middle.
diff --git a/third_party/git/Documentation/RelNotes/1.6.3.1.txt b/third_party/git/Documentation/RelNotes/1.6.3.1.txt
deleted file mode 100644
index 2400b72ef7bc..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.3.1.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-GIT v1.6.3.1 Release Notes
-==========================
-
-Fixes since v1.6.3
-------------------
-
-* "git checkout -b new-branch" with a staged change in the index
-  incorrectly primed the in-index cache-tree, resulting a wrong tree
-  object to be written out of the index.  This is a grave regression
-  since the last 1.6.2.X maintenance release.
diff --git a/third_party/git/Documentation/RelNotes/1.6.3.2.txt b/third_party/git/Documentation/RelNotes/1.6.3.2.txt
deleted file mode 100644
index b2f3f0293c0d..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.3.2.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-GIT v1.6.3.2 Release Notes
-==========================
-
-Fixes since v1.6.3.1
---------------------
-
- * A few codepaths picked up the first few bytes from an sha1[] by
-   casting the (char *) pointer to (int *); GCC 4.4 did not like this,
-   and aborted compilation.
-
- * Some unlink(2) failures went undiagnosed.
-
- * The "recursive" merge strategy misbehaved when faced rename/delete
-   conflicts while coming up with an intermediate merge base.
-
- * The low-level merge algorithm did not handle a degenerate case of
-   merging a file with itself using itself as the common ancestor
-   gracefully.  It should produce the file itself, but instead
-   produced an empty result.
-
- * GIT_TRACE mechanism segfaulted when tracing a shell-quoted aliases.
-
- * OpenBSD also uses st_ctimspec in "struct stat", instead of "st_ctim".
-
- * With NO_CROSS_DIRECTORY_HARDLINKS, "make install" can be told not to
-   create hardlinks between $(gitexecdir)/git-$builtin_commands and
-   $(bindir)/git.
-
- * command completion code in bash did not reliably detect that we are
-   in a bare repository.
-
- * "git add ." in an empty directory complained that pathspec "." did not
-   match anything, which may be technically correct, but not useful.  We
-   silently make it a no-op now.
-
- * "git add -p" (and "patch" action in "git add -i") was broken when
-   the first hunk that adds a line at the top was split into two and
-   both halves are marked to be used.
-
- * "git blame path" misbehaved at the commit where path became file
-   from a directory with some files in it.
-
- * "git for-each-ref" had a segfaulting bug when dealing with a tag object
-   created by an ancient git.
-
- * "git format-patch -k" still added patch numbers if format.numbered
-   configuration was set.
-
- * "git grep --color ''" did not terminate.  The command also had
-   subtle bugs with its -w option.
-
- * http-push had a small use-after-free bug.
-
- * "git push" was converting OFS_DELTA pack representation into less
-   efficient REF_DELTA representation unconditionally upon transfer,
-   making the transferred data unnecessarily larger.
-
- * "git remote show origin" segfaulted when origin was still empty.
-
-Many other general usability updates around help text, diagnostic messages
-and documentation are included as well.
diff --git a/third_party/git/Documentation/RelNotes/1.6.3.3.txt b/third_party/git/Documentation/RelNotes/1.6.3.3.txt
deleted file mode 100644
index 1c28398bb640..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.3.3.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-GIT v1.6.3.3 Release Notes
-==========================
-
-Fixes since v1.6.3.2
---------------------
-
- * "git archive" running on Cygwin can get stuck in an infinite loop.
-
- * "git daemon" did not correctly parse the initial line that carries
-   virtual host request information.
-
- * "git diff --textconv" leaked memory badly when the textconv filter
-   errored out.
-
- * The built-in regular expressions to pick function names to put on
-   hunk header lines for java and objc were very inefficiently written.
-
- * in certain error situations git-fetch (and git-clone) on Windows didn't
-   detect connection abort and ended up waiting indefinitely.
-
- * import-tars script (in contrib) did not import symbolic links correctly.
-
- * http.c used CURLOPT_SSLKEY even on libcURL version 7.9.2, even though
-   it was only available starting 7.9.3.
-
- * low-level filelevel merge driver used return value from strdup()
-   without checking if we ran out of memory.
-
- * "git rebase -i" left stray closing parenthesis in its reflog message.
-
- * "git remote show" did not show all the URLs associated with the named
-   remote, even though "git remote -v" did.  Made them consistent by
-   making the former show all URLs.
-
- * "whitespace" attribute that is set was meant to detect all errors known
-   to git, but it told git to ignore trailing carriage-returns.
-
-Includes other documentation fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.6.3.4.txt b/third_party/git/Documentation/RelNotes/1.6.3.4.txt
deleted file mode 100644
index cad461bc76f7..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.3.4.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-GIT v1.6.3.4 Release Notes
-==========================
-
-Fixes since v1.6.3.3
---------------------
-
- * "git add --no-ignore-errors" did not override configured
-   add.ignore-errors configuration.
-
- * "git apply --whitespace=fix" did not fix trailing whitespace on an
-   incomplete line.
-
- * "git branch" opened too many commit objects unnecessarily.
-
- * "git checkout -f $commit" with a path that is a file (or a symlink) in
-   the work tree to a commit that has a directory at the path issued an
-   unnecessary error message.
-
- * "git diff -c/--cc" was very inefficient in coalescing the removed lines
-   shared between parents.
-
- * "git diff -c/--cc" showed removed lines at the beginning of a file
-   incorrectly.
-
- * "git remote show nickname" did not honor configured
-   remote.nickname.uploadpack when inspecting the branches at the remote.
-
- * "git request-pull" when talking to the terminal for a preview
-   showed some of the output in the pager.
-
- * "git request-pull start nickname [end]" did not honor configured
-   remote.nickname.uploadpack when it ran git-ls-remote against the remote
-   repository to learn the current tip of branches.
-
-Includes other documentation updates and minor fixes.
-
diff --git a/third_party/git/Documentation/RelNotes/1.6.3.txt b/third_party/git/Documentation/RelNotes/1.6.3.txt
deleted file mode 100644
index 4bcff945e019..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.3.txt
+++ /dev/null
@@ -1,182 +0,0 @@
-GIT v1.6.3 Release Notes
-========================
-
-With the next major release, "git push" into a branch that is
-currently checked out will be refused by default.  You can choose
-what should happen upon such a push by setting the configuration
-variable receive.denyCurrentBranch in the receiving repository.
-
-To ease the transition plan, the receiving repository of such a
-push running this release will issue a big warning when the
-configuration variable is missing.  Please refer to:
-
-  http://git.or.cz/gitwiki/GitFaq#non-bare
-  https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/
-
-for more details on the reason why this change is needed and the
-transition plan.
-
-For a similar reason, "git push $there :$killed" to delete the branch
-$killed in a remote repository $there, if $killed branch is the current
-branch pointed at by its HEAD, gets a large warning.  You can choose what
-should happen upon such a push by setting the configuration variable
-receive.denyDeleteCurrent in the receiving repository.
-
-When the user does not tell "git push" what to push, it has always
-pushed matching refs.  For some people it is unexpected, and a new
-configuration variable push.default has been introduced to allow
-changing a different default behaviour.  To advertise the new feature,
-a big warning is issued if this is not configured and a git push without
-arguments is attempted.
-
-
-Updates since v1.6.2
---------------------
-
-(subsystems)
-
-* various git-svn updates.
-
-* git-gui updates, including an update to Russian translation, and a
-  fix to an infinite loop when showing an empty diff.
-
-* gitk updates, including an update to Russian translation and improved Windows
-  support.
-
-(performance)
-
-* many uses of lstat(2) in the codepath for "git checkout" have been
-  optimized out.
-
-(usability, bells and whistles)
-
-* Boolean configuration variable yes/no can be written as on/off.
-
-* rsync:/path/to/repo can be used to run git over rsync for local
-  repositories.  It may not be useful in practice; meant primarily for
-  testing.
-
-* http transport learned to prompt and use password when fetching from or
-  pushing to http://user@host.xz/ URL.
-
-* (msysgit) progress output that is sent over the sideband protocol can
-  be handled appropriately in Windows console.
-
-* "--pretty=<style>" option to the log family of commands can now be
-  spelled as "--format=<style>".  In addition, --format=%formatstring
-  is a short-hand for --pretty=tformat:%formatstring.
-
-* "--oneline" is a synonym for "--pretty=oneline --abbrev-commit".
-
-* "--graph" to the "git log" family can draw the commit ancestry graph
-  in colors.
-
-* If you realize that you botched the patch when you are editing hunks
-  with the 'edit' action in git-add -i/-p, you can abort the editor to
-  tell git not to apply it.
-
-* @{-1} is a new way to refer to the last branch you were on introduced in
-  1.6.2, but the initial implementation did not teach this to a few
-  commands.  Now the syntax works with "branch -m @{-1} newname".
-
-* git-archive learned --output=<file> option.
-
-* git-archive takes attributes from the tree being archived; strictly
-  speaking, this is an incompatible behaviour change, but is a good one.
-  Use --worktree-attributes option to allow it to read attributes from
-  the work tree as before (deprecated git-tar tree command always reads
-  attributes from the work tree).
-
-* git-bisect shows not just the number of remaining commits whose goodness
-  is unknown, but also shows the estimated number of remaining rounds.
-
-* You can give --date=<format> option to git-blame.
-
-* "git-branch -r" shows HEAD symref that points at a remote branch in
-  interest of each tracked remote repository.
-
-* "git-branch -v -v" is a new way to get list of names for branches and the
-  "upstream" branch for them.
-
-* git-config learned -e option to open an editor to edit the config file
-  directly.
-
-* git-clone runs post-checkout hook when run without --no-checkout.
-
-* git-difftool is now part of the officially supported command, primarily
-  maintained by David Aguilar.
-
-* git-for-each-ref learned a new "upstream" token.
-
-* git-format-patch can be told to use attachment with a new configuration,
-  format.attach.
-
-* git-format-patch can be told to produce deep or shallow message threads.
-
-* git-format-patch can be told to always add sign-off with a configuration
-  variable.
-
-* git-format-patch learned format.headers configuration to add extra
-  header fields to the output.  This behaviour is similar to the existing
-  --add-header=<header> option of the command.
-
-* git-format-patch gives human readable names to the attached files, when
-  told to send patches as attachments.
-
-* git-grep learned to highlight the found substrings in color.
-
-* git-imap-send learned to work around Thunderbird's inability to easily
-  disable format=flowed with a new configuration, imap.preformattedHTML.
-
-* git-rebase can be told to rebase the series even if your branch is a
-  descendant of the commit you are rebasing onto with --force-rebase
-  option.
-
-* git-rebase can be told to report diffstat with the --stat option.
-
-* Output from git-remote command has been vastly improved.
-
-* "git remote update --prune $remote" updates from the named remote and
-  then prunes stale tracking branches.
-
-* git-send-email learned --confirm option to review the Cc: list before
-  sending the messages out.
-
-(developers)
-
-* Test scripts can be run under valgrind.
-
-* Test scripts can be run with installed git.
-
-* Makefile learned 'coverage' option to run the test suites with
-  coverage tracking enabled.
-
-* Building the manpages with docbook-xsl between 1.69.1 and 1.71.1 now
-  requires setting DOCBOOK_SUPPRESS_SP to work around a docbook-xsl bug.
-  This workaround used to be enabled by default, but causes problems
-  with newer versions of docbook-xsl.  In addition, there are a few more
-  knobs you can tweak to work around issues with various versions of the
-  docbook-xsl package.  See comments in Documentation/Makefile for details.
-
-* Support for building and testing a subset of git on a system without a
-  working perl has been improved.
-
-
-Fixes since v1.6.2
-------------------
-
-All of the fixes in v1.6.2.X maintenance series are included in this
-release, unless otherwise noted.
-
-Here are fixes that this release has, but have not been backported to
-v1.6.2.X series.
-
-* "git-apply" rejected a patch that swaps two files (i.e. renames A to B
-  and B to A at the same time).  May need to be backported by cherry
-  picking d8c81df and then 7fac0ee).
-
-* The initial checkout did not read the attributes from the .gitattribute
-  file that is being checked out.
-
-* git-gc spent excessive amount of time to decide if an object appears
-  in a locally existing pack (if needed, backport by merging 69e020a).
diff --git a/third_party/git/Documentation/RelNotes/1.6.4.1.txt b/third_party/git/Documentation/RelNotes/1.6.4.1.txt
deleted file mode 100644
index e439e45b96a6..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.4.1.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-GIT v1.6.4.1 Release Notes
-==========================
-
-Fixes since v1.6.4
-------------------
-
- * An unquoted value in the configuration file, when it contains more than
-   one whitespaces in a row, got them replaced with a single space.
-
- * "git am" used to accept a single piece of e-mail per file (not a mbox)
-   as its input, but multiple input format support in v1.6.4 broke it.
-   Apparently many people have been depending on this feature.
-
- * The short help text for "git filter-branch" command was a single long
-   line, wrapped by terminals, and was hard to read.
-
- * The "recursive" strategy of "git merge" segfaulted when a merge has
-   more than one merge-bases, and merging of these merge-bases involves
-   a rename/rename or a rename/add conflict.
-
- * "git pull --rebase" did not use the right fork point when the
-   repository has already fetched from the upstream that rewinds the
-   branch it is based on in an earlier fetch.
-
- * Explain the concept of fast-forward more fully in "git push"
-   documentation, and hint to refer to it from an error message when the
-   command refuses an update to protect the user.
-
- * The default value for pack.deltacachesize, used by "git repack", is now
-   256M, instead of unbounded.  Otherwise a repack of a moderately sized
-   repository would needlessly eat into swap.
-
- * Document how "git repack" (hence "git gc") interacts with a repository
-   that borrows its objects from other repositories (e.g. ones created by
-   "git clone -s").
-
- * "git show" on an annotated tag lacked a delimiting blank line between
-   the tag itself and the contents of the object it tags.
-
- * "git verify-pack -v" erroneously reported number of objects with too
-   deep delta depths as "chain length 0" objects.
-
- * Long names of authors and committers outside US-ASCII were sometimes
-   incorrectly shown in "gitweb".
-
-Other minor documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.4.2.txt b/third_party/git/Documentation/RelNotes/1.6.4.2.txt
deleted file mode 100644
index c11ec0115c64..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.4.2.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-GIT v1.6.4.2 Release Notes
-==========================
-
-Fixes since v1.6.4.1
---------------------
-
-* --date=relative output between 1 and 5 years ago rounded the number of
-    years when saying X years Y months ago, instead of rounding it down.
-
-* "git add -p" did not handle changes in executable bits correctly
-  (a regression around 1.6.3).
-
-* "git apply" did not honor GNU diff's convention to mark the creation/deletion
-  event with UNIX epoch timestamp on missing side.
-
-* "git checkout" incorrectly removed files in a directory pointed by a
-  symbolic link during a branch switch that replaces a directory with
-  a symbolic link.
-
-* "git clean -d -f" happily descended into a subdirectory that is managed by a
-  separate git repository.  It now requires two -f options for safety.
-
-* "git fetch/push" over http transports had two rather grave bugs.
-
-* "git format-patch --cover-letter" did not prepare the cover letter file
-  for use with non-ASCII strings when there are the series contributors with
-  non-ASCII names.
-
-* "git pull origin branch" and "git fetch origin && git merge origin/branch"
-  left different merge messages in the resulting commit.
-
-Other minor documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.4.3.txt b/third_party/git/Documentation/RelNotes/1.6.4.3.txt
deleted file mode 100644
index 5643e6537de5..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.4.3.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-GIT v1.6.4.3 Release Notes
-==========================
-
-Fixes since v1.6.4.2
---------------------
-
-* "git clone" from an empty repository gave unnecessary error message,
-  even though it did everything else correctly.
-
-* "git cvsserver" invoked git commands via "git-foo" style, which has long
-  been deprecated.
-
-* "git fetch" and "git clone" had an extra sanity check to verify the
-  presence of the corresponding *.pack file before downloading *.idx
-  file by issuing a HEAD request.  Github server however sometimes
-  gave 500 (Internal server error) response to HEAD even if a GET
-  request for *.pack file to the same URL would have succeeded, and broke
-  clone over HTTP from some of their repositories.  As a workaround, this
-  verification has been removed (as it is not absolutely necessary).
-
-* "git grep" did not like relative pathname to refer outside the current
-  directory when run from a subdirectory.
-
-* an error message from "git push" was formatted in a very ugly way.
-
-* "git svn" did not quote the subversion user name correctly when
-  running its author-prog helper program.
-
-Other minor documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.4.4.txt b/third_party/git/Documentation/RelNotes/1.6.4.4.txt
deleted file mode 100644
index 0ead45fc727e..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.4.4.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-GIT v1.6.4.4 Release Notes
-==========================
-
-Fixes since v1.6.4.4
---------------------
-
-* The workaround for Github server that sometimes gave 500 (Internal server
-  error) response to HEAD requests in 1.6.4.3 introduced a regression that
-  caused re-fetching projects over http to segfault in certain cases due
-  to uninitialized pointer being freed.
-
-* "git pull" on an unborn branch used to consider anything in the work
-  tree and the index discardable.
-
-* "git diff -b/w" did not work well on the incomplete line at the end of
-  the file, due to an incorrect hashing of lines in the low-level xdiff
-  routines.
-
-* "git checkout-index --prefix=$somewhere" used to work when $somewhere is
-  a symbolic link to a directory elsewhere, but v1.6.4.2 broke it.
-
-* "git unpack-objects --strict", invoked when receive.fsckobjects
-  configuration is set in the receiving repository of "git push", did not
-  properly check the objects, especially the submodule links, it received.
-
-Other minor documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.4.5.txt b/third_party/git/Documentation/RelNotes/1.6.4.5.txt
deleted file mode 100644
index eb6307dcbb4a..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.4.5.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Git v1.6.4.5 Release Notes
-==========================
-
-Fixes since v1.6.4.4
---------------------
-
- * Simplified base85 implementation.
-
- * An overlong line after ".gitdir: " in a git file caused out of bounds
-   access to an array on the stack.
-
- * "git count-objects" did not handle packs larger than 4G.
-
- * "git rev-parse --parseopt --stop-at-non-option" did not stop at non option
-   when --keep-dashdash was in effect.
-
- * "gitweb" can sometimes be tricked into parrotting a filename argument
-   given in a request without properly quoting.
-
-Other minor fixes and documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.4.txt b/third_party/git/Documentation/RelNotes/1.6.4.txt
deleted file mode 100644
index a2a34b43a75d..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.4.txt
+++ /dev/null
@@ -1,147 +0,0 @@
-GIT v1.6.4 Release Notes
-========================
-
-With the next major release, "git push" into a branch that is
-currently checked out will be refused by default.  You can choose
-what should happen upon such a push by setting the configuration
-variable receive.denyCurrentBranch in the receiving repository.
-
-To ease the transition plan, the receiving repository of such a
-push running this release will issue a big warning when the
-configuration variable is missing.  Please refer to:
-
-  http://git.or.cz/gitwiki/GitFaq#non-bare
-  https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/
-
-for more details on the reason why this change is needed and the
-transition plan.
-
-For a similar reason, "git push $there :$killed" to delete the branch
-$killed in a remote repository $there, if $killed branch is the current
-branch pointed at by its HEAD, gets a large warning.  You can choose what
-should happen upon such a push by setting the configuration variable
-receive.denyDeleteCurrent in the receiving repository.
-
-
-Updates since v1.6.3
---------------------
-
-(subsystems)
-
- * gitweb Perl style clean-up.
-
- * git-svn updates, including a new --authors-prog option to map author
-   names by invoking an external program, 'git svn reset' to unwind
-   'git svn fetch', support for more than one branches, documenting
-   of the useful --minimize-url feature, new "git svn gc" command, etc.
-
-(portability)
-
- * We feed iconv with "UTF-8" instead of "utf8"; the former is
-   understood more widely.  Similarly updated test scripts to use
-   encoding names more widely understood (e.g. use "ISO8859-1" instead
-   of "ISO-8859-1").
-
- * Various portability fixes/workarounds for different vintages of
-   SunOS, IRIX, and Windows.
-
- * Git-over-ssh transport on Windows supports PuTTY plink and TortoisePlink.
-
-(performance)
-
- * Many repeated use of lstat() are optimized out in "checkout" codepath.
-
- * git-status (and underlying git-diff-index --cached) are optimized
-   to take advantage of cache-tree information in the index.
-
-(usability, bells and whistles)
-
- * "git add --edit" lets users edit the whole patch text to fine-tune what
-   is added to the index.
-
- * "git am" accepts StGIT series file as its input.
-
- * "git bisect skip" skips to a more randomly chosen place in the hope
-   to avoid testing a commit that is too close to a commit that is
-   already known to be untestable.
-
- * "git cvsexportcommit" learned -k option to stop CVS keywords expansion
-
- * "git fast-export" learned to handle history simplification more
-   gracefully.
-
- * "git fast-export" learned an option --tag-of-filtered-object to handle
-   dangling tags resulting from history simplification more usefully.
-
- * "git grep" learned -p option to show the location of the match using the
-   same context hunk marker "git diff" uses.
-
- * https transport can optionally be told that the used client
-   certificate is password protected, in which case it asks the
-   password only once.
-
- * "git imap-send" is IPv6 aware.
-
- * "git log --graph" draws graphs more compactly by using horizontal lines
-   when able.
-
- * "git log --decorate" shows shorter refnames by stripping well-known
-   refs/* prefix.
-
- * "git push $name" honors remote.$name.pushurl if present before
-   using remote.$name.url.  In other words, the URL used for fetching
-   and pushing can be different.
-
- * "git send-email" understands quoted aliases in .mailrc files (might
-   have to be backported to 1.6.3.X).
-
- * "git send-email" can fetch the sender address from the configuration
-   variable "sendmail.from" (and "sendmail.<identity>.from").
-
- * "git show-branch" can color its output.
-
- * "add" and "update" subcommands to "git submodule" learned --reference
-   option to use local clone with references.
-
- * "git submodule update" learned --rebase option to update checked
-   out submodules by rebasing the local changes.
-
- * "gitweb" can optionally use gravatar to adorn author/committer names.
-
-(developers)
-
- * A major part of the "git bisect" wrapper has moved to C.
-
- * Formatting with the new version of AsciiDoc 8.4.1 is now supported.
-
-Fixes since v1.6.3
-------------------
-
-All of the fixes in v1.6.3.X maintenance series are included in this
-release, unless otherwise noted.
-
-Here are fixes that this release has, but have not been backported to
-v1.6.3.X series.
-
- * "git diff-tree -r -t" used to omit new or removed directories from
-   the output.  df533f3 (diff-tree -r -t: include added/removed
-   directories in the output, 2009-06-13) may need to be cherry-picked
-   to backport this fix.
-
- * The way Git.pm sets up a Repository object was not friendly to callers
-   that chdir around.  It now internally records the repository location
-   as an absolute path when autodetected.
-
- * Removing a section with "git config --remove-section", when its
-   section header has a variable definition on the same line, lost
-   that variable definition.
-
- * "git rebase -p --onto" used to always leave side branches of a merge
-   intact, even when both branches are subject to rewriting.
-
- * "git repack" used to faithfully follow grafts and considered true
-   parents recorded in the commit object unreachable from the commit.
-   After such a repacking, you cannot remove grafts without corrupting
-   the repository.
-
- * "git send-email" did not detect erroneous loops in alias expansion.
diff --git a/third_party/git/Documentation/RelNotes/1.6.5.1.txt b/third_party/git/Documentation/RelNotes/1.6.5.1.txt
deleted file mode 100644
index 309ba181b27e..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.5.1.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-GIT v1.6.5.1 Release Notes
-==========================
-
-Fixes since v1.6.5
-------------------
-
- * An corrupt pack could make codepath to read objects into an
-   infinite loop.
-
- * Download throughput display was always shown in KiB/s but on fast links
-   it is more appropriate to show it in MiB/s.
-
- * "git grep -f filename" used uninitialized variable and segfaulted.
-
- * "git clone -b branch" gave a wrong commit object name to post-checkout
-   hook.
-
- * "git pull" over http did not work on msys.
-
-Other minor documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.5.2.txt b/third_party/git/Documentation/RelNotes/1.6.5.2.txt
deleted file mode 100644
index aa7ccce3a23b..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.5.2.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-GIT v1.6.5.2 Release Notes
-==========================
-
-Fixes since v1.6.5.1
---------------------
-
- * Installation of templates triggered a bug in busybox when using tar
-   implementation from it.
-
- * "git add -i" incorrectly ignored paths that are already in the index
-   if they matched .gitignore patterns.
-
- * "git describe --always" should have produced some output even there
-   were no tags in the repository, but it didn't.
-
- * "git ls-files" when showing tracked files incorrectly paid attention
-   to the exclude patterns.
-
-Other minor documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.5.3.txt b/third_party/git/Documentation/RelNotes/1.6.5.3.txt
deleted file mode 100644
index b2fad1b22e0b..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.5.3.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-Git v1.6.5.3 Release Notes
-==========================
-
-Fixes since v1.6.5.2
---------------------
-
- * info/grafts file didn't ignore trailing CR at the end of lines.
-
- * Packages generated on newer FC were unreadable by older versions of
-   RPM as the new default is to use stronger hash.
-
- * output from "git blame" was unreadable when the file ended in an
-   incomplete line.
-
- * "git add -i/-p" didn't handle deletion of empty files correctly.
-
- * "git clone" takes up to two parameters, but did not complain when
-   given more arguments than necessary and silently ignored them.
-
- * "git cvsimport" did not read files given as command line arguments
-   correctly when it is run from a subdirectory.
-
- * "git diff --color-words -U0" didn't work correctly.
-
- * The handling of blank lines at the end of file by "git diff/apply
-   --whitespace" was inconsistent with the other kinds of errors.
-   They are now colored, warned against, and fixed the same way as others.
-
- * There was no way to allow blank lines at the end of file without
-   allowing extra blanks at the end of lines.  You can use blank-at-eof
-   and blank-at-eol whitespace error class to specify them separately.
-   The old trailing-space error class is now a short-hand to set both.
-
- * "-p" option to "git format-patch" was supposed to suppress diffstat
-   generation, but it was broken since 1.6.1.
-
- * "git imap-send" did not compile cleanly with newer OpenSSL.
-
- * "git help -a" outside of a git repository was broken.
-
- * "git ls-files -i" was supposed to be inverse of "git ls-files" without -i
-   with respect to exclude patterns, but it was broken since 1.6.5.2.
-
- * "git ls-remote" outside of a git repository over http was broken.
-
- * "git rebase -i" gave bogus error message when the command word was
-   misspelled.
-
- * "git receive-pack" that is run in response to "git push" did not run
-   garbage collection nor update-server-info, but in larger hosting sites,
-   these almost always need to be run.  To help site administrators, the
-   command now runs "gc --auto" and "u-s-i" by setting receive.autogc
-   and receive.updateserverinfo configuration variables, respectively.
-
- * Release notes spelled the package name with incorrect capitalization.
-
- * "gitweb" did not escape non-ascii characters correctly in the URL.
-
- * "gitweb" showed "patch" link even for merge commits.
-
- * "gitweb" showed incorrect links for blob line numbers in pathinfo mode.
-
-Other minor documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.5.4.txt b/third_party/git/Documentation/RelNotes/1.6.5.4.txt
deleted file mode 100644
index 344333de66e5..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.5.4.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Git v1.6.5.4 Release Notes
-==========================
-
-Fixes since v1.6.5.3
---------------------
-
- * "git help" (without argument) used to check if you are in a directory
-   under git control. There was no breakage in behaviour per-se, but this
-   was unnecessary.
-
- * "git prune-packed" gave progress output even when its standard error is
-   not connected to a terminal; this caused cron jobs that run it to
-   produce cruft.
-
- * "git pack-objects --all-progress" is an option to ask progress output
-   from write-object phase _if_ progress output were to be produced, and
-   shouldn't have forced the progress output.
-
- * "git apply -p<n> --directory=<elsewhere>" did not work well for a
-   non-default value of n.
-
- * "git merge foo HEAD" was misparsed as an old-style invocation of the
-   command and produced a confusing error message.  As it does not specify
-   any other branch to merge, it shouldn't be mistaken as such.  We will
-   remove the old style "git merge <message> HEAD <commit>..."  syntax in
-   future versions, but not in this release,
-
- * "git merge -m <message> <branch>..." added the standard merge message
-   on its own after user-supplied message, which should have overridden the
-   standard one.
-
-Other minor documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.5.5.txt b/third_party/git/Documentation/RelNotes/1.6.5.5.txt
deleted file mode 100644
index ecfc57d87563..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.5.5.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-Git v1.6.5.5 Release Notes
-==========================
-
-Fixes since v1.6.5.4
---------------------
-
- * Manual pages can be formatted with older xmlto again.
-
- * GREP_OPTIONS exported from user's environment could have broken
-   our scripted commands.
-
- * In configuration files, a few variables that name paths can begin with
-   ~/ and ~username/ and they are expanded as expected.  This is not a
-   bugfix but 1.6.6 will have this and without backporting users cannot
-   easily use the same ~/.gitconfig across versions.
-
- * "git diff -B -M" did the same computation to hash lines of contents
-   twice, and held onto memory after it has used the data in it
-   unnecessarily before it freed.
-
- * "git diff -B" and "git diff --dirstat" was not counting newly added
-   contents correctly.
-
- * "git format-patch revisions... -- path" issued an incorrect error
-   message that suggested to use "--" on the command line when path
-   does not exist in the current work tree (it is a separate matter if
-   it makes sense to limit format-patch with pathspecs like that
-   without using the --full-diff option).
-
- * "git grep -F -i StRiNg" did not work as expected.
-
- * Enumeration of available merge strategies iterated over the list of
-   commands in a wrong way, sometimes producing an incorrect result.
-
- * "git shortlog" did not honor the "encoding" header embedded in the
-   commit object like "git log" did.
-
- * Reading progress messages that come from the remote side while running
-   "git pull" is given precedence over reading the actual pack data to
-   prevent garbled progress message on the user's terminal.
-
- * "git rebase" got confused when the log message began with certain
-   strings that looked like Subject:, Date: or From: header.
-
- * "git reset" accidentally run in .git/ directory checked out the
-   work tree contents in there.
-
-
-Other minor documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.5.6.txt b/third_party/git/Documentation/RelNotes/1.6.5.6.txt
deleted file mode 100644
index a9eaf76f62e3..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.5.6.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Git v1.6.5.6 Release Notes
-==========================
-
-Fixes since v1.6.5.5
---------------------
-
- * "git add -p" had a regression since v1.6.5.3 that broke deletion of
-   non-empty files.
-
- * "git archive -o o.zip -- Makefile" produced an archive in o.zip
-   but in POSIX tar format.
-
- * Error message given to "git pull --rebase" when the user didn't give
-   enough clue as to what branch to integrate with still talked about
-   "merging with" the branch.
-
- * Error messages given by "git merge" when the merge resulted in a
-   fast-forward still were in plumbing lingo, even though in v1.6.5
-   we reworded messages in other cases.
-
- * The post-upload-hook run by upload-pack in response to "git fetch" has
-   been removed, due to security concerns (the hook first appeared in
-   1.6.5).
diff --git a/third_party/git/Documentation/RelNotes/1.6.5.7.txt b/third_party/git/Documentation/RelNotes/1.6.5.7.txt
deleted file mode 100644
index dc5302c21cd2..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.5.7.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Git v1.6.5.7 Release Notes
-==========================
-
-Fixes since v1.6.5.6
---------------------
-
-* If a user specifies a color for a <slot> (i.e. a class of things to show
-  in a particular color) that is known only by newer versions of git
-  (e.g. "color.diff.func" was recently added for upcoming 1.6.6 release),
-  an older version of git should just ignore them.  Instead we diagnosed
-  it as an error.
-
-* With help.autocorrect set to non-zero value, the logic to guess typos
-  in the subcommand name misfired and ran a random nonsense command.
-
-* If a command is run with an absolute path as a pathspec inside a bare
-  repository, e.g. "rev-list HEAD -- /home", the code tried to run
-  strlen() on NULL, which is the result of get_git_work_tree(), and
-  segfaulted.
diff --git a/third_party/git/Documentation/RelNotes/1.6.5.8.txt b/third_party/git/Documentation/RelNotes/1.6.5.8.txt
deleted file mode 100644
index 8b24bebb966c..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.5.8.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-Git v1.6.5.8 Release Notes
-==========================
-
-Fixes since v1.6.5.7
---------------------
-
-* "git count-objects" did not handle packfiles that are bigger than 4G on
-  platforms with 32-bit off_t.
-
-* "git rebase -i" did not abort cleanly if it failed to launch the editor.
-
-* "git blame" did not work well when commit lacked the author name.
-
-* "git fast-import" choked when handling a tag that points at an object
-  that is not a commit.
-
-* "git reset --hard" did not work correctly when GIT_WORK_TREE environment
-  variable is used to point at the root of the true work tree.
-
-* "git grep" fed a buffer that is not NUL-terminated to underlying
-  regexec().
-
-* "git checkout -m other" while on a branch that does not have any commit
-  segfaulted, instead of failing.
-
-* "git branch -a other" should have diagnosed the command as an error.
-
-Other minor documentation updates are also included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.5.9.txt b/third_party/git/Documentation/RelNotes/1.6.5.9.txt
deleted file mode 100644
index bb469dd71e55..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.5.9.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Git v1.6.5.9 Release Notes
-==========================
-
-Fixes since v1.6.5.8
---------------------
-
- * An overlong line after ".gitdir: " in a git file caused out of bounds
-   access to an array on the stack.
-
- * "git blame -L $start,$end" segfaulted when too large $start was given.
-
- * "git rev-parse --parseopt --stop-at-non-option" did not stop at non option
-   when --keep-dashdash was in effect.
-
- * "gitweb" can sometimes be tricked into parrotting a filename argument
-   given in a request without properly quoting.
-
-Other minor fixes and documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.5.txt b/third_party/git/Documentation/RelNotes/1.6.5.txt
deleted file mode 100644
index 6c7f7da7eb9a..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.5.txt
+++ /dev/null
@@ -1,169 +0,0 @@
-GIT v1.6.5 Release Notes
-========================
-
-In git 1.7.0, which was planned to be the release after 1.6.5, "git
-push" into a branch that is currently checked out will be refused by
-default.
-
-You can choose what should happen upon such a push by setting the
-configuration variable receive.denyCurrentBranch in the receiving
-repository.
-
-Also, "git push $there :$killed" to delete the branch $killed in a remote
-repository $there, when $killed branch is the current branch pointed at by
-its HEAD, will be refused by default.
-
-You can choose what should happen upon such a push by setting the
-configuration variable receive.denyDeleteCurrent in the receiving
-repository.
-
-To ease the transition plan, the receiving repository of such a
-push running this release will issue a big warning when the
-configuration variable is missing.  Please refer to:
-
-  http://git.or.cz/gitwiki/GitFaq#non-bare
-  https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/
-
-for more details on the reason why this change is needed and the
-transition plan.
-
-Updates since v1.6.4
---------------------
-
-(subsystems)
-
- * various updates to gitk, git-svn and gitweb.
-
-(portability)
-
- * more improvements on mingw port.
-
- * mingw will also give FRSX as the default value for the LESS
-   environment variable when the user does not have one.
-
- * initial support to compile git on Windows with MSVC.
-
-(performance)
-
- * On major platforms, the system can be compiled to use with Linus's
-   block-sha1 implementation of the SHA-1 hash algorithm, which
-   outperforms the default fallback implementation we borrowed from
-   Mozilla.
-
- * Unnecessary inefficiency in deepening of a shallow repository has
-   been removed.
-
- * "git clone" does not grab objects that it does not need (i.e.
-   referenced only from refs outside refs/heads and refs/tags
-   hierarchy) anymore.
-
- * The "git" main binary used to link with libcurl, which then dragged
-   in a large number of external libraries.  When using basic plumbing
-   commands in scripts, this unnecessarily slowed things down.  We now
-   implement http/https/ftp transfer as a separate executable as we
-   used to.
-
- * "git clone" run locally hardlinks or copies the files in .git/ to
-   newly created repository.  It used to give new mtime to copied files,
-   but this delayed garbage collection to trigger unnecessarily in the
-   cloned repository.  We now preserve mtime for these files to avoid
-   this issue.
-
-(usability, bells and whistles)
-
- * Human writable date format to various options, e.g. --since=yesterday,
-   master@{2000.09.17}, are taught to infer some omitted input properly.
-
- * A few programs gave verbose "advice" messages to help uninitiated
-   people when issuing error messages.  An infrastructure to allow
-   users to squelch them has been introduced, and a few such messages
-   can be silenced now.
-
- * refs/replace/ hierarchy is designed to be usable as a replacement
-   of the "grafts" mechanism, with the added advantage that it can be
-   transferred across repositories.
-
- * "git am" learned to optionally ignore whitespace differences.
-
- * "git am" handles input e-mail files that has CRLF line endings sensibly.
-
- * "git am" learned "--scissors" option to allow you to discard early part
-   of an incoming e-mail.
-
- * "git archive -o output.zip" works without being told what format to
-   use with an explicit "--format=zip".option.
-
- * "git checkout", "git reset" and "git stash" learned to pick and
-   choose to use selected changes you made, similar to "git add -p".
-
- * "git clone" learned a "-b" option to pick a HEAD to check out
-   different from the remote's default branch.
-
- * "git clone" learned --recursive option.
-
- * "git clone" from a local repository on a different filesystem used to
-   copy individual object files without preserving the old timestamp, giving
-   them extra lifetime in the new repository until they gc'ed.
-
- * "git commit --dry-run $args" is a new recommended way to ask "what would
-   happen if I try to commit with these arguments."
-
- * "git commit --dry-run" and "git status" shows conflicted paths in a
-   separate section to make them easier to spot during a merge.
-
- * "git cvsimport" now supports password-protected pserver access even
-   when the password is not taken from ~/.cvspass file.
-
- * "git fast-export" learned --no-data option that can be useful when
-   reordering commits and trees without touching the contents of
-   blobs.
-
- * "git fast-import" has a pair of new front-end in contrib/ area.
-
- * "git init" learned to mkdir/chdir into a directory when given an
-   extra argument (i.e. "git init this").
-
- * "git instaweb" optionally can use mongoose as the web server.
-
- * "git log --decorate" can optionally be told with --decorate=full to
-   give the reference name in full.
-
- * "git merge" issued an unnecessarily scary message when it detected
-   that the merge may have to touch the path that the user has local
-   uncommitted changes to. The message has been reworded to make it
-   clear that the command aborted, without doing any harm.
-
- * "git push" can be told to be --quiet.
-
- * "git push" pays attention to url.$base.pushInsteadOf and uses a URL
-   that is derived from the URL used for fetching.
-
- * informational output from "git reset" that lists the locally modified
-   paths is made consistent with that of "git checkout $another_branch".
-
- * "git submodule" learned to give submodule name to scripts run with
-   "foreach" subcommand.
-
- * various subcommands to "git submodule" learned --recursive option.
-
- * "git submodule summary" learned --files option to compare the work
-   tree vs the commit bound at submodule path, instead of comparing
-   the index.
-
- * "git upload-pack", which is the server side support for "git clone" and
-   "git fetch", can call a new post-upload-pack hook for statistics purposes.
-
-(developers)
-
- * With GIT_TEST_OPTS="--root=/p/a/t/h", tests can be run outside the
-   source directory; using tmpfs may give faster turnaround.
-
- * With NO_PERL_MAKEMAKER set, DESTDIR= is now honoured, so you can
-   build for one location, and install into another location to tar it
-   up.
-
-Fixes since v1.6.4
-------------------
-
-All of the fixes in v1.6.4.X maintenance series are included in this
-release, unless otherwise noted.
diff --git a/third_party/git/Documentation/RelNotes/1.6.6.1.txt b/third_party/git/Documentation/RelNotes/1.6.6.1.txt
deleted file mode 100644
index f1d0a4ae2d63..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.6.1.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-Git v1.6.6.1 Release Notes
-==========================
-
-Fixes since v1.6.6
-------------------
-
- * "git blame" did not work well when commit lacked the author name.
-
- * "git branch -a name" wasn't diagnosed as an error.
-
- * "git count-objects" did not handle packfiles that are bigger than 4G on
-   platforms with 32-bit off_t.
-
- * "git checkout -m other" while on a branch that does not have any commit
-   segfaulted, instead of failing.
-
- * "git fast-import" choked when fed a tag that do not point at a
-   commit.
-
- * "git grep" finding from work tree files could have fed garbage to
-   the underlying regexec(3).
-
- * "git grep -L" didn't show empty files (they should never match, and
-   they should always appear in -L output as unmatching).
-
- * "git rebase -i" did not abort cleanly if it failed to launch the editor.
-
- * "git reset --hard" did not work correctly when GIT_WORK_TREE environment
-   variable is used to point at the root of the true work tree.
-
- * http-backend was not listed in the command list in the documentation.
-
- * Building on FreeBSD (both 7 and 8) needs OLD_ICONV set in the Makefile
-
- * "git checkout -m some-branch" while on an unborn branch crashed.
-
-Other minor documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.6.2.txt b/third_party/git/Documentation/RelNotes/1.6.6.2.txt
deleted file mode 100644
index 4eaddc0106e5..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.6.2.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-Git v1.6.6.2 Release Notes
-==========================
-
-Fixes since v1.6.6.1
---------------------
-
- * recursive merge didn't correctly diagnose its own programming errors,
-   and instead caused the caller to segfault.
-
- * The new "smart http" aware clients probed the web servers to see if
-   they support smart http, but did not fall back to dumb http transport
-   correctly with some servers.
-
- * Time based reflog syntax e.g. "@{yesterday}" didn't diagnose a misspelled
-   time specification and instead assumed "@{now}".
-
- * "git archive HEAD -- no-such-directory" produced an empty archive
-   without complaining.
-
- * "git blame -L start,end -- file" misbehaved when given a start that is
-   larger than the number of lines in the file.
-
- * "git checkout -m" didn't correctly call custom merge backend supplied
-   by the end user.
-
- * "git config -f <file>" misbehaved when run from a subdirectory.
-
- * "git cvsserver" didn't like having regex metacharacters (e.g. '+') in
-   CVSROOT environment.
-
- * "git fast-import" did not correctly handle large blobs that may
-   bust the pack size limit.
-
- * "git gui" is supposed to work even when launched from inside a .git
-   directory.
-
- * "git gui" misbehaved when applying a hunk that ends with deletion.
-
- * "git imap-send" did not honor imap.preformattedHTML as documented.
-
- * "git log" family incorrectly showed the commit notes unconditionally by
-   mistake, which was especially irritating when running "git log --oneline".
-
- * "git status" shouldn't require an write access to the repository.
-
-Other minor documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.6.3.txt b/third_party/git/Documentation/RelNotes/1.6.6.3.txt
deleted file mode 100644
index 11483acaec55..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.6.3.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Git v1.6.6.3 Release Notes
-==========================
-
-Fixes since v1.6.6.2
---------------------
-
- * An overlong line after ".gitdir: " in a git file caused out of bounds
-   access to an array on the stack.
-
- * "git bisect $path" did not correctly diagnose an error when given a
-   non-existent path.
-
- * "git blame -L $start,$end" segfaulted when too large $start was given.
-
- * "git imap-send" did not write draft box with CRLF line endings per RFC.
-
- * "git rev-parse --parseopt --stop-at-non-option" did not stop at non option
-   when --keep-dashdash was in effect.
-
- * "gitweb" can sometimes be tricked into parrotting a filename argument
-   given in a request without properly quoting.
-
-Other minor fixes and documentation updates are included.
diff --git a/third_party/git/Documentation/RelNotes/1.6.6.txt b/third_party/git/Documentation/RelNotes/1.6.6.txt
deleted file mode 100644
index 3ed1e0143374..000000000000
--- a/third_party/git/Documentation/RelNotes/1.6.6.txt
+++ /dev/null
@@ -1,224 +0,0 @@
-Git v1.6.6 Release Notes
-========================
-
-Notes on behaviour change
--------------------------
-
- * In this release, "git fsck" defaults to "git fsck --full" and
-   checks packfiles, and because of this it will take much longer to
-   complete than before.  If you prefer a quicker check only on loose
-   objects (the old default), you can say "git fsck --no-full".  This
-   has been supported by 1.5.4 and newer versions of git, so it is
-   safe to write it in your script even if you use slightly older git
-   on some of your machines.
-
-Preparing yourselves for compatibility issues in 1.7.0
-------------------------------------------------------
-
-In git 1.7.0, which is planned to be the release after 1.6.6, there will
-be a handful of behaviour changes that will break backward compatibility.
-
-These changes were discussed long time ago and existing behaviours have
-been identified as more problematic to the userbase than keeping them for
-the sake of backward compatibility.
-
-When necessary, a transition strategy for existing users has been designed
-not to force them running around setting configuration variables and
-updating their scripts in order to either keep the traditional behaviour
-or adjust to the new behaviour, on the day their sysadmin decides to install
-the new version of git.  When we switched from "git-foo" to "git foo" in
-1.6.0, even though the change had been advertised and the transition
-guide had been provided for a very long time, the users procrastinated
-during the entire transition period, and ended up panicking on the day
-their sysadmins updated their git installation.  We are trying to avoid
-repeating that unpleasantness in the 1.7.0 release.
-
-For changes decided to be in 1.7.0, commands that will be affected
-have been much louder to strongly discourage such procrastination, and
-they continue to be in this release.  If you have been using recent
-versions of git, you would have seen warnings issued when you used
-features whose behaviour will change, with a clear instruction on how
-to keep the existing behaviour if you want to.  You hopefully are
-already well prepared.
-
-Of course, we have also been giving "this and that will change in
-1.7.0; prepare yourselves" warnings in the release notes and
-announcement messages for the past few releases.  Let's see how well
-users will fare this time.
-
- * "git push" into a branch that is currently checked out (i.e. pointed by
-   HEAD in a repository that is not bare) will be refused by default.
-
-   Similarly, "git push $there :$killed" to delete the branch $killed
-   in a remote repository $there, when $killed branch is the current
-   branch pointed at by its HEAD, will be refused by default.
-
-   Setting the configuration variables receive.denyCurrentBranch and
-   receive.denyDeleteCurrent to 'ignore' in the receiving repository
-   can be used to override these safety features.  Versions of git
-   since 1.6.2 have issued a loud warning when you tried to do these
-   operations without setting the configuration, so repositories of
-   people who still need to be able to perform such a push should
-   already have been future proofed.
-
-   Please refer to:
-
-   http://git.or.cz/gitwiki/GitFaq#non-bare
-   https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/
-
-   for more details on the reason why this change is needed and the
-   transition process that already took place so far.
-
- * "git send-email" will not make deep threads by default when sending a
-   patch series with more than two messages.  All messages will be sent
-   as a reply to the first message, i.e. cover letter.  Git 1.6.6 (this
-   release) will issue a warning about the upcoming default change, when
-   it uses the traditional "deep threading" behaviour as the built-in
-   default.  To squelch the warning but still use the "deep threading"
-   behaviour, give --chain-reply-to option or set sendemail.chainreplyto
-   to true.
-
-   It has been possible to configure send-email to send "shallow thread"
-   by setting sendemail.chainreplyto configuration variable to false.
-   The only thing 1.7.0 release will do is to change the default when
-   you haven't configured that variable.
-
- * "git status" will not be "git commit --dry-run".  This change does not
-   affect you if you run the command without pathspec.
-
-   Nobody sane found the current behaviour of "git status Makefile" useful
-   nor meaningful, and it confused users.  "git commit --dry-run" has been
-   provided as a way to get the current behaviour of this command since
-   1.6.5.
-
- * "git diff" traditionally treated various "ignore whitespace" options
-   only as a way to filter the patch output.  "git diff --exit-code -b"
-   exited with non-zero status even if all changes were about changing the
-   amount of whitespace and nothing else.  and "git diff -b" showed the
-   "diff --git" header line for such a change without patch text.
-
-   In 1.7.0, the "ignore whitespaces" will affect the semantics of the
-   diff operation itself.  A change that does not affect anything but
-   whitespaces will be reported with zero exit status when run with
-   --exit-code, and there will not be "diff --git" header for such a
-   change.
-
-
-Updates since v1.6.5
---------------------
-
-(subsystems)
-
- * various gitk updates including use of themed widgets under Tk 8.5,
-   Japanese translation, a fix to a bug when running "gui blame" from
-   a subdirectory, etc.
-
- * various git-gui updates including new translations, wm states fixes,
-   Tk bug workaround after quitting, improved heuristics to trigger gc,
-   etc.
-
- * various git-svn updates.
-
- * "git fetch" over http learned a new mode that is different from the
-   traditional "dumb commit walker".
-
-(portability)
-
- * imap-send can be built on mingw port.
-
-(performance)
-
- * "git diff -B" has smaller memory footprint.
-
-(usability, bells and whistles)
-
- * The object replace mechanism can be bypassed with --no-replace-objects
-   global option given to the "git" program.
-
- * In configuration files, a few variables that name paths can begin with ~/
-   and ~username/ and they are expanded as expected.
-
- * "git subcmd -h" now shows short usage help for many more subcommands.
-
- * "git bisect reset" can reset to an arbitrary commit.
-
- * "git checkout frotz" when there is no local branch "frotz" but there
-   is only one remote tracking branch "frotz" is taken as a request to
-   start the named branch at the corresponding remote tracking branch.
-
- * "git commit -c/-C/--amend" can be told with a new "--reset-author" option
-   to ignore authorship information in the commit it is taking the message
-   from.
-
- * "git describe" can be told to add "-dirty" suffix with "--dirty" option.
-
- * "git diff" learned --submodule option to show a list of one-line logs
-   instead of differences between the commit object names.
-
- * "git diff" learned to honor diff.color.func configuration to paint
-   function name hint printed on the hunk header "@@ -j,k +l,m @@" line
-   in the specified color.
-
- * "git fetch" learned --all and --multiple options, to run fetch from
-   many repositories, and --prune option to remove remote tracking
-   branches that went stale.  These make "git remote update" and "git
-   remote prune" less necessary (there is no plan to remove "remote
-   update" nor "remote prune", though).
-
- * "git fsck" by default checks the packfiles (i.e. "--full" is the
-   default); you can turn it off with "git fsck --no-full".
-
- * "git grep" can use -F (fixed strings) and -i (ignore case) together.
-
- * import-tars contributed fast-import frontend learned more types of
-   compressed tarballs.
-
- * "git instaweb" knows how to talk with mod_cgid to apache2.
-
- * "git log --decorate" shows the location of HEAD as well.
-
- * "git log" and "git rev-list" learned to take revs and pathspecs from
-   the standard input with the new "--stdin" option.
-
- * "--pretty=format" option to "log" family of commands learned:
-
-   . to wrap text with the "%w()" specifier.
-   . to show reflog information with "%g[sdD]" specifier.
-
- * "git notes" command to annotate existing commits.
-
- * "git merge" (and "git pull") learned --ff-only option to make it fail
-   if the merge does not result in a fast-forward.
-
- * "git mergetool" learned to use p4merge.
-
- * "git rebase -i" learned "reword" that acts like "edit" but immediately
-   starts an editor to tweak the log message without returning control to
-   the shell, which is done by "edit" to give an opportunity to tweak the
-   contents.
-
- * "git send-email" can be told with "--envelope-sender=auto" to use the
-   same address as "From:" address as the envelope sender address.
-
- * "git send-email" will issue a warning when it defaults to the
-   --chain-reply-to behaviour without being told by the user and
-   instructs to prepare for the change of the default in 1.7.0 release.
-
- * In "git submodule add <repository> <path>", <path> is now optional and
-   inferred from <repository> the same way "git clone <repository>" does.
-
- * "git svn" learned to read SVN 1.5+ and SVK merge tickets.
-
- * "git svn" learned to recreate empty directories tracked only by SVN.
-
- * "gitweb" can optionally render its "blame" output incrementally (this
-   requires JavaScript on the client side).
-
- * Author names shown in gitweb output are links to search commits by the
-   author.
-
-Fixes since v1.6.5
-------------------
-
-All of the fixes in v1.6.5.X maintenance series are included in this
-release, unless otherwise noted.
diff --git a/third_party/git/Documentation/RelNotes/1.7.0.1.txt b/third_party/git/Documentation/RelNotes/1.7.0.1.txt
deleted file mode 100644
index 8ff5bcada81f..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.0.1.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-Git v1.7.0.1 Release Notes
-==========================
-
-Fixes since v1.7.0
-------------------
-
- * In a freshly created repository "rev-parse HEAD^0" complained that
-   it is dangling symref, even though "rev-parse HEAD" didn't.
-
- * "git show :no-such-name" tried to access the index without bounds
-   check, leading to a potential segfault.
-
- * Message from "git cherry-pick" was harder to read and use than necessary
-   when it stopped due to conflicting changes.
-
- * We referred to ".git/refs/" throughout the documentation when we
-   meant to talk about abstract notion of "ref namespace".  Because
-   people's repositories often have packed refs these days, this was
-   confusing.
-
- * "git diff --output=/path/that/cannot/be/written" did not correctly
-   error out.
-
- * "git grep -e -pattern-that-begin-with-dash paths..." could not be
-   spelled as "git grep -- -pattern-that-begin-with-dash paths..." which
-   would be a GNU way to use "--" as "end of options".
-
- * "git grep" compiled with threading support tried to access an
-   uninitialized mutex on boxes with a single CPU.
-
- * "git stash pop -q --index" failed because the unnecessary --index
-   option was propagated to "git stash drop" that is internally run at the
-   end.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.0.2.txt b/third_party/git/Documentation/RelNotes/1.7.0.2.txt
deleted file mode 100644
index 73ed2b527843..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.0.2.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-Git v1.7.0.2 Release Notes
-==========================
-
-Fixes since v1.7.0.1
---------------------
-
- * GIT_PAGER was not honored consistently by some scripted Porcelains, most
-   notably "git am".
-
- * updating working tree files after telling git to add them to the
-   index and while it is still working created garbage object files in
-   the repository without diagnosing it as an error.
-
- * "git bisect -- pathspec..." did not diagnose an error condition properly when
-   the simplification with given pathspec made the history empty.
-
- * "git rev-list --cherry-pick A...B" now has an obvious optimization when the
-   histories haven't diverged (i.e. when one end is an ancestor of the other).
-
- * "git diff --quiet -w" did not work as expected.
-
- * "git fast-import" didn't work with a large input, as it lacked support
-   for producing the pack index in v2 format.
-
- * "git imap-send" didn't use CRLF line endings over the imap protocol
-   when storing its payload to the draft box, violating RFC 3501.
-
- * "git log --format='%w(x,y,z)%b'" and friends that rewrap message
-   has been optimized for utf-8 payload.
-
- * Error messages generated on the receiving end did not come back to "git
-   push".
-
- * "git status" in 1.7.0 lacked the optimization we used to have in 1.6.X series
-   to speed up scanning of large working tree.
-
- * "gitweb" did not diagnose parsing errors properly while reading its configuration
-   file.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.0.3.txt b/third_party/git/Documentation/RelNotes/1.7.0.3.txt
deleted file mode 100644
index 3b355737c0c0..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.0.3.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Git v1.7.0.3 Release Notes
-==========================
-
-Fixes since v1.7.0.2
---------------------
-
- * Object files are created in a more ACL friendly way in repositories
-   where group permission is ACL controlled.
-
- * "git add -i" didn't handle a deleted path very well.
-
- * "git blame" padded line numbers with one extra SP when the total number
-   of lines was one less than multiple of ten due to an off-by-one error.
-
- * "git fetch --all/--multi" used to discard information for remotes that
-   are fetched earlier.
-
- * "git log --author=me --grep=it" tried to find commits that have "it"
-   or are written by "me", instead of the ones that have "it" _and_ are
-   written by "me".
-
- * "git log -g branch" misbehaved when there was no entries in the reflog
-   for the named branch.
-
- * "git mailinfo" (hence "git am") incorrectly removed initial indent from
-   paragraphs.
-
- * "git prune" and "git reflog" (hence "git gc" as well) didn't honor
-   an instruction never to expire by setting gc.reflogexpire to never.
-
- * "git push" misbehaved when branch.<name>.merge was configured without
-   matching branch.<name>.remote.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.0.4.txt b/third_party/git/Documentation/RelNotes/1.7.0.4.txt
deleted file mode 100644
index cf7f60e60d73..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.0.4.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Git v1.7.0.4 Release Notes
-==========================
-
-Fixes since v1.7.0.3
---------------------
-
- * Optimized ntohl/htonl on big-endian machines were broken.
-
- * Color values given to "color.<cmd>.<slot>" configuration can now have
-   more than one attributes (e.g. "bold ul").
-
- * "git add -u nonexistent-path" did not complain.
-
- * "git apply --whitespace=fix" didn't work well when an early patch in
-   a patch series adds trailing blank lines and a later one depended on
-   such a block of blank lines at the end.
-
- * "git fast-export" didn't check error status and stop when marks file
-   cannot be opened.
-
- * "git format-patch --ignore-if-in-upstream" gave unwarranted errors
-   when the range was empty, instead of silently finishing.
-
- * "git remote prune" did not detect remote tracking refs that became
-   dangling correctly.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.0.5.txt b/third_party/git/Documentation/RelNotes/1.7.0.5.txt
deleted file mode 100644
index 3149c91b7b9c..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.0.5.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-Git v1.7.0.5 Release Notes
-==========================
-
-Fixes since v1.7.0.4
---------------------
-
- * "git daemon" failed to compile on platforms without sockaddr_storage type.
-
- * Output from "git rev-list --pretty=oneline" was unparsable when a
-   commit did not have any message, which is abnormal but possible in a
-   repository converted from foreign scm.
-
- * "git stash show <commit-that-is-not-a-stash>" gave an error message
-   that was not so useful.  Reworded the message to "<it> is not a
-   stash".
-
- * Python scripts in contrib/ area now start with "#!/usr/bin/env python"
-   to honor user's PATH.
-
- * "git imap-send" used to mistake any line that begins with "From " as a
-   message separator in format-patch output.
-
- * Smart http server backend failed to report an internal server error and
-   infinitely looped instead after output pipe was closed.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.0.6.txt b/third_party/git/Documentation/RelNotes/1.7.0.6.txt
deleted file mode 100644
index b2852b67d05b..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.0.6.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Git v1.7.0.6 Release Notes
-==========================
-
-Fixes since v1.7.0.5
---------------------
-
- * "git diff --stat" used "int" to count the size of differences,
-   which could result in overflowing.
-
- * "git rev-list --abbrev-commit" defaulted to 40-byte abbreviations, unlike
-   newer tools in the git toolset.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.0.7.txt b/third_party/git/Documentation/RelNotes/1.7.0.7.txt
deleted file mode 100644
index d0cb7ca7e27c..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.0.7.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Git v1.7.0.7 Release Notes
-==========================
-
-Fixes since v1.7.0.6
---------------------
-
- * "make NO_CURL=NoThanks install" was broken.
-
- * An overlong line after ".gitdir: " in a git file caused out of bounds
-   access to an array on the stack.
-
- * "git config --path conf.var" to attempt to expand a variable conf.var
-   that uses "~/" short-hand segfaulted when $HOME environment variable
-   was not set.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.0.8.txt b/third_party/git/Documentation/RelNotes/1.7.0.8.txt
deleted file mode 100644
index 7f05b48e17b9..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.0.8.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Git v1.7.0.8 Release Notes
-==========================
-
-This is primarily to backport support for the new "add.ignoreErrors"
-name given to the existing "add.ignore-errors" configuration variable.
-
-The next version, Git 1.7.4, and future versions, will support both
-old and incorrect name and the new corrected name, but without this
-backport, users who want to use the new name "add.ignoreErrors" in
-their repositories cannot use older versions of Git.
diff --git a/third_party/git/Documentation/RelNotes/1.7.0.9.txt b/third_party/git/Documentation/RelNotes/1.7.0.9.txt
deleted file mode 100644
index bfb31663873c..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.0.9.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Git v1.7.0.9 Release Notes
-==========================
-
-Fixes since v1.7.0.8
---------------------
-
- * "gitweb" can sometimes be tricked into parrotting a filename argument
-   given in a request without properly quoting.
diff --git a/third_party/git/Documentation/RelNotes/1.7.0.txt b/third_party/git/Documentation/RelNotes/1.7.0.txt
deleted file mode 100644
index 0bb8c0b2a2a7..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.0.txt
+++ /dev/null
@@ -1,214 +0,0 @@
-Git v1.7.0 Release Notes
-========================
-
-Notes on behaviour change
--------------------------
-
- * "git push" into a branch that is currently checked out (i.e. pointed at by
-   HEAD in a repository that is not bare) is refused by default.
-
-   Similarly, "git push $there :$killed" to delete the branch $killed
-   in a remote repository $there, when $killed branch is the current
-   branch pointed at by its HEAD, will be refused by default.
-
-   Setting the configuration variables receive.denyCurrentBranch and
-   receive.denyDeleteCurrent to 'ignore' in the receiving repository
-   can be used to override these safety features.
-
- * "git send-email" does not make deep threads by default when sending a
-   patch series with more than two messages.  All messages will be sent
-   as a reply to the first message, i.e. cover letter.
-
-   It has been possible already to configure send-email to send "shallow thread"
-   by setting sendemail.chainreplyto configuration variable to false.  The
-   only thing this release does is to change the default when you haven't
-   configured that variable.
-
- * "git status" is not "git commit --dry-run" anymore.  This change does
-   not affect you if you run the command without argument.
-
- * "git diff" traditionally treated various "ignore whitespace" options
-   only as a way to filter the patch output.  "git diff --exit-code -b"
-   exited with non-zero status even if all changes were about changing the
-   amount of whitespace and nothing else;  and "git diff -b" showed the
-   "diff --git" header line for such a change without patch text.
-
-   In this release, the "ignore whitespaces" options affect the semantics
-   of the diff operation.  A change that does not affect anything but
-   whitespaces is reported with zero exit status when run with
-   --exit-code, and there is no "diff --git" header for such a change.
-
- * External diff and textconv helpers are now executed using the shell.
-   This makes them consistent with other programs executed by git, and
-   allows you to pass command-line parameters to the helpers. Any helper
-   paths containing spaces or other metacharacters now need to be
-   shell-quoted.  The affected helpers are GIT_EXTERNAL_DIFF in the
-   environment, and diff.*.command and diff.*.textconv in the config
-   file.
-
- * The --max-pack-size argument to 'git repack', 'git pack-objects', and
-   'git fast-import' was assuming the provided size to be expressed in MiB,
-   unlike the corresponding config variable and other similar options accepting
-   a size value.  It is now expecting a size expressed in bytes, with a possible
-   unit suffix of 'k', 'm', or 'g'.
-
-Updates since v1.6.6
---------------------
-
-(subsystems)
-
- * "git fast-import" updates; adds "option" and "feature" to detect the
-   mismatch between fast-import and the frontends that produce the input
-   stream.
-
- * "git svn" support of subversion "merge tickets" and miscellaneous fixes.
-
- * "gitk" and "git gui" translation updates.
-
- * "gitweb" updates (code clean-up, load checking etc.)
-
-(portability)
-
- * Some more MSVC portability patches for msysgit port.
-
- * Minimum Pthreads emulation for msysgit port.
-
-(performance)
-
- * More performance improvement patches for msysgit port.
-
-(usability, bells and whistles)
-
- * More commands learned "--quiet" and "--[no-]progress" options.
-
- * Various commands given by the end user (e.g. diff.type.textconv,
-   and GIT_EDITOR) can be specified with command line arguments.  E.g. it
-   is now possible to say "[diff "utf8doc"] textconv = nkf -w".
-
- * "sparse checkout" feature allows only part of the work tree to be
-   checked out.
-
- * HTTP transfer can use authentication scheme other than basic
-   (i.e./e.g. digest).
-
- * Switching from a version of superproject that used to have a submodule
-   to another version of superproject that no longer has it did not remove
-   the submodule directory when it should (namely, when you are not
-   interested in the submodule at all and didn't clone/checkout).
-
- * A new attribute conflict-marker-size can be used to change the size of
-   the conflict markers from the default 7; this is useful when tracked
-   contents (e.g. git-merge documentation) have strings that resemble the
-   conflict markers.
-
- * A new syntax "<branch>@{upstream}" can be used on the command line to
-   substitute the name of the "upstream" of the branch.  Missing branch
-   defaults to the current branch, so "git fetch && git merge @{upstream}"
-   will be equivalent to "git pull".
-
- * "git am --resolved" has a synonym "git am --continue".
-
- * "git branch --set-upstream" can be used to update the (surprise!) upstream,
-   i.e. where the branch is supposed to pull and merge from (or rebase onto).
-
- * "git checkout A...B" is a way to detach HEAD at the merge base between
-   A and B.
-
- * "git checkout -m path" to reset the work tree file back into the
-   conflicted state works even when you already ran "git add path" and
-   resolved the conflicts.
-
- * "git commit --date='<date>'" can be used to override the author date
-   just like "git commit --author='<name> <email>'" can be used to
-   override the author identity.
-
- * "git commit --no-status" can be used to omit the listing of the index
-   and the work tree status in the editor used to prepare the log message.
-
- * "git commit" warns a bit more aggressively until you configure user.email,
-   whose default value almost always is not (and fundamentally cannot be)
-   what you want.
-
- * "git difftool" has been extended to make it easier to integrate it
-   with gitk.
-
- * "git fetch --all" can now be used in place of "git remote update".
-
- * "git grep" does not rely on external grep anymore.  It can use more than
-   one thread to accelerate the operation.
-
- * "git grep" learned "--quiet" option.
-
- * "git log" and friends learned "--glob=heads/*" syntax that is a more
-   flexible way to complement "--branches/--tags/--remotes".
-
- * "git merge" learned to pass options specific to strategy-backends.  E.g.
-
-    - "git merge -Xsubtree=path/to/directory" can be used to tell the subtree
-      strategy how much to shift the trees explicitly.
-
-    - "git merge -Xtheirs" can be used to auto-merge as much as possible,
-      while discarding your own changes and taking merged version in
-      conflicted regions.
-
- * "git push" learned "git push origin --delete branch", a syntactic sugar
-   for "git push origin :branch".
-
- * "git push" learned "git push --set-upstream origin forker:forkee" that
-   lets you configure your "forker" branch to later pull from "forkee"
-   branch at "origin".
-
- * "git rebase --onto A...B" means the history is replayed on top of the
-   merge base between A and B.
-
- * "git rebase -i" learned new action "fixup" that squashes the change
-   but does not affect existing log message.
-
- * "git rebase -i" also learned --autosquash option that is useful
-   together with the new "fixup" action.
-
- * "git remote" learned set-url subcommand that updates (surprise!) url
-   for an existing remote nickname.
-
- * "git rerere" learned "forget path" subcommand.  Together with "git
-   checkout -m path" it will be useful when you recorded a wrong
-   resolution.
-
- * Use of "git reset --merge" has become easier when resetting away a
-   conflicted mess left in the work tree.
-
- * "git rerere" had rerere.autoupdate configuration but there was no way
-   to countermand it from the command line; --no-rerere-autoupdate option
-   given to "merge", "revert", etc. fixes this.
-
- * "git status" learned "-s(hort)" output format.
-
-(developers)
-
- * The infrastructure to build foreign SCM interface has been updated.
-
- * Many more commands are now built-in.
-
- * THREADED_DELTA_SEARCH is no more.  If you build with threads, delta
-   compression will always take advantage of it.
-
-Fixes since v1.6.6
-------------------
-
-All of the fixes in v1.6.6.X maintenance series are included in this
-release, unless otherwise noted.
-
- * "git branch -d branch" used to refuse deleting the branch even when
-   the branch is fully merged to its upstream branch if it is not merged
-   to the current branch.  It now deletes it in such a case.
-
- * "filter-branch" command incorrectly said --prune-empty and --filter-commit
-   were incompatible; the latter should be read as --commit-filter.
-
- * When using "git status" or asking "git diff" to compare the work tree
-   with something, they used to consider that a checked-out submodule with
-   uncommitted changes is not modified; this could cause people to forget
-   committing these changes in the submodule before committing in the
-   superproject. They now consider such a change as a modification and
-   "git diff" will append a "-dirty" to the work tree side when generating
-   patch output or when used with the --submodule option.
diff --git a/third_party/git/Documentation/RelNotes/1.7.1.1.txt b/third_party/git/Documentation/RelNotes/1.7.1.1.txt
deleted file mode 100644
index 3f6b3148a309..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.1.1.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-Git v1.7.1.1 Release Notes
-==========================
-
-Fixes since v1.7.1
-------------------
-
- * Authentication over http transport can now be made lazily, in that the
-   request can first go to a URL without username, get a 401 response and
-   then the client will ask for the username to use.
-
- * We used to mistakenly think "../work" is a subdirectory of the current
-   directory when we are in "../work-xyz".
-
- * The attribute mechanism now allows an entry that uses an attribute
-   macro that set/unset one attribute, immediately followed by an
-   overriding setting; this makes attribute macros much easier to use.
-
- * We didn't recognize timezone "Z" as a synonym for "UTC" (75b37e70).
-
- * In 1.7.0, read-tree and user commands that use the mechanism such as
-   checkout and merge were fixed to handle switching between branches one
-   of which has a file while the other has a directory at the same path
-   correctly even when there are some "confusing" pathnames in them.  But
-   the algorithm used for this fix was suboptimal and had a terrible
-   performance degradation especially in larger trees.
-
- * "git am -3" did not show diagnosis when the patch in the message was corrupt.
-
- * After "git apply --whitespace=fix" removed trailing blank lines in an
-   patch in a patch series, it failed to apply later patches that depend
-   on the presence of such blank lines.
-
- * "git bundle --stdin" segfaulted.
-
- * "git checkout" and "git rebase" overwrote paths that are marked "assume
-   unchanged".
-
- * "git commit --amend" on a commit with an invalid author-name line that
-   lacks the display name didn't work.
-
- * "git describe" did not tie-break tags that point at the same commit
-   correctly; newer ones are preferred by paying attention to the
-   tagger date now.
-
- * "git diff" used to tell underlying xdiff machinery to work very hard to
-   minimize the output, but this often was spending too many extra cycles
-   for very little gain.
-
- * "git diff --color" did not paint extended diff headers per line
-   (i.e. the coloring escape sequence didn't end at the end of line),
-   which confused "less -R".
-
- * "git fetch" over HTTP verifies the downloaded packfiles more robustly.
-
- * The memory usage by "git index-pack" (run during "git fetch" and "git
-   push") got leaner.
-
- * "GIT_DIR=foo.git git init --bare bar.git" created foo.git instead of bar.git.
-
- * "git log --abbrev=$num --format='%h' ignored --abbrev=$num.
-
- * "git ls-files ../out/side/cwd" refused to work.
-
- * "git merge --log" used to replace the custom message given by "-m" with
-   the shortlog, instead of appending to it.
-
- * "git notes copy" without any other argument segfaulted.
-
- * "git pull" accepted "--dry-run", gave it to underlying "git fetch" but
-   ignored the option itself, resulting in a bogus attempt to merge
-   unrelated commit.
-
- * "git rebase" did not faithfully reproduce a malformed author ident, that
-   is often seen in a repository converted from foreign SCMs.
-
- * "git reset --hard" started from a wrong directory and a working tree in
-   a nonstandard location is in use got confused.
-
- * "git send-email" lacked a way to specify the domainname used in the
-   EHLO/HELO exchange, causing rejected connection from picky servers.
-   It learned --smtp-domain option to solve this issue.
-
- * "git send-email" did not declare a content-transfer-encoding and
-   content-type even when its payload needs to be sent in 8-bit.
-
- * "git show -C -C" and other corner cases lost diff metainfo output
-   in 1.7.0.
-
- * "git stash" incorrectly lost paths in the working tree that were
-   previously removed from the index.
-
- * "git status" stopped refreshing the index by mistake in 1.7.1.
-
- * "git status" showed excess "hints" even when advice.statusHints is set to false.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.1.2.txt b/third_party/git/Documentation/RelNotes/1.7.1.2.txt
deleted file mode 100644
index 61ba14e262a4..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.1.2.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-Git v1.7.1.2 Release Notes
-==========================
-
-Fixes since v1.7.1.1
---------------------
-
- * "git commit" did not honor GIT_REFLOG_ACTION environment variable, resulting
-   reflog messages for cherry-pick and revert actions to be recorded as "commit".
-
- * "git clone/fetch/pull" issued an incorrect error message when a ref and
-   a symref that points to the ref were updated at the same time.  This
-   obviously would update them to the same value, and should not result in
-   an error condition.
-
- * "git diff" inside a tree with many pathnames that have certain
-   characters has become very slow in 1.7.0 by mistake.
-
- * "git rev-parse --parseopt --stop-at-non-option" did not stop at non option
-   when --keep-dashdash was in effect.
-
- * An overlong line after ".gitdir: " in a git file caused out of bounds
-   access to an array on the stack.
-
- * "git config --path conf.var" to attempt to expand a variable conf.var
-   that uses "~/" short-hand segfaulted when $HOME environment variable
-   was not set.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.1.3.txt b/third_party/git/Documentation/RelNotes/1.7.1.3.txt
deleted file mode 100644
index 5b1851844907..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.1.3.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Git v1.7.1.3 Release Notes
-==========================
-
-This is primarily to backport support for the new "add.ignoreErrors"
-name given to the existing "add.ignore-errors" configuration variable.
-
-The next version, Git 1.7.4, and future versions, will support both
-old and incorrect name and the new corrected name, but without this
-backport, users who want to use the new name "add.ignoreErrors" in
-their repositories cannot use older versions of Git.
diff --git a/third_party/git/Documentation/RelNotes/1.7.1.4.txt b/third_party/git/Documentation/RelNotes/1.7.1.4.txt
deleted file mode 100644
index 7c734b4f7b0e..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.1.4.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Git v1.7.1.4 Release Notes
-==========================
-
-Fixes since v1.7.1.3
---------------------
-
- * "gitweb" can sometimes be tricked into parrotting a filename argument
-   given in a request without properly quoting.
diff --git a/third_party/git/Documentation/RelNotes/1.7.1.txt b/third_party/git/Documentation/RelNotes/1.7.1.txt
deleted file mode 100644
index 9d89fedb36b4..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.1.txt
+++ /dev/null
@@ -1,89 +0,0 @@
-Git v1.7.1 Release Notes
-========================
-
-Updates since v1.7.0
---------------------
-
- * Eric Raymond is the maintainer of updated CIAbot scripts, in contrib/.
-
- * gitk updates.
-
- * Some commands (e.g. svn and http interfaces) that interactively ask
-   for a password can be told to use an external program given via
-   GIT_ASKPASS.
-
- * Conflict markers that lead the common ancestor in diff3-style output
-   now have a label, which hopefully would help third-party tools that
-   expect one.
-
- * Comes with an updated bash-completion script.
-
- * "git am" learned "--keep-cr" option to handle inputs that are
-   a mixture of changes to files with and without CRLF line endings.
-
- * "git cvsimport" learned -R option to leave revision mapping between
-   CVS revisions and resulting git commits.
-
- * "git diff --submodule" notices and describes dirty submodules.
-
- * "git for-each-ref" learned %(symref), %(symref:short) and %(flag)
-   tokens.
-
- * "git hash-object --stdin-paths" can take "--no-filters" option now.
-
- * "git init" can be told to look at init.templatedir configuration
-   variable (obviously that has to come from either /etc/gitconfig or
-   $HOME/.gitconfig).
-
- * "git grep" learned "--no-index" option, to search inside contents that
-   are not managed by git.
-
- * "git grep" learned --color=auto/always/never.
-
- * "git grep" learned to paint filename and line-number in colors.
-
- * "git log -p --first-parent -m" shows one-parent diff for merge
-   commits, instead of showing combined diff.
-
- * "git merge-file" learned to use custom conflict marker size and also
-   to use the "union merge" behaviour.
-
- * "git notes" command has been rewritten in C and learned many commands
-   and features to help you carry notes forward across rebases and amends.
-
- * "git request-pull" identifies the commit the request is relative to in
-   a more readable way.
-
- * "git reset" learned "--keep" option that lets you discard commits
-   near the tip while preserving your local changes in a way similar
-   to how "git checkout branch" does.
-
- * "git status" notices and describes dirty submodules.
-
- * "git svn" should work better when interacting with repositories
-   with CRLF line endings.
-
- * "git imap-send" learned to support CRAM-MD5 authentication.
-
- * "gitweb" installation procedure can use "minified" js/css files
-   better.
-
- * Various documentation updates.
-
-Fixes since v1.7.0
-------------------
-
-All of the fixes in v1.7.0.X maintenance series are included in this
-release, unless otherwise noted.
-
- * "git add frotz/nitfol" did not complain when the entire frotz/ directory
-   was ignored.
-
- * "git diff --stat" used "int" to count the size of differences,
-   which could result in overflowing.
-
- * "git rev-list --pretty=oneline" didn't terminate a record with LF for
-   commits without any message.
-
- * "git rev-list --abbrev-commit" defaulted to 40-byte abbreviations, unlike
-   newer tools in the git toolset.
diff --git a/third_party/git/Documentation/RelNotes/1.7.10.1.txt b/third_party/git/Documentation/RelNotes/1.7.10.1.txt
deleted file mode 100644
index 71a86cb7c6d8..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.10.1.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-Git v1.7.10.1 Release Notes
-===========================
-
-Additions since v1.7.10
------------------------
-
-Localization message files for Danish and German have been added.
-
-
-Fixes since v1.7.10
--------------------
-
- * "git add -p" is not designed to deal with unmerged paths but did
-   not exclude them and tried to apply funny patches only to fail.
-
- * "git blame" started missing quite a few changes from the origin
-   since we stopped using the diff minimization by default in v1.7.2
-   era.
-
- * When PATH contains an unreadable directory, alias expansion code
-   did not kick in, and failed with an error that said "git-subcmd"
-   was not found.
-
- * "git clean -d -f" (not "-d -f -f") is supposed to protect nested
-   working trees of independent git repositories that exist in the
-   current project working tree from getting removed, but the
-   protection applied only to such working trees that are at the
-   top-level of the current project by mistake.
-
- * "git commit --author=$name" did not tell the name that was being
-   recorded in the resulting commit to hooks, even though it does do
-   so when the end user overrode the authorship via the
-   "GIT_AUTHOR_NAME" environment variable.
-
- * When "git commit --template F" errors out because the user did not
-   touch the message, it claimed that it aborts due to "empty
-   message", which was utterly wrong.
-
- * The regexp configured with diff.wordregex was incorrectly reused
-   across files.
-
- * An age-old corner case bug in combine diff (only triggered with -U0
-   and the hunk at the beginning of the file needs to be shown) has
-   been fixed.
-
- * Rename detection logic used to match two empty files as renames
-   during merge-recursive, leading to unnatural mismerges.
-
- * The parser in "fast-import" did not diagnose ":9" style references
-   that is not followed by required SP/LF as an error.
-
- * When "git fetch" encounters repositories with too many references,
-   the command line of "fetch-pack" that is run by a helper
-   e.g. remote-curl, may fail to hold all of them. Now such an
-   internal invocation can feed the references through the standard
-   input of "fetch-pack".
-
- * "git fetch" that recurses into submodules on demand did not check
-   if it needs to go into submodules when non branches (most notably,
-   tags) are fetched.
-
- * "log -p --graph" used with "--stat" had a few formatting error.
-
- * Running "notes merge --commit" failed to perform correctly when run
-   from any directory inside $GIT_DIR/.  When "notes merge" stops with
-   conflicts, $GIT_DIR/NOTES_MERGE_WORKTREE is the place a user edits
-   to resolve it.
-
- * The 'push to upstream' implementation was broken in some corner
-   cases. "git push $there" without refspec, when the current branch
-   is set to push to a remote different from $there, used to push to
-   $there using the upstream information to a remote unrelated to
-   $there.
-
- * Giving "--continue" to a conflicted "rebase -i" session skipped a
-   commit that only results in changes to submodules.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.10.2.txt b/third_party/git/Documentation/RelNotes/1.7.10.2.txt
deleted file mode 100644
index 7a7e9d6fd128..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.10.2.txt
+++ /dev/null
@@ -1,85 +0,0 @@
-Git v1.7.10.2 Release Notes
-===========================
-
-Fixes since v1.7.10.1
----------------------
-
- * The test scaffolding for git-daemon was flaky.
-
- * The test scaffolding for fast-import was flaky.
-
- * The filesystem boundary was not correctly reported when .git directory
-   discovery stopped at a mount point.
-
- * HTTP transport that requires authentication did not work correctly when
-   multiple connections are used simultaneously.
-
- * Minor memory leak during unpack_trees (hence "merge" and "checkout"
-   to check out another branch) has been plugged.
-
- * In the older days, the header "Conflicts:" in "cherry-pick" and "merge"
-   was separated by a blank line from the list of paths that follow for
-   readability, but when "merge" was rewritten in C, we lost it by
-   mistake. Remove the newline from "cherry-pick" to make them match
-   again.
-
- * The command line parser choked "git cherry-pick $name" when $name can
-   be both revision name and a pathname, even though $name can never be a
-   path in the context of the command.
-
- * The "include.path" facility in the configuration mechanism added in
-   1.7.10 forgot to interpret "~/path" and "~user/path" as it should.
-
- * "git config --rename-section" to rename an existing section into a
-   bogus one did not check the new name.
-
- * The "diff --no-index" codepath used limited-length buffers, risking
-   pathnames getting truncated.  Update it to use the strbuf API.
-
- * The report from "git fetch" said "new branch" even for a non branch
-   ref.
-
- * The http-backend (the server side of the smart http transfer) used
-   to overwrite GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL with the
-   value obtained from REMOTE_USER unconditionally, making it
-   impossible for the server side site-specific customization to use
-   different identity sources to affect the names logged. It now uses
-   REMOTE_USER only as a fallback value.
-
- * "log --graph" was not very friendly with "--stat" option and its
-   output had line breaks at wrong places.
-
- * Octopus merge strategy did not reduce heads that are recorded in the
-   final commit correctly.
-
- * "git push" over smart-http lost progress output a few releases ago;
-   this release resurrects it.
-
- * The error and advice messages given by "git push" when it fails due
-   to non-ff were not very helpful to new users; it has been broken
-   into three cases, and each is given a separate advice message.
-
- * The insn sheet given by "rebase -i" did not make it clear that the
-   insn lines can be re-ordered to affect the order of the commits in
-   the resulting history.
-
- * "git repack" used to write out unreachable objects as loose objects
-   when repacking, even if such loose objects will immediately pruned
-   due to its age.
-
- * A contrib script "rerere-train" did not work out of the box unless
-   user futzed with her $PATH.
-
- * "git rev-parse --show-prefix" used to emit nothing when run at the
-   top-level of the working tree, but now it gives a blank line.
-
- * The i18n of error message "git stash save" was not properly done.
-
- * "git submodule" used a sed script that some platforms mishandled.
-
- * When using a Perl script on a system where "perl" found on user's
-   $PATH could be ancient or otherwise broken, we allow builders to
-   specify the path to a good copy of Perl with $PERL_PATH.  The
-   gitweb test forgot to use that Perl when running its test.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.10.3.txt b/third_party/git/Documentation/RelNotes/1.7.10.3.txt
deleted file mode 100644
index 703fbf1d60a7..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.10.3.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-Git v1.7.10.3 Release Notes
-===========================
-
-Fixes since v1.7.10.2
----------------------
-
- * The message file for German translation has been updated a bit.
-
- * Running "git checkout" on an unborn branch used to corrupt HEAD.
-
- * When checking out another commit from an already detached state, we
-   used to report all commits that are not reachable from any of the
-   refs as lossage, but some of them might be reachable from the new
-   HEAD, and there is no need to warn about them.
-
- * Some time ago, "git clone" lost the progress output for its
-   "checkout" phase; when run without any "--quiet" option, it should
-   give progress to the lengthy operation.
-
- * The directory path used in "git diff --no-index", when it recurses
-   down, was broken with a recent update after v1.7.10.1 release.
-
- * "log -z --pretty=tformat:..." did not terminate each record with
-   NUL.  The fix is not entirely correct when the output also asks for
-   --patch and/or --stat, though.
-
- * The DWIM behaviour for "log --pretty=format:%gd -g" was somewhat
-   broken and gave undue precedence to configured log.date, causing
-   "git stash list" to show "stash@{time stamp string}".
-
- * "git status --porcelain" ignored "--branch" option by mistake.  The
-   output for "git status --branch -z" was also incorrect and did not
-   terminate the record for the current branch name with NUL as asked.
-
- * When a submodule repository uses alternate object store mechanism,
-   some commands that were started from the superproject did not
-   notice it and failed with "No such object" errors.  The subcommands
-   of "git submodule" command that recursed into the submodule in a
-   separate process were OK; only the ones that cheated and peeked
-   directly into the submodule's repository from the primary process
-   were affected.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.10.4.txt b/third_party/git/Documentation/RelNotes/1.7.10.4.txt
deleted file mode 100644
index 57597f2bf35d..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.10.4.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Git v1.7.10.4 Release Notes
-===========================
-
-Fixes since v1.7.10.3
----------------------
-
- * The message file for Swedish translation has been updated a bit.
-
- * A name taken from mailmap was copied into an internal buffer
-   incorrectly and could overrun the buffer if it is too long.
-
- * A malformed commit object that has a header line chomped in the
-   middle could kill git with a NULL pointer dereference.
-
- * An author/committer name that is a single character was mishandled
-   as an invalid name by mistake.
-
- * The progress indicator for a large "git checkout" was sent to
-   stderr even if it is not a terminal.
-
- * "git grep -e '$pattern'", unlike the case where the patterns are
-   read from a file, did not treat individual lines in the given
-   pattern argument as separate regular expressions as it should.
-
- * When "git rebase" was given a bad commit to replay the history on,
-   its error message did not correctly give the command line argument
-   it had trouble parsing.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.10.5.txt b/third_party/git/Documentation/RelNotes/1.7.10.5.txt
deleted file mode 100644
index 4db1770e3888..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.10.5.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Git v1.7.10.5 Release Notes
-===========================
-
-Fixes since v1.7.10.4
----------------------
-
- * "git fast-export" did not give a readable error message when the
-   same mark erroneously appeared twice in the --import-marks input.
-
- * "git rebase -p" used to pay attention to rebase.autosquash which
-    was wrong.  "git rebase -p -i" should, but "git rebase -p" by
-    itself should not.
diff --git a/third_party/git/Documentation/RelNotes/1.7.10.txt b/third_party/git/Documentation/RelNotes/1.7.10.txt
deleted file mode 100644
index 58100bf04e1c..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.10.txt
+++ /dev/null
@@ -1,219 +0,0 @@
-Git v1.7.10 Release Notes
-=========================
-
-Compatibility Notes
--------------------
-
- * From this release on, the "git merge" command in an interactive
-   session will start an editor when it automatically resolves the
-   merge for the user to explain the resulting commit, just like the
-   "git commit" command does when it wasn't given a commit message.
-
-   If you have a script that runs "git merge" and keeps its standard
-   input and output attached to the user's terminal, and if you do not
-   want the user to explain the resulting merge commits, you can
-   export GIT_MERGE_AUTOEDIT environment variable set to "no", like
-   this:
-
-	#!/bin/sh
-	GIT_MERGE_AUTOEDIT=no
-	export GIT_MERGE_AUTOEDIT
-
-   to disable this behavior (if you want your users to explain their
-   merge commits, you do not have to do anything).  Alternatively, you
-   can give the "--no-edit" option to individual invocations of the
-   "git merge" command if you know everybody who uses your script has
-   Git v1.7.8 or newer.
-
- * The "--binary/-b" options to "git am" have been a no-op for quite a
-   while and were deprecated in mid 2008 (v1.6.0).  When you give these
-   options to "git am", it will now warn and ask you not to use them.
-
- * When you do not tell which branches and tags to push to the "git
-   push" command in any way, the command used "matching refs" rule to
-   update remote branches and tags with branches and tags with the
-   same name you locally have.  In future versions of Git, this will
-   change to push out only your current branch according to either the
-   "upstream" or the "current" rule.  Although "upstream" may be more
-   powerful once the user understands Git better, the semantics
-   "current" gives is simpler and easier to understand for beginners
-   and may be a safer and better default option.  We haven't decided
-   yet which one to switch to.
-
-
-Updates since v1.7.9
---------------------
-
-UI, Workflows & Features
-
- * various "gitk" updates.
-   - show the path to the top level directory in the window title
-   - update preference edit dialog
-   - display file list correctly when directories are given on command line
-   - make "git-describe" output in the log message into a clickable link
-   - avoid matching the UNIX timestamp part when searching all fields
-   - give preference to symbolic font names like sans & monospace
-   - allow comparing two commits using a mark
-   - "gitk" honors log.showroot configuration.
-
- * Teams for localizing the messages from the Porcelain layer of
-   commands are starting to form, thanks to Jiang Xin who volunteered
-   to be the localization coordinator.  Translated messages for
-   simplified Chinese, Swedish and Portuguese are available.
-
- * The configuration mechanism learned an "include" facility; an
-   assignment to the include.path pseudo-variable causes the named
-   file to be included in-place when Git looks up configuration
-   variables.
-
- * A content filter (clean/smudge) used to be just a way to make the
-   recorded contents "more useful", and allowed to fail; a filter can
-   now optionally be marked as "required".
-
- * Options whose names begin with "--no-" (e.g. the "--no-verify"
-   option of the "git commit" command) can be negated by omitting
-   "no-" from its name, e.g. "git commit --verify".
-
- * "git am" learned to pass "-b" option to underlying "git mailinfo", so
-   that a bracketed string other than "PATCH" at the beginning can be kept.
-
- * "git clone" learned "--single-branch" option to limit cloning to a
-   single branch (surprise!); tags that do not point into the history
-   of the branch are not fetched.
-
- * "git clone" learned to detach the HEAD in the resulting repository
-   when the user specifies a tag with "--branch" (e.g., "--branch=v1.0").
-   Clone also learned to print the usual "detached HEAD" advice in such
-   a case, similar to "git checkout v1.0".
-
- * When showing a patch while ignoring whitespace changes, the context
-   lines are taken from the postimage, in order to make it easier to
-   view the output.
-
- * "git diff --stat" learned to adjust the width of the output on
-   wider terminals, and give more columns to pathnames as needed.
-
- * "diff-highlight" filter (in contrib/) was updated to produce more
-   aesthetically pleasing output.
-
- * "fsck" learned "--no-dangling" option to omit dangling object
-   information.
-
- * "git log -G" and "git log -S" learned to pay attention to the "-i"
-   option.  With "-i", "log -G" ignores the case when finding patch
-   hunks that introduce or remove a string that matches the given
-   pattern.  Similarly with "-i", "log -S" ignores the case when
-   finding the commit the given block of text appears or disappears
-   from the file.
-
- * "git merge" in an interactive session learned to spawn the editor
-   by default to let the user edit the auto-generated merge message,
-   to encourage people to explain their merges better. Legacy scripts
-   can export GIT_MERGE_AUTOEDIT=no to retain the historical behavior.
-   Both "git merge" and "git pull" can be given --no-edit from the
-   command line to accept the auto-generated merge message.
-
- * The advice message given when the user didn't give enough clue on
-   what to merge to "git pull" and "git merge" has been updated to
-   be more concise and easier to understand.
-
- * "git push" learned the "--prune" option, similar to "git fetch".
-
- * The whole directory that houses a top-level superproject managed by
-   "git submodule" can be moved to another place.
-
- * "git symbolic-ref" learned the "--short" option to abbreviate the
-   refname it shows unambiguously.
-
- * "git tag --list" can be given "--points-at <object>" to limit its
-   output to those that point at the given object.
-
- * "gitweb" allows intermediate entries in the directory hierarchy
-   that leads to a project to be clicked, which in turn shows the
-   list of projects inside that directory.
-
- * "gitweb" learned to read various pieces of information for the
-   repositories lazily, instead of reading everything that could be
-   needed (including the ones that are not necessary for a specific
-   task).
-
- * Project search in "gitweb" shows the substring that matched in the
-   project name and description highlighted.
-
- * HTTP transport learned to authenticate with a proxy if needed.
-
- * A new script "diffall" is added to contrib/; it drives an
-   external tool to perform a directory diff of two Git revisions
-   in one go, unlike "difftool" that compares one file at a time.
-
-Foreign Interface
-
- * Improved handling of views, labels and branches in "git-p4" (in contrib).
-
- * "git-p4" (in contrib) suffered from unnecessary merge conflicts when
-   p4 expanded the embedded $RCS$-like keywords; it can be now told to
-   unexpand them.
-
- * Some "git-svn" updates.
-
- * "vcs-svn"/"svn-fe" learned to read dumps with svn-deltas and
-   support incremental imports.
-
- * "git difftool/mergetool" learned to drive DeltaWalker.
-
-Performance
-
- * Unnecessary calls to parse_object() "git upload-pack" makes in
-   response to "git fetch", have been eliminated, to help performance
-   in repositories with excessive number of refs.
-
-Internal Implementation (please report possible regressions)
-
- * Recursive call chains in "git index-pack" to deal with long delta
-   chains have been flattened, to reduce the stack footprint.
-
- * Use of add_extra_ref() API is now gone, to make it possible to
-   cleanly restructure the overall refs API.
-
- * The command line parser of "git pack-objects" now uses parse-options
-   API.
-
- * The test suite supports the new "test_pause" helper function.
-
- * Parallel to the test suite, there is a beginning of performance
-   benchmarking framework.
-
- * t/Makefile is adjusted to prevent newer versions of GNU make from
-   running tests in seemingly random order.
-
- * The code to check if a path points at a file beyond a symbolic link
-   has been restructured to be thread-safe.
-
- * When pruning directories that has become empty during "git prune"
-   and "git prune-packed", call closedir() that iterates over a
-   directory before rmdir() it.
-
-Also contains minor documentation updates and code clean-ups.
-
-
-Fixes since v1.7.9
-------------------
-
-Unless otherwise noted, all the fixes since v1.7.9 in the maintenance
-releases are contained in this release (see release notes to them for
-details).
-
- * Build with NO_PERL_MAKEMAKER was broken and Git::I18N did not work
-   with versions of Perl older than 5.8.3.
-   (merge 5eb660e ab/perl-i18n later to maint).
-
- * "git tag -s" honored "gpg.program" configuration variable since
-   1.7.9, but "git tag -v" and "git verify-tag" didn't.
-   (merge a2c2506 az/verify-tag-use-gpg-config later to maint).
-
- * "configure" script learned to take "--with-sane-tool-path" from the
-   command line to record SANE_TOOL_PATH (used to avoid broken platform
-   tools in /usr/bin) in config.mak.autogen.  This may be useful for
-   people on Solaris who have saner tools outside /usr/xpg[46]/bin.
-
- * zsh port of bash completion script needed another workaround.
diff --git a/third_party/git/Documentation/RelNotes/1.7.11.1.txt b/third_party/git/Documentation/RelNotes/1.7.11.1.txt
deleted file mode 100644
index 577eccaacd63..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.11.1.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Git v1.7.11.1 Release Notes
-===========================
-
-Fixes since v1.7.11
--------------------
-
- * The cross links in the HTML version of manual pages were broken.
-
-Also contains minor typofixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.11.2.txt b/third_party/git/Documentation/RelNotes/1.7.11.2.txt
deleted file mode 100644
index f0cfd02d6ff3..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.11.2.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-Git v1.7.11.2 Release Notes
-===========================
-
-Fixes since v1.7.11.1
----------------------
-
- * On Cygwin, the platform pread(2) is not thread safe, just like our
-   own compat/ emulation, and cannot be used in the index-pack
-   program.  Makefile variable NO_THREAD_SAFE_PREAD can be defined to
-   avoid use of this function in a threaded program.
-
- * "git add" allows adding a regular file to the path where a
-   submodule used to exist, but "git update-index" does not allow an
-   equivalent operation to Porcelain writers.
-
- * "git archive" incorrectly computed the header checksum; the symptom
-   was observed only when using pathnames with hi-bit set.
-
- * "git blame" did not try to make sure that the abbreviated commit
-   object names in its output are unique.
-
- * Running "git bundle verify" on a bundle that records a complete
-   history said "it requires these 0 commits".
-
- * "git clone --single-branch" to clone a single branch did not limit
-   the cloning to the specified branch.
-
- * "git diff --no-index" did not correctly handle relative paths and
-   did not correctly give exit codes when run under "--quiet" option.
-
- * "git diff --no-index" did not work with pagers correctly.
-
- * "git diff COPYING HEAD:COPYING" gave a nonsense error message that
-   claimed that the tree-ish HEAD did not have COPYING in it.
-
- * When "git log" gets "--simplify-merges/by-decoration" together with
-   "--first-parent", the combination of these options makes the
-   simplification logic to use in-core commit objects that haven't
-   been examined for relevance, either producing incorrect result or
-   taking too long to produce any output.  Teach the simplification
-   logic to ignore commits that the first-parent traversal logic
-   ignored when both are in effect to work around the issue.
-
- * "git ls-files --exclude=t -i" did not consider anything under t/ as
-   excluded, as it did not pay attention to exclusion of leading paths
-   while walking the index.  Other two users of excluded() are also
-   updated.
-
- * "git request-pull $url dev" when the tip of "dev" branch was tagged
-   with "ext4-for-linus" used the contents from the tag in the output
-   but still asked the "dev" branch to be pulled, not the tag.
-
-Also contains minor typofixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.11.3.txt b/third_party/git/Documentation/RelNotes/1.7.11.3.txt
deleted file mode 100644
index 64494f89d93a..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.11.3.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-Git v1.7.11.3 Release Notes
-===========================
-
-Fixes since v1.7.11.3
----------------------
-
- * The error message from "git push $there :bogo" (and its equivalent
-   "git push $there --delete bogo") mentioned that we tried and failed
-   to guess what ref is being deleted based on the LHS of the refspec,
-   which we don't.
-
- * A handful of files and directories we create had tighter than
-   necessary permission bits when the user wanted to have group
-   writability (e.g. by setting "umask 002").
-
- * "commit --amend" used to refuse amending a commit with an empty log
-   message, with or without "--allow-empty-message".
-
- * "git commit --amend --only --" was meant to allow "Clever" people to
-   rewrite the commit message without making any change even when they
-   have already changes for the next commit added to their index, but
-   it never worked as advertised since it was introduced in 1.3.0 era.
-
- * Even though the index can record pathnames longer than 1<<12 bytes,
-   in some places we were not comparing them in full, potentially
-   replacing index entries instead of adding.
-
- * "git show"'s auto-walking behaviour was an unreliable and
-   unpredictable hack; it now behaves just like "git log" does when it
-   walks.
-
- * "git diff", "git status" and anything that internally uses the
-   comparison machinery was utterly broken when the difference
-   involved a file with "-" as its name.  This was due to the way "git
-   diff --no-index" was incorrectly bolted on to the system, making
-   any comparison that involves a file "-" at the root level
-   incorrectly read from the standard input.
-
- * We did not have test to make sure "git rebase" without extra options
-   filters out an empty commit in the original history.
-
- * "git fast-export" produced an input stream for fast-import without
-   properly quoting pathnames when they contain SPs in them.
-
- * "git checkout --detach", when you are still on an unborn branch,
-   should be forbidden, but it wasn't.
-
- * Some implementations of Perl terminates "lines" with CRLF even when
-   the script is operating on just a sequence of bytes.  Make sure to
-   use "$PERL_PATH", the version of Perl the user told Git to use, in
-   our tests to avoid unnecessary breakages in tests.
-
-Also contains minor typofixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.11.4.txt b/third_party/git/Documentation/RelNotes/1.7.11.4.txt
deleted file mode 100644
index 3a640c2d4dbd..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.11.4.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-Git v1.7.11.4 Release Notes
-===========================
-
-Fixes since v1.7.11.3
----------------------
-
- * "$GIT_DIR/COMMIT_EDITMSG" file that is used to hold the commit log
-   message user edits was not documented.
-
- * The advise() function did not use varargs correctly to format
-   its message.
-
- * When "git am" failed, old timers knew to check .git/rebase-apply/patch
-   to see what went wrong, but we never told the users about it.
-
- * "git commit-tree" learned a more natural "-p <parent> <tree>" order
-   of arguments long time ago, but recently forgot it by mistake.
-
- * "git diff --no-ext-diff" did not output anything for a typechange
-   filepair when GIT_EXTERNAL_DIFF is in effect.
-
- * In 1.7.9 era, we taught "git rebase" about the raw timestamp format
-   but we did not teach the same trick to "filter-branch", which rolled
-   a similar logic on its own.
-
- * When "git submodule add" clones a submodule repository, it can get
-   confused where to store the resulting submodule repository in the
-   superproject's .git/ directory when there is a symbolic link in the
-   path to the current directory.
-
-Also contains minor typofixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.11.5.txt b/third_party/git/Documentation/RelNotes/1.7.11.5.txt
deleted file mode 100644
index 0a2ed855c595..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.11.5.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-Git v1.7.11.5 Release Notes
-===========================
-
-Fixes since v1.7.11.4
----------------------
-
- * The Makefile rule to create assembly output (primarily for
-   debugging purposes) did not create it next to the source.
-
- * The code to avoid mistaken attempt to add the object directory
-   itself as its own alternate could read beyond end of a string while
-   comparison.
-
- * On some architectures, "block-sha1" did not compile correctly
-   when compilers inferred alignment guarantees from our source we
-   did not intend to make.
-
- * When talking to a remote running ssh on IPv6 enabled host, whose
-   address is spelled as "[HOST]:PORT", we did not parse the address
-   correctly and failed to connect.
-
- * git-blame.el (in compat/) have been updated to use Elisp more
-   correctly.
-
- * "git checkout <branchname>" to come back from a detached HEAD state
-   incorrectly computed reachability of the detached HEAD, resulting
-   in unnecessary warnings.
-
- * "git mergetool" did not support --tool-help option to give the list
-   of supported backends, like "git difftool" does.
-
- * "git grep" stopped spawning an external "grep" long time ago, but a
-   duplicated test to check internal and external "grep" was left
-   behind.
-
-Also contains minor typofixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.11.6.txt b/third_party/git/Documentation/RelNotes/1.7.11.6.txt
deleted file mode 100644
index ba7d3c396653..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.11.6.txt
+++ /dev/null
@@ -1,84 +0,0 @@
-Git v1.7.11.6 Release Notes
-===========================
-
-Fixes since v1.7.11.5
----------------------
-
- * "ciabot" script (in contrib/) has been updated with extensive
-   documentation.
-
- * "git foo" errored out with "Not a directory" when the user had a
-   non-directory on $PATH, and worse yet it masked an alias "foo" from
-   running.
-
- * When the user exports a non-default IFS without HT, scripts that
-   rely on being able to parse "ls-files -s | while read a b c..."
-   started to fail.  Protect them from such a misconfiguration.
-
- * When the user gives an argument that can be taken as both a
-   revision name and a pathname without disambiguating with "--", we
-   used to give a help message "Use '--' to separate".  The message
-   has been clarified to show where that '--' goes on the command
-   line.
-
- * Documentation for the configuration file format had a confusing
-   example.
-
- * Older parts of the documentation described as if having a regular
-   file in .git/refs/ hierarchy were the only way to have branches and
-   tags, which is not true for quite some time.
-
- * It was generally understood that "--long-option"s to many of our
-   subcommands can be abbreviated to the unique prefix, but it was not
-   easy to find it described for new readers of the documentation set.
-
- * The "--topo-order", "--date-order" (and the lack of either means
-   the default order) options to "rev-list" and "log" family of
-   commands were poorly described in the documentation.
-
- * "git commit --amend" let the user edit the log message and then
-   died when the human-readable committer name was given
-   insufficiently by getpwent(3).
-
- * The exit status code from "git config" was way overspecified while
-   being incorrect.  The implementation has been updated to give the
-   documented status for a case that was documented, and introduce a
-   new code for "all other errors".
-
- * The output from "git diff -B" for a file that ends with an
-   incomplete line did not put "\ No newline..." on a line of its own.
-
- * "git diff" had a confusion between taking data from a path in the
-   working tree and taking data from an object that happens to have
-   name 0{40} recorded in a tree.
-
- * The "--rebase" option to "git pull" can be abbreviated to "-r",
-   but we didn't document it.
-
- * When "git push" triggered the automatic gc on the receiving end, a
-   message from "git prune" that said it was removing cruft leaked to
-   the standard output, breaking the communication protocol.
-
- * The reflog entries left by "git rebase" and "git rebase -i" were
-   inconsistent (the interactive one gave an abbreviated object name).
-
- * "git send-email" did not unquote encoded words that appear on the
-   header correctly, and lost "_" from strings.
-
- * "git stash apply/pop" did not trigger "rerere" upon conflicts
-   unlike other mergy operations.
-
- * "git submodule <cmd> path" did not error out when the path to the
-   submodule was misspelt.
-
- * "git submodule update -f" did not update paths in the working tree
-   that has local changes.
-   (merge 01d4721 sz/submodule-force-update later to maint).
-
- * "gitweb" when used with PATH_INFO failed to notice directories with
-   SP (and other characters that need URL-style quoting) in them.
-
- * Fallback 'getpass' implementation made unportable use of stdio API.
-
- * A utility shell function test_seq has been added as a replacement
-   for the 'seq' utility found on some platforms.
diff --git a/third_party/git/Documentation/RelNotes/1.7.11.7.txt b/third_party/git/Documentation/RelNotes/1.7.11.7.txt
deleted file mode 100644
index e743a2a8e46e..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.11.7.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-Git v1.7.11.7 Release Notes
-===========================
-
-Fixes since v1.7.11.6
----------------------
-
- * The synopsis said "checkout [-B branch]" to make it clear the
-   branch name is a parameter to the option, but the heading for the
-   option description was "-B::", not "-B branch::", making the
-   documentation misleading.
-
- * Git ships with a fall-back regexp implementation for platforms with
-   buggy regexp library, but it was easy for people to keep using their
-   platform regexp.  A new test has been added to check this.
-
- * "git apply -p0" did not parse pathnames on "diff --git" line
-   correctly.  This caused patches that had pathnames in no other
-   places to be mistakenly rejected (most notably, binary patch that
-   does not rename nor change mode).  Textual patches, renames or mode
-   changes have preimage and postimage pathnames in different places
-   in a form that can be parsed unambiguously and did not suffer from
-   this problem.
-
- * After "gitk" showed the contents of a tag, neither "Reread
-   references" nor "Reload" did not update what is shown as the
-   contents of it, when the user overwrote the tag with "git tag -f".
-
- * "git for-each-ref" did not correctly support more than one --sort
-   option.
-
- * "git log .." errored out saying it is both rev range and a path
-   when there is no disambiguating "--" is on the command line.
-   Update the command line parser to interpret ".." as a path in such
-   a case.
-
- * Pushing to smart HTTP server with recent Git fails without having
-   the username in the URL to force authentication, if the server is
-   configured to allow GET anonymously, while requiring authentication
-   for POST.
-
- * "git show --format='%ci'" did not give timestamp correctly for
-   commits created without human readable name on "committer" line.
-   (merge e27ddb6 jc/maint-ident-missing-human-name later to maint).
-
- * "git show --quiet" ought to be a synonym for "git show -s", but
-   wasn't.
diff --git a/third_party/git/Documentation/RelNotes/1.7.11.txt b/third_party/git/Documentation/RelNotes/1.7.11.txt
deleted file mode 100644
index 15b954ca4b01..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.11.txt
+++ /dev/null
@@ -1,139 +0,0 @@
-Git v1.7.11 Release Notes
-=========================
-
-Updates since v1.7.10
----------------------
-
-UI, Workflows & Features
-
- * A new mode for push, "simple", which is a cross between "current"
-   and "upstream", has been introduced. "git push" without any refspec
-   will push the current branch out to the same name at the remote
-   repository only when it is set to track the branch with the same
-   name over there.  The plan is to make this mode the new default
-   value when push.default is not configured.
-
- * A couple of commands learned the "--column" option to produce
-   columnar output.
-
- * A third-party tool "git subtree" is distributed in contrib/
-
- * A remote helper that acts as a proxy and caches ssl session for the
-   https:// transport is added to the contrib/ area.
-
- * Error messages given when @{u} is used for a branch without its
-   upstream configured have been clarified.
-
- * Even with the "-q"uiet option, "checkout" used to report setting up
-   tracking.  Also "branch" learned the "-q"uiet option to squelch
-   informational message.
-
- * Your build platform may support hardlinks but you may prefer not to
-   use them, e.g. when installing to DESTDIR to make a tarball and
-   untarring on a filesystem that has poor support for hardlinks.
-   There is a Makefile option NO_INSTALL_HARDLINKS for you.
-
- * The smart-http backend used to always override GIT_COMMITTER_*
-   variables with REMOTE_USER and REMOTE_ADDR, but these variables are
-   now preserved when set.
-
- * "git am" learned the "--include" option, which is an opposite of
-   existing the "--exclude" option.
-
- * When "git am -3" needs to fall back to an application of the patch
-   to a synthesized preimage followed by a 3-way merge, the paths that
-   needed such treatment are now reported to the end user, so that the
-   result in them can be eyeballed with extra care.
-
- * The output from "diff/log --stat" used to always allocate 4 columns
-   to show the number of modified lines, but not anymore.
-
- * "git difftool" learned the "--dir-diff" option to spawn external
-   diff tools that can compare two directory hierarchies at a time
-   after populating two temporary directories, instead of running an
-   instance of the external tool once per a file pair.
-
- * The "fmt-merge-msg" command learned to list the primary contributors
-   involved in the side topic you are merging in a comment in the merge
-   commit template.
-
- * "git rebase" learned to optionally keep commits that do not
-   introduce any change in the original history.
-
- * "git push --recurse-submodules" learned to optionally look into the
-   histories of submodules bound to the superproject and push them
-   out.
-
- * A 'snapshot' request to "gitweb" honors If-Modified-Since: header,
-   based on the commit date.
-
- * "gitweb" learned to highlight the patch it outputs even more.
-
-Foreign Interface
-
- * "git svn" used to die with unwanted SIGPIPE when talking with an HTTP
-   server that uses keep-alive.
-
- * "git svn" learned to use platform specific authentication
-   providers, e.g. gnome-keyring, kwallet, etc.
-
- * "git p4" has been moved out of the contrib/ area and has seen more
-   work on importing labels as tags from (and exporting tags as labels
-   to) p4.
-
-Performance and Internal Implementation (please report possible regressions)
-
- * Bash completion script (in contrib/) have been cleaned up to make
-   future work on it simpler.
-
- * An experimental "version 4" format of the index file has been
-   introduced to reduce on-disk footprint and I/O overhead.
-
- * "git archive" learned to produce its output without reading the
-   blob object it writes out in memory in its entirety.
-
- * "git index-pack" that runs when fetching or pushing objects to
-   complete the packfile on the receiving end learned to use multiple
-   threads to do its job when available.
-
- * The code to compute hash values for lines used by the internal diff
-   engine was optimized on little-endian machines, using the same
-   trick the kernel folks came up with.
-
- * "git apply" had some memory leaks plugged.
-
- * Setting up a revision traversal with many starting points was
-   inefficient as these were placed in a date-order priority queue
-   one-by-one.  Now they are collected in the queue unordered first,
-   and sorted immediately before getting used.
-
- * More lower-level commands learned to use the streaming API to read
-   from the object store without keeping everything in core.
-
- * The weighting parameters to suggestion command name typo have been
-   tweaked, so that "git tags" will suggest "tag?" and not "stage?".
-
- * Because "sh" on the user's PATH may be utterly broken on some
-   systems, run-command API now uses SHELL_PATH, not /bin/sh, when
-   spawning an external command (not applicable to Windows port).
-
- * The API to iterate over the refs/ hierarchy has been tweaked to
-   allow walking only a subset of it more efficiently.
-
-Also contains minor documentation updates and code clean-ups.
-
-
-Fixes since v1.7.10
--------------------
-
-Unless otherwise noted, all the fixes since v1.7.10 in the maintenance
-releases are contained in this release (see release notes to them for
-details).
-
- * "git submodule init" used to report "registered for path ..."
-   even for submodules that were registered earlier.
-   (cherry-pick c1c259e jl/submodule-report-new-path-once later to maint).
-
- * "git diff --stat" used to fully count a binary file with modified
-   execution bits whose contents is unmodified, which was not quite
-   right.
diff --git a/third_party/git/Documentation/RelNotes/1.7.12.1.txt b/third_party/git/Documentation/RelNotes/1.7.12.1.txt
deleted file mode 100644
index b8f04af19f96..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.12.1.txt
+++ /dev/null
@@ -1,134 +0,0 @@
-Git 1.7.12.1 Release Notes
-==========================
-
-Fixes since v1.7.12
--------------------
-
- * "git apply -p0" did not parse pathnames on "diff --git" line
-   correctly.  This caused patches that had pathnames in no other
-   places to be mistakenly rejected (most notably, binary patch that
-   does not rename nor change mode).  Textual patches, renames or mode
-   changes have preimage and postimage pathnames in different places
-   in a form that can be parsed unambiguously and did not suffer from
-   this problem.
-
- * "git cherry-pick A C B" used to replay changes in A and then B and
-   then C if these three commits had committer timestamps in that
-   order, which is not what the user who said "A C B" naturally
-   expects.
-
- * "git commit --amend" let the user edit the log message and then
-   died when the human-readable committer name was given
-   insufficiently by getpwent(3).
-
- * Some capabilities were asked by fetch-pack even when upload-pack
-   did not advertise that they are available.  fetch-pack has been
-   fixed not to do so.
-
- * "git diff" had a confusion between taking data from a path in the
-   working tree and taking data from an object that happens to have
-   name 0{40} recorded in a tree.
-
- * "git for-each-ref" did not correctly support more than one --sort
-   option.
-
- * "git log .." errored out saying it is both rev range and a path
-   when there is no disambiguating "--" is on the command line.
-   Update the command line parser to interpret ".." as a path in such
-   a case.
-
- * The "--topo-order", "--date-order" (and the lack of either means
-   the default order) options to "rev-list" and "log" family of
-   commands were poorly described in the documentation.
-
- * "git prune" without "-v" used to warn about leftover temporary
-   files (which is an indication of an earlier aborted operation).
-
- * Pushing to smart HTTP server with recent Git fails without having
-   the username in the URL to force authentication, if the server is
-   configured to allow GET anonymously, while requiring authentication
-   for POST.
-
- * The reflog entries left by "git rebase" and "git rebase -i" were
-   inconsistent (the interactive one gave an abbreviated object name).
-
- * When "git push" triggered the automatic gc on the receiving end, a
-   message from "git prune" that said it was removing cruft leaked to
-   the standard output, breaking the communication protocol.
-
- * "git show --quiet" ought to be a synonym for "git show -s", but
-   wasn't.
-
- * "git show --format='%ci'" did not give timestamp correctly for
-   commits created without human readable name on "committer" line.
-
- * "git send-email" did not unquote encoded words that appear on the
-   header correctly, and lost "_" from strings.
-
- * The interactive prompt "git send-email" gives was error prone. It
-   asked "What e-mail address do you want to use?" with the address it
-   guessed (correctly) the user would want to use in its prompt,
-   tempting the user to say "y". But the response was taken as "No,
-   please use 'y' as the e-mail address instead", which is most
-   certainly not what the user meant.
-
- * "gitweb" when used with PATH_INFO failed to notice directories with
-   SP (and other characters that need URL-style quoting) in them.
-
- * When the user gives an argument that can be taken as both a
-   revision name and a pathname without disambiguating with "--", we
-   used to give a help message "Use '--' to separate".  The message
-   has been clarified to show where that '--' goes on the command
-   line.
-
- * When the user exports a non-default IFS without HT, scripts that
-   rely on being able to parse "ls-files -s | while read a b c..."
-   started to fail.  Protect them from such a misconfiguration.
-
- * The attribute system may be asked for a path that itself or its
-   leading directories no longer exists in the working tree, and it is
-   fine if we cannot open .gitattribute file in such a case.  Failure
-   to open per-directory .gitattributes with error status other than
-   ENOENT and ENOTDIR should be diagnosed, but it wasn't.
-
- * After "gitk" showed the contents of a tag, neither "Reread
-   references" nor "Reload" did not update what is shown as the
-   contents of it, when the user overwrote the tag with "git tag -f".
-
- * "ciabot" script (in contrib/) has been updated with extensive
-   documentation.
-
- * "git-jump" script (in contrib/) did not work well when
-   diff.noprefix or diff.mnemonicprefix is in effect.
-
- * Older parts of the documentation described as if having a regular
-   file in .git/refs/ hierarchy were the only way to have branches and
-   tags, which is not true for quite some time.
-
- * A utility shell function test_seq has been added as a replacement
-   for the 'seq' utility found on some platforms.
-
- * Compatibility wrapper to learn the maximum number of file
-   descriptors we can open around sysconf(_SC_OPEN_MAX) and
-   getrlimit(RLIMIT_NO_FILE) has been introduced for portability.
-
- * We used curl_easy_strerror() without checking version of cURL,
-   breaking the build for versions before curl 7.12.0.
-
- * Code to work around MacOS X UTF-8 gotcha has been cleaned up.
-
- * Fallback 'getpass' implementation made unportable use of stdio API.
-
- * The "--rebase" option to "git pull" can be abbreviated to "-r",
-   but we didn't document it.
-
- * It was generally understood that "--long-option"s to many of our
-   subcommands can be abbreviated to the unique prefix, but it was not
-   easy to find it described for new readers of the documentation set.
-
- * The synopsis said "checkout [-B branch]" to make it clear the
-   branch name is a parameter to the option, but the heading for the
-   option description was "-B::", not "-B branch::", making the
-   documentation misleading.
-
-Also contains numerous documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.12.2.txt b/third_party/git/Documentation/RelNotes/1.7.12.2.txt
deleted file mode 100644
index 69255745e6ea..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.12.2.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-Git 1.7.12.2 Release Notes
-==========================
-
-Fixes since v1.7.12.1
----------------------
-
- * When "git am" is fed an input that has multiple "Content-type: ..."
-   header, it did not grok charset= attribute correctly.
-
- * Even during a conflicted merge, "git blame $path" always meant to
-   blame uncommitted changes to the "working tree" version; make it
-   more useful by showing cleanly merged parts as coming from the other
-   branch that is being merged.
-
- * "git blame MAKEFILE" run in a history that has "Makefile" but not
-   "MAKEFILE" should say "No such file MAKEFILE in HEAD", but got
-   confused on a case insensitive filesystem and failed to do so.
-
- * "git fetch --all", when passed "--no-tags", did not honor the
-   "--no-tags" option while fetching from individual remotes (the same
-   issue existed with "--tags", but combination "--all --tags" makes
-   much less sense than "--all --no-tags").
-
- * "git log/diff/format-patch --stat" showed the "N line(s) added"
-   comment in user's locale and caused careless submitters to send
-   patches with such a line in them to projects whose project language
-   is not their language, mildly irritating others. Localization to
-   the line has been disabled for now.
-
- * "git log --all-match --grep=A --grep=B" ought to show commits that
-   mention both A and B, but when these three options are used with
-   --author or --committer, it showed commits that mention either A or
-   B (or both) instead.
-
- * The subcommand to remove the definition of a remote in "git remote"
-   was named "rm" even though all other subcommands were spelled out.
-   Introduce "git remote remove" to remove confusion, and keep "rm" as
-   a backward compatible synonym.
-
-Also contains a handful of documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.12.3.txt b/third_party/git/Documentation/RelNotes/1.7.12.3.txt
deleted file mode 100644
index 4b822976b8ad..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.12.3.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Git 1.7.12.3 Release Notes
-==========================
-
-Fixes since v1.7.12.2
----------------------
-
- * "git am" mishandled a patch attached as application/octet-stream
-   (e.g. not text/*); Content-Transfer-Encoding (e.g. base64) was not
-   honored correctly.
-
- * It was unclear in the documentation for "git blame" that it is
-   unnecessary for users to use the "--follow" option.
-
- * A repository created with "git clone --single" had its fetch
-   refspecs set up just like a clone without "--single", leading the
-   subsequent "git fetch" to slurp all the other branches, defeating
-   the whole point of specifying "only this branch".
-
- * "git fetch" over http had an old workaround for an unlikely server
-   misconfiguration; it turns out that this hurts debuggability of the
-   configuration in general, and has been reverted.
-
- * "git fetch" over http advertised that it supports "deflate", which
-   is much less common, and did not advertise the more common "gzip" on
-   its Accept-Encoding header.
-
- * "git receive-pack" (the counterpart to "git push") did not give
-   progress output while processing objects it received to the user
-   when run over the smart-http protocol.
-
- * "git status" honored the ignore=dirty settings in .gitmodules but
-   "git commit" didn't.
-
-Also contains a handful of documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.12.4.txt b/third_party/git/Documentation/RelNotes/1.7.12.4.txt
deleted file mode 100644
index c6da3cc93956..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.12.4.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Git 1.7.12.4 Release Notes
-==========================
-
-Fixes since v1.7.12.3
----------------------
-
- * "git fetch" over the dumb-http revision walker could segfault when
-   curl's multi interface was used.
-
- * It was possible to give specific paths for "asciidoc" and other
-   tools in the documentation toolchain, but not for "xmlto".
-
- * "gitweb" did not give the correct committer timezone in its feed
-   output due to a typo.
-
- * The "-Xours" (and similarly -Xtheirs) backend option to "git
-   merge -s recursive" was ignored for binary files.  Now it is
-   honored.
-
- * The "binary" synthetic attribute made "diff" to treat the path as
-   binary, but not "merge".
-
-Also contains many documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.12.txt b/third_party/git/Documentation/RelNotes/1.7.12.txt
deleted file mode 100644
index 010d8c7de471..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.12.txt
+++ /dev/null
@@ -1,136 +0,0 @@
-Git v1.7.12 Release Notes
-=========================
-
-Updates since v1.7.11
----------------------
-
-UI, Workflows & Features
-
- * Git can be told to normalize pathnames it read from readdir(3) and
-   all arguments it got from the command line into precomposed UTF-8
-   (assuming that they come as decomposed UTF-8), in order to work
-   around issues on Mac OS.
-
-   I think there still are other places that need conversion
-   (e.g. paths that are read from stdin for some commands), but this
-   should be a good first step in the right direction.
-
- * Per-user $HOME/.gitconfig file can optionally be stored in
-   $HOME/.config/git/config instead, which is in line with XDG.
-
- * The value of core.attributesfile and core.excludesfile default to
-   $HOME/.config/git/attributes and $HOME/.config/git/ignore respectively
-   when these files exist.
-
- * Logic to disambiguate abbreviated object names have been taught to
-   take advantage of object types that are expected in the context,
-   e.g. XXXXXX in the "git describe" output v1.2.3-gXXXXXX must be a
-   commit object, not a blob nor a tree.  This will help us prolong
-   the lifetime of abbreviated object names.
-
- * "git apply" learned to wiggle the base version and perform three-way
-   merge when a patch does not exactly apply to the version you have.
-
- * Scripted Porcelain writers now have access to the credential API via
-   the "git credential" plumbing command.
-
- * "git help" used to always default to "man" format even on platforms
-   where "man" viewer is not widely available.
-
- * "git clone --local $path" started its life as an experiment to
-   optionally use link/copy when cloning a repository on the disk, but
-   we didn't deprecate it after we made the option a no-op to always
-   use the optimization.  The command learned "--no-local" option to
-   turn this off, as a more explicit alternative over use of file://
-   URL.
-
- * "git fetch" and friends used to say "remote side hung up
-   unexpectedly" when they failed to get response they expect from the
-   other side, but one common reason why they don't get expected
-   response is that the remote repository does not exist or cannot be
-   read. The error message in this case was updated to give better
-   hints to the user.
-
- * "git help -w $cmd" can show HTML version of documentation for
-   "git-$cmd" by setting help.htmlpath to somewhere other than the
-   default location where the build procedure installs them locally;
-   the variable can even point at a http:// URL.
-
- * "git rebase [-i] --root $tip" can now be used to rewrite all the
-   history leading to "$tip" down to the root commit.
-
- * "git rebase -i" learned "-x <cmd>" to insert "exec <cmd>" after
-   each commit in the resulting history.
-
- * "git status" gives finer classification to various states of paths
-   in conflicted state and offer advice messages in its output.
-
- * "git submodule" learned to deal with nested submodule structure
-   where a module is contained within a module whose origin is
-   specified as a relative URL to its superproject's origin.
-
- * A rather heavy-ish "git completion" script has been split to create
-   a separate "git prompting" script, to help lazy-autoloading of the
-   completion part while making prompting part always available.
-
- * "gitweb" pays attention to various forms of credits that are
-   similar to "Signed-off-by:" lines in the commit objects and
-   highlights them accordingly.
-
-
-Foreign Interface
-
- * "mediawiki" remote helper (in contrib/) learned to handle file
-   attachments.
-
- * "git p4" now uses "Jobs:" and "p4 move" when appropriate.
-
- * vcs-svn has been updated to clean-up compilation, lift 32-bit
-   limitations, etc.
-
-
-Performance, Internal Implementation, etc. (please report possible regressions)
-
- * Some tests showed false failures caused by a bug in ecryptofs.
-
- * We no longer use AsciiDoc7 syntax in our documentation and favor a
-   more modern style.
-
- * "git am --rebasing" codepath was taught to grab authorship, log
-   message and the patch text directly out of existing commits.  This
-   will help rebasing commits that have confusing "diff" output in
-   their log messages.
-
- * "git index-pack" and "git pack-objects" use streaming API to read
-   from the object store to avoid having to hold a large blob object
-   in-core while they are doing their thing.
-
- * Code to match paths with exclude patterns learned to avoid calling
-   fnmatch() by comparing fixed leading substring literally when
-   possible.
-
- * "git log -n 1 -- rarely-touched-path" was spending unnecessary
-   cycles after showing the first change to find the next one, only to
-   discard it.
-
- * "git svn" got a large-looking code reorganization at the last
-   minute before the code freeze.
-
-
-Also contains minor documentation updates and code clean-ups.
-
-
-Fixes since v1.7.11
--------------------
-
-Unless otherwise noted, all the fixes since v1.7.11 in the maintenance
-releases are contained in this release (see release notes to them for
-details).
-
- * "git submodule add" was confused when the superproject did not have
-   its repository in its usual place in the working tree and GIT_DIR
-   and GIT_WORK_TREE was used to access it.
-
- * "git commit --amend" let the user edit the log message and then died
-   when the human-readable committer name was given insufficiently by
-   getpwent(3).
diff --git a/third_party/git/Documentation/RelNotes/1.7.2.1.txt b/third_party/git/Documentation/RelNotes/1.7.2.1.txt
deleted file mode 100644
index 1103c47a4f69..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.2.1.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-Git v1.7.2.1 Release Notes
-==========================
-
-Fixes since v1.7.2
-------------------
-
- * "git instaweb" wasn't useful when your Apache was installed under a
-   name other than apache2 (e.g. "httpd").
-
- * Similarly, "git web--browse" (invoked by "git help -w") learned that
-   chrome browser is sometimes called google-chrome.
-
- * An overlong line after ".gitdir: " in a git file caused out of bounds
-   access to an array on the stack.
-
- * "git config --path conf.var" to attempt to expand a variable conf.var
-   that uses "~/" short-hand segfaulted when $HOME environment variable
-   was not set.
-
- * Documentation on Cygwin failed to build.
-
- * The error message from "git pull blarg" when 'blarg' is an unknown
-   remote name has been improved.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.2.2.txt b/third_party/git/Documentation/RelNotes/1.7.2.2.txt
deleted file mode 100644
index 71eb6a8b0a5a..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.2.2.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Git v1.7.2.2 Release Notes
-==========================
-
-Fixes since v1.7.2.1
---------------------
-
- * Object transfer over smart http transport deadlocked the client when
-   the remote HTTP server returned a failure, instead of erroring it out.
-
- * git-gui honors custom textconv filters when showing diff and blame;
-
- * git diff --relative=subdir (without the necessary trailing /) did not
-   work well;
-
- * "git diff-files -p --submodule" was recently broken;
-
- * "git checkout -b n ':/token'" did not work;
-
- * "git index-pack" (hence "git fetch/clone/pull/push") enabled the object
-   replacement machinery by mistake (it never should have);
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.2.3.txt b/third_party/git/Documentation/RelNotes/1.7.2.3.txt
deleted file mode 100644
index 610960cfe120..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.2.3.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-Git v1.7.2.3 Release Notes
-==========================
-
-Fixes since v1.7.2.2
---------------------
-
- * When people try insane things such as delta-compressing 4GiB files, we
-   threw an assertion failure.
-
- * "git archive" gave the full commit ID for "$Format:%h$".
-
- * "git fetch --tags" did not fetch tags when remote.<nick>.tagopt was set
-   to --no-tags.  The command line option now overrides the configuration
-   setting.
-
- * "git for-each-ref --format='%(objectname:short)'" has been completely
-   broken for a long time.
-
- * "git gc" incorrectly pruned a rerere record that was created long
-   time ago but still is actively and repeatedly used.
-
- * "git log --follow -M -p" was seriously broken in 1.7.2, reporting
-   assertion failure.
-
- * Running "git log" with an incorrect option started pager nevertheless,
-   forcing the user to dismiss it.
-
- * "git rebase" did not work well when the user has diff.renames
-   configuration variable set.
-
- * An earlier (and rather old) fix to "git rebase" against a rebased
-   upstream broke a more normal, non rebased upstream case rather badly,
-   attempting to re-apply patches that are already accepted upstream.
-
- * "git submodule sync" forgot to update the superproject's config file
-   when submodule URL changed.
-
- * "git pack-refs --all --prune" did not remove a directory that has
-   become empty.
diff --git a/third_party/git/Documentation/RelNotes/1.7.2.4.txt b/third_party/git/Documentation/RelNotes/1.7.2.4.txt
deleted file mode 100644
index f7950a4c04d0..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.2.4.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Git v1.7.2.4 Release Notes
-==========================
-
-This is primarily to backport support for the new "add.ignoreErrors"
-name given to the existing "add.ignore-errors" configuration variable.
-
-The next version, Git 1.7.4, and future versions, will support both
-old and incorrect name and the new corrected name, but without this
-backport, users who want to use the new name "add.ignoreErrors" in
-their repositories cannot use older versions of Git.
diff --git a/third_party/git/Documentation/RelNotes/1.7.2.5.txt b/third_party/git/Documentation/RelNotes/1.7.2.5.txt
deleted file mode 100644
index bf976c40db7a..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.2.5.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Git v1.7.2.5 Release Notes
-==========================
-
-Fixes since v1.7.2.4
---------------------
-
- * "gitweb" can sometimes be tricked into parrotting a filename argument
-   given in a request without properly quoting.
diff --git a/third_party/git/Documentation/RelNotes/1.7.2.txt b/third_party/git/Documentation/RelNotes/1.7.2.txt
deleted file mode 100644
index 15cf01178c1f..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.2.txt
+++ /dev/null
@@ -1,151 +0,0 @@
-Git v1.7.2 Release Notes
-========================
-
-Updates since v1.7.1
---------------------
-
- * core.eol configuration and text/eol attributes are the new way to control
-   the end of line conventions for files in the working tree.
-
- * core.autocrlf has been made safer - it will now only handle line
-   endings for new files and files that are LF-only in the
-   repository. To normalize content that has been checked in with
-   CRLF, use the new eol/text attributes.
-
- * The whitespace rules used in "git apply --whitespace" and "git diff"
-   gained a new member in the family (tab-in-indent) to help projects with
-   policy to indent only with spaces.
-
- * When working from a subdirectory, by default, git does not look for its
-   metadirectory ".git" across filesystems, primarily to help people who
-   have invocations of git in their custom PS1 prompts, as being outside
-   of a git repository would look for ".git" all the way up to the root
-   directory, and NFS mounts are often slow.  DISCOVERY_ACROSS_FILESYSTEM
-   environment variable can be used to tell git not to stop at a
-   filesystem boundary.
-
- * Usage help messages generated by parse-options library (i.e. most
-   of the Porcelain commands) are sent to the standard output now.
-
- * ':/<string>' notation to look for a commit now takes regular expression
-   and it is not anchored at the beginning of the commit log message
-   anymore (this is a backward incompatible change).
-
- * "git" wrapper learned "-c name=value" option to override configuration
-   variable from the command line.
-
- * Improved portability for various platforms including older SunOS,
-   HP-UX 10/11, AIX, Tru64, etc. and platforms with Python 2.4.
-
- * The message from "git am -3" has been improved when conflict
-   resolution ended up making the patch a no-op.
-
- * "git blame" applies the textconv filter to the contents it works
-   on, when available.
-
- * "git checkout --orphan newbranch" is similar to "-b newbranch" but
-   prepares to create a root commit that is not connected to any existing
-   commit.
-
- * "git cherry-pick" learned to pick a range of commits
-   (e.g. "cherry-pick A..B" and "cherry-pick --stdin"), so did "git
-   revert"; these do not support the nicer sequencing control "rebase
-   [-i]" has, though.
-
- * "git cherry-pick" and "git revert" learned --strategy option to specify
-   the merge strategy to be used when performing three-way merges.
-
- * "git cvsserver" can be told to use pserver; its password file can be
-   stored outside the repository.
-
- * The output from the textconv filter used by "git diff" can be cached to
-   speed up their reuse.
-
- * "git diff --word-diff=<mode>" extends the existing "--color-words"
-   option, making it more useful in color-challenged environments.
-
- * The regexp to detect function headers used by "git diff" for PHP has
-   been enhanced for visibility modifiers (public, protected, etc.) to
-   better support PHP5.
-
- * "diff.noprefix" configuration variable can be used to implicitly
-   ask for "diff --no-prefix" behaviour.
-
- * "git for-each-ref" learned "%(objectname:short)" that gives the object
-   name abbreviated.
-
- * "git format-patch" learned --signature option and format.signature
-   configuration variable to customize the e-mail signature used in the
-   output.
-
- * Various options to "git grep" (e.g. --count, --name-only) work better
-   with binary files.
-
- * "git grep" learned "-Ovi" to open the files with hits in your editor.
-
- * "git help -w" learned "chrome" and "chromium" browsers.
-
- * "git log --decorate" shows commit decorations in various colours.
-
- * "git log --follow <path>" follows across copies (it used to only follow
-   renames).  This may make the processing more expensive.
-
- * "git log --pretty=format:<template>" specifier learned "% <something>"
-   magic that inserts a space only when %<something> expands to a
-   non-empty string; this is similar to "%+<something>" magic, but is
-   useful in a context to generate a single line output.
-
- * "git notes prune" learned "-n" (dry-run) and "-v" options, similar to
-   what "git prune" has.
-
- * "git patch-id" can be fed a mbox without getting confused by the
-   signature line in the format-patch output.
-
- * "git remote" learned "set-branches" subcommand.
-
- * "git rev-list A..B" learned --ancestry-path option to further limit
-   the result to the commits that are on the ancestry chain between A and
-   B (i.e. commits that are not descendants of A are excluded).
-
- * "git show -5" is equivalent to "git show --do-walk 5"; this is similar
-   to the update to make "git show master..next" walk the history,
-   introduced in 1.6.4.
-
- * "git status [-s] --ignored" can be used to list ignored paths.
-
- * "git status -s -b" shows the current branch in the output.
-
- * "git status" learned "--ignore-submodules" option.
-
- * Various "gitweb" enhancements and clean-ups, including syntax
-   highlighting, "plackup" support for instaweb, .fcgi suffix to run
-   it as FastCGI script, etc.
-
- * The test harness has been updated to produce TAP-friendly output.
-
- * Many documentation improvement patches are also included.
-
-
-Fixes since v1.7.1
-------------------
-
-All of the fixes in v1.7.1.X maintenance series are included in this
-release, unless otherwise noted.
-
- * We didn't URL decode "file:///path/to/repo" correctly when path/to/repo
-   had percent-encoded characters (638794c, 9d2e942, ce83eda, 3c73a1d).
-
- * "git clone" did not configure remote.origin.url correctly for bare
-   clones (df61c889).
-
- * "git diff --graph" works better with "--color-words" and other options
-   (81fa024..4297c0a).
-
- * "git diff" could show ambiguous abbreviation of blob object names on
-   its "index" line (3e5a188).
-
- * "git reset --hard" started from a wrong directory and a working tree in
-   a nonstandard location is in use got confused (560fb6a1).
-
- * "git read-tree -m A B" used to switch to branch B while retaining
-   local changes added an incorrect cache-tree information (b1f47514).
diff --git a/third_party/git/Documentation/RelNotes/1.7.3.1.txt b/third_party/git/Documentation/RelNotes/1.7.3.1.txt
deleted file mode 100644
index 002c93b9612d..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.3.1.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Git v1.7.3.1 Release Notes
-==========================
-
-Fixes since v1.7.3
-------------------
-
- * "git stash show stash@{$n}" was accidentally broken in 1.7.3 ("git
-   stash show" without any argument still worked, though).
-
- * "git stash branch $branch stash@{$n}" was accidentally broken in
-   1.7.3 and started dropping the named stash even when branch creation
-   failed.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.3.2.txt b/third_party/git/Documentation/RelNotes/1.7.3.2.txt
deleted file mode 100644
index 5c93b85af4a2..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.3.2.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v1.7.3.2 Release Notes
-==========================
-
-This is primarily to push out many documentation fixes accumulated since
-the 1.7.3.1 release.
diff --git a/third_party/git/Documentation/RelNotes/1.7.3.3.txt b/third_party/git/Documentation/RelNotes/1.7.3.3.txt
deleted file mode 100644
index 9b2b2448dfd4..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.3.3.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-Git v1.7.3.3 Release Notes
-==========================
-
-In addition to the usual fixes, this release also includes support for
-the new "add.ignoreErrors" name given to the existing "add.ignore-errors"
-configuration variable.
-
-The next version, Git 1.7.4, and future versions, will support both
-old and incorrect name and the new corrected name, but without this
-backport, users who want to use the new name "add.ignoreErrors" in
-their repositories cannot use older versions of Git.
-
-Fixes since v1.7.3.2
---------------------
-
- * "git apply" segfaulted when a bogus input is fed to it.
-
- * Running "git cherry-pick --ff" on a root commit segfaulted.
-
- * "diff", "blame" and friends incorrectly applied textconv filters to
-   symlinks.
-
- * Highlighting of whitespace breakage in "diff" output was showing
-   incorrect amount of whitespaces when blank-at-eol is set and the line
-   consisted only of whitespaces and a TAB.
-
- * "diff" was overly inefficient when trying to find the line to use for
-   the function header (i.e. equivalent to --show-c-function of GNU diff).
-
- * "git imap-send" depends on libcrypto but our build rule relied on the
-   linker to implicitly link it via libssl, which was wrong.
-
- * "git merge-file" can be called from within a subdirectory now.
-
- * "git repack -f" expanded and recompressed non-delta objects in the
-   existing pack, which was wasteful.  Use new "-F" option if you really
-   want to (e.g. when changing the pack.compression level).
-
- * "git rev-list --format="...%x00..." incorrectly chopped its output
-   at NUL.
-
- * "git send-email" did not correctly remove duplicate mail addresses from
-   the Cc: header that appear on the To: header.
-
- * The completion script (in contrib/completion) ignored lightweight tags
-   in __git_ps1().
-
- * "git-blame" mode (in contrib/emacs) didn't say (require 'format-spec)
-   even though it depends on it; it didn't work with Emacs 22 or older
-   unless Gnus is used.
-
- * "git-p4" (in contrib/) did not correctly handle deleted files.
-
-Other minor fixes and documentation updates are also included.
diff --git a/third_party/git/Documentation/RelNotes/1.7.3.4.txt b/third_party/git/Documentation/RelNotes/1.7.3.4.txt
deleted file mode 100644
index e57f7c176db8..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.3.4.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-Git v1.7.3.4 Release Notes
-==========================
-
-Fixes since v1.7.3.3
---------------------
-
- * Smart HTTP transport used to incorrectly retry redirected POST
-   request with GET request.
-
- * "git apply" did not correctly handle patches that only change modes
-   if told to apply while stripping leading paths with -p option.
-
- * "git apply" can deal with patches with timezone formatted with a
-   colon between the hours and minutes part (e.g. "-08:00" instead of
-   "-0800").
-
- * "git checkout" removed an untracked file "foo" from the working
-   tree when switching to a branch that contains a tracked path
-   "foo/bar".  Prevent this, just like the case where the conflicting
-   path were "foo" (c752e7f..7980872d).
-
- * "git cherry-pick" or "git revert" refused to work when a path that
-   would be modified by the operation was stat-dirty without a real
-   difference in the contents of the file.
-
- * "git diff --check" reported an incorrect line number for added
-   blank lines at the end of file.
-
- * "git imap-send" failed to build under NO_OPENSSL.
-
- * Setting log.decorate configuration variable to "0" or "1" to mean
-   "false" or "true" did not work.
-
- * "git push" over dumb HTTP protocol did not work against WebDAV
-   servers that did not terminate a collection name with a slash.
-
- * "git tag -v" did not work with GPG signatures in rfc1991 mode.
-
- * The post-receive-email sample hook was accidentally broken in 1.7.3.3
-   update.
-
- * "gitweb" can sometimes be tricked into parrotting a filename argument
-   given in a request without properly quoting.
-
-Other minor fixes and documentation updates are also included.
diff --git a/third_party/git/Documentation/RelNotes/1.7.3.5.txt b/third_party/git/Documentation/RelNotes/1.7.3.5.txt
deleted file mode 100644
index 40f3ba579544..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.3.5.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Git 1.7.3.5 Release Notes
-=========================
-
- * The xfuncname pattern used by "git diff" and "git grep" to show the
-   last notable line in context were broken for python and ruby for a long
-   time.
-
- * "git merge" into an unborn branch removed an untracked file "foo" from
-   the working tree when merged branch had "foo" (this fix was already in
-   1.7.3.3 but was omitted from the release notes by mistake).
-
- * "git status -s" did not quote unprintable characters in paths as
-   documented.
-
- * "git am --abort" used to always reset to the commit at the beginning of
-   the last "am" invocation that has stopped, losing any unrelated commits
-   that may have been made since then.  Now it refrains from doing so and
-   instead issues a warning.
-
- * "git blame" incorrectly reused bogusly cached result of textconv
-   filter for files from the working tree.
-
- * "git commit" used to abort after the user edited the log message
-   when the committer information was not correctly set up.  It now
-   aborts before starting the editor.
-
- * "git commit --date=invalid" used to silently ignore the incorrectly
-   specified date; it is now diagnosed as an error.
-
- * "git rebase --skip" to skip the last commit in a series used to fail
-   to run post-rewrite hook and to copy notes from old commits that have
-   successfully been rebased so far.  Now it do (backmerge ef88ad2).
-
- * "gitweb" tried to show a wrong feed logo when none was specified.
diff --git a/third_party/git/Documentation/RelNotes/1.7.3.txt b/third_party/git/Documentation/RelNotes/1.7.3.txt
deleted file mode 100644
index 309c33181f86..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.3.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-Git v1.7.3 Release Notes
-========================
-
-Updates since v1.7.2
---------------------
-
- * git-gui, now at version 0.13.0, got various updates and a new
-   maintainer, Pat Thoyts.
-
- * Gitweb allows its configuration to change per each request; it used to
-   read the configuration once upon startup.
-
- * When git finds a corrupt object, it now reports the file that contains
-   it.
-
- * "git checkout -B <it>" is a shorter way to say "git branch -f <it>"
-   followed by "git checkout <it>".
-
- * When "git checkout" or "git merge" refuse to proceed in order to
-   protect local modification to your working tree, they used to stop
-   after showing just one path that might be lost.  They now show all,
-   in a format that is easier to read.
-
- * "git clean" learned "-e" ("--exclude") option.
-
- * Hunk headers produced for C# files by "git diff" and friends show more
-   relevant context than before.
-
- * diff.ignoresubmodules configuration variable can be used to squelch the
-   differences in submodules reported when running commands (e.g. "diff",
-   "status", etc.) at the superproject level.
-
- * http.useragent configuration can be used to lie who you are to your
-   restrictive firewall.
-
- * "git rebase --strategy <s>" learned "-X" option to pass extra options
-   that are understood by the chosen merge strategy.
-
- * "git rebase -i" learned "exec" that you can insert into the insn sheet
-   to run a command between its steps.
-
- * "git rebase" between branches that have many binary changes that do
-   not conflict should be faster.
-
- * "git rebase -i" peeks into rebase.autosquash configuration and acts as
-   if you gave --autosquash from the command line.
-
-
-Also contains various documentation updates.
-
-
-Fixes since v1.7.2
-------------------
-
-All of the fixes in v1.7.2.X maintenance series are included in this
-release, unless otherwise noted.
-
- * "git merge -s recursive" (which is the default) did not handle cases
-   where a directory becomes a file (or vice versa) very well.
-
- * "git fetch" and friends were accidentally broken for url with "+" in
-   its path, e.g. "git://git.gnome.org/gtk+".
-
- * "git fetch $url" (i.e. without refspecs) was broken for quite some
-   time, if the current branch happen to be tracking some remote.
-
- * "git ls-tree dir dirgarbage", when "dir" was a directory,
-   incorrectly recursed into "dir".
-
- * "git note remove" created unnecessary extra commit when named object
-   did not have any note to begin with.
-
- * "git rebase" did not work well if you had diff.noprefix configured.
-
- * "git -c foo=bar subcmd" did not work well for subcmd that is not
-   implemented as a built-in command.
diff --git a/third_party/git/Documentation/RelNotes/1.7.4.1.txt b/third_party/git/Documentation/RelNotes/1.7.4.1.txt
deleted file mode 100644
index 79923a6d2f57..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.4.1.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Git v1.7.4.1 Release Notes
-==========================
-
-Fixes since v1.7.4
-------------------
-
- * On Windows platform, the codepath to spawn a new child process forgot
-   to first flush the output buffer.
-
- * "git bundle" did not use OFS_DELTA encoding, making its output a few
-   per-cent larger than necessarily.
-
- * The option to tell "git clone" to recurse into the submodules was
-   misspelled with an underscore "--recurse_submodules".
-
- * "git diff --cached HEAD" before the first commit does what an end user
-   would expect (namely, show what would be committed without further "git
-   add").
-
- * "git fast-import" didn't accept the command to ask for "notes" feature
-   to be present in its input stream, even though it was capable of the
-   feature.
-
- * "git fsck" gave up scanning loose object files in directories with
-   garbage files.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.4.2.txt b/third_party/git/Documentation/RelNotes/1.7.4.2.txt
deleted file mode 100644
index ef4ce1fcd37a..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.4.2.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-Git v1.7.4.2 Release Notes
-==========================
-
-Fixes since v1.7.4.1
---------------------
-
- * Many documentation updates to match "git cmd -h" output and the
-   git-cmd manual page.
-
- * We used to keep one file descriptor open for each and every packfile
-   that we have a mmap window on it (read: "in use"), even when for very
-   tiny packfiles.  We now close the file descriptor early when the entire
-   packfile fits inside one mmap window.
-
- * "git bisect visualize" tried to run "gitk" in windowing
-   environments even when "gitk" is not installed, resulting in a
-   strange error message.
-
- * "git clone /no/such/path" did not fail correctly.
-
- * "git commit" did not correctly error out when the user asked to use a
-   non existent file as the commit message template.
-
- * "git diff --stat -B" ran on binary files counted the changes in lines,
-   which was nonsensical.
-
- * "git diff -M" opportunistically detected copies, which was not
-   necessarily a good thing, especially when it is internally run by
-   recursive merge.
-
- * "git difftool" didn't tell (g)vimdiff that the files it is reading are
-   to be opened read-only.
-
- * "git merge" didn't pay attention to prepare-commit-msg hook, even
-   though if a merge is conflicted and manually resolved, the subsequent
-   "git commit" would have triggered the hook, which was inconsistent.
-
- * "git patch-id" (and commands like "format-patch --ignore-in-upstream"
-   that use it as their internal logic) handled changes to files that end
-   with incomplete lines incorrectly.
-
- * The official value to tell "git push" to push the current branch back
-   to update the upstream branch it forked from is now called "upstream".
-   The old name "tracking" is and will be supported.
-
- * "git submodule update" used to honor the --merge/--rebase option (or
-   corresponding configuration variables) even for a newly cloned
-   subproject, which made no sense (so/submodule-no-update-first-time).
-
- * gitweb's "highlight" interface mishandled tabs.
-
- * gitweb didn't understand timezones with GMT offset that is not
-   multiple of a whole hour.
-
- * gitweb had a few forward-incompatible syntactic constructs and
-   also used incorrect variable when showing the file mode in a diff.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.4.3.txt b/third_party/git/Documentation/RelNotes/1.7.4.3.txt
deleted file mode 100644
index 02a3d5bdf65c..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.4.3.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Git v1.7.4.3 Release Notes
-==========================
-
-Fixes since v1.7.4.2
---------------------
-
- * "git apply" used to confuse lines updated by previous hunks as lines
-   that existed before when applying a hunk, contributing misapplication
-   of patches with offsets.
-
- * "git branch --track" (and "git checkout --track --branch") used to
-   allow setting up a random non-branch that does not make sense to follow
-   as the "upstream".  The command correctly diagnoses it as an error.
-
- * "git checkout $other_branch" silently removed untracked symbolic links
-   in the working tree that are in the way in order to check out paths
-   under it from the named branch.
-
- * "git cvsimport" did not bail out immediately when the cvs server cannot
-   be reached, spewing unnecessary error messages that complain about the
-   server response that it never got.
-
- * "git diff --quiet" did not work very well with the "--diff-filter"
-   option.
-
- * "git grep -n" lacked a long-hand synonym --line-number.
-
- * "git stash apply" reported the result of its operation by running
-   "git status" from the top-level of the working tree; it should (and
-   now does) run it from the user's working directory.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.4.4.txt b/third_party/git/Documentation/RelNotes/1.7.4.4.txt
deleted file mode 100644
index ff06e04a58c0..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.4.4.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-Git v1.7.4.4 Release Notes
-==========================
-
-Fixes since v1.7.4.3
---------------------
-
- * Compilation of sha1_file.c on BSD platforms were broken due to our
-   recent use of getrlimit() without including <sys/resource.h>.
-
- * "git config" did not diagnose incorrect configuration variable names.
-
- * "git format-patch" did not wrap a long subject line that resulted from
-   rfc2047 encoding.
-
- * "git instaweb" should work better again with plackup.
-
- * "git log --max-count=4 -Sfoobar" now shows 4 commits that changes the
-   number of occurrences of string "foobar"; it used to scan only for 4
-   commits and then emitted only matching ones.
-
- * "git log --first-parent --boundary $c^..$c" segfaulted on a merge.
-
- * "git pull" into an empty branch should have behaved as if
-   fast-forwarding from emptiness to the version being pulled, with
-   the usual protection against overwriting untracked files.
-
- * "git submodule" that is run while a merge in the superproject is in
-   conflicted state tried to process each conflicted submodule up to
-   three times.
-
- * "git status" spent all the effort to notice racily-clean index entries
-   but didn't update the index file to help later operations go faster in
-   some cases.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.4.5.txt b/third_party/git/Documentation/RelNotes/1.7.4.5.txt
deleted file mode 100644
index b7a0eeb22f86..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.4.5.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Git v1.7.4.5 Release Notes
-==========================
-
-This contains only minor documentation fixes accumulated since 1.7.4.4.
diff --git a/third_party/git/Documentation/RelNotes/1.7.4.txt b/third_party/git/Documentation/RelNotes/1.7.4.txt
deleted file mode 100644
index d5bca731b589..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.4.txt
+++ /dev/null
@@ -1,156 +0,0 @@
-Git v1.7.4 Release Notes
-========================
-
-Updates since v1.7.3
---------------------
-
- * The documentation Makefile now assumes by default asciidoc 8 and
-   docbook-xsl >= 1.73. If you have older versions, you can set
-   ASCIIDOC7 and ASCIIDOC_ROFF, respectively.
-
- * The option parsers of various commands that create new branches (or
-   rename existing ones to a new name) were too loose and users were
-   allowed to give a branch a name that begins with a dash by creative
-   abuse of their command line options, which only led to burning
-   themselves.  The name of a branch cannot begin with a dash now.
-
- * System-wide fallback default attributes can be stored in
-   /etc/gitattributes; the core.attributesfile configuration variable can
-   be used to customize the path to this file.
-
- * The thread structure generated by "git send-email" has changed
-   slightly.  Setting the cover letter of the latest series as a reply
-   to the cover letter of the previous series with --in-reply-to used
-   to make the new cover letter and all the patches replies to the
-   cover letter of the previous series; this has been changed to make
-   the patches in the new series replies to the new cover letter.
-
- * The Bash completion script in contrib/ has been adjusted to be usable with
-   Bash 4 (options with '=value' didn't complete).  It has been also made
-   usable with zsh.
-
- * Different pagers can be chosen depending on which subcommand is
-   being run under the pager, using the "pager.<subcommand>" variable.
-
- * The hardcoded tab-width of 8 that is used in whitespace breakage checks is now
-   configurable via the attributes mechanism.
-
- * Support of case insensitive filesystems (i.e. "core.ignorecase") has
-   been improved.  For example, the gitignore mechanism didn't pay attention
-   to case insensitivity.
-
- * The <tree>:<path> syntax for naming a blob in a tree, and the :<path>
-   syntax for naming a blob in the index (e.g. "master:Makefile",
-   ":hello.c") have been extended.  You can start <path> with "./" to
-   implicitly have the (sub)directory you are in prefixed to the
-   lookup.  Similarly, ":../Makefile" from a subdirectory would mean
-   "the Makefile of the parent directory in the index".
-
- * "git blame" learned the --show-email option to display the e-mail
-   addresses instead of the names of authors.
-
- * "git commit" learned the --fixup and --squash options to help later invocation
-   of interactive rebase.
-
- * Command line options to "git cvsimport" whose names are in capital
-   letters (-A, -M, -R and -S) can now be specified as the default in
-   the .git/config file by their longer names (cvsimport.authorsFile,
-   cvsimport.mergeRegex, cvsimport.trackRevisions, cvsimport.ignorePaths).
-
- * "git daemon" can be built in the MinGW environment.
-
- * "git daemon" can take more than one --listen option to listen to
-   multiple addresses.
-
- * "git describe --exact-match" was optimized not to read commit
-   objects unnecessarily.
-
- * "git diff" and "git grep" learned what functions and subroutines
-   in Fortran, Pascal and Perl look like.
-
- * "git fetch" learned the "--recurse-submodules" option.
-
- * "git mergetool" tells vim/gvim to show a three-way diff by default
-   (use vimdiff2/gvimdiff2 as the tool name for old behavior).
-
- * "git log -G<pattern>" limits the output to commits whose change has
-   added or deleted lines that match the given pattern.
-
- * "git read-tree" with no argument as a way to empty the index is
-   deprecated; we might want to remove it in the future.  Users can
-   use the new --empty option to be more explicit instead.
-
- * "git repack -f" does not spend cycles to recompress objects in the
-   non-delta representation anymore (use -F if you really mean it
-   e.g. after you changed the core.compression variable setting).
-
- * "git merge --log" used to limit the resulting merge log to 20
-   entries; this is now customizable by giving e.g. "--log=47".
-
- * "git merge" may work better when all files were moved out of a
-   directory in one branch while a new file is created in place of that
-   directory in the other branch.
-
- * "git merge" learned the "--abort" option, synonymous to
-   "git reset --merge" when a merge is in progress.
-
- * "git notes" learned the "merge" subcommand to merge notes refs.
-   In addition to the default manual conflict resolution, there are
-   also several notes merge strategies for automatically resolving
-   notes merge conflicts.
-
- * "git rebase --autosquash" can use SHA-1 object names to name the
-   commit which is to be fixed up (e.g. "fixup! e83c5163").
-
- * The default "recursive" merge strategy learned the --rename-threshold
-   option to influence the rename detection, similar to the -M option
-   of "git diff".  From the "git merge" frontend, the "-X<strategy option>"
-   interface, e.g. "git merge -Xrename-threshold=50% ...", can be used
-   to trigger this.
-
- * The "recursive" strategy also learned to ignore various whitespace
-   changes; the most notable is -Xignore-space-at-eol.
-
- * "git send-email" learned "--to-cmd", similar to "--cc-cmd", to read
-   the recipient list from a command output.
-
- * "git send-email" learned to read and use "To:" from its input files.
-
- * you can extend "git shell", which is often used on boxes that allow
-   git-only login over ssh as login shell, with a custom set of
-   commands.
-
- * The current branch name in "git status" output can be colored differently
-   from the generic header color by setting the "color.status.branch" variable.
-
- * "git submodule sync" updates metainformation for all submodules,
-   not just the ones that have been checked out.
-
- * gitweb can use a custom 'highlight' command with its configuration file.
-
- * other gitweb updates.
-
-
-Also contains various documentation updates.
-
-
-Fixes since v1.7.3
-------------------
-
-All of the fixes in the v1.7.3.X maintenance series are included in this
-release, unless otherwise noted.
-
- * "git log --author=me --author=her" did not find commits written by
-   me or by her; instead it looked for commits written by me and by
-   her, which is impossible.
-
- * "git push --progress" shows progress indicators now.
-
- * "git rebase -i" showed a confusing error message when given a
-   branch name that does not exist.
-
- * "git repack" places its temporary packs under $GIT_OBJECT_DIRECTORY/pack
-   instead of $GIT_OBJECT_DIRECTORY/ to avoid cross directory renames.
-
- * "git submodule update --recursive --other-flags" passes flags down
-   to its subinvocations.
diff --git a/third_party/git/Documentation/RelNotes/1.7.5.1.txt b/third_party/git/Documentation/RelNotes/1.7.5.1.txt
deleted file mode 100644
index c6ebd76d1934..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.5.1.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-Git v1.7.5.1 Release Notes
-==========================
-
-Fixes since v1.7.5
-------------------
-
- * When an object "$tree:$path" does not exist, if $path does exist in the
-   subtree of $tree that corresponds to the subdirectory the user is in,
-   git now suggests using "$tree:./$path" in addition to the advice to use
-   the full path from the root of the working tree.
-
- * The "--date=relative" output format used to say "X years, 12 months"
-   when it should have said "X+1 years".
-
- * The smart-HTTP transfer was broken in 1.7.5 when the client needs
-   to issue a small POST (which uses content-length) and then a large
-   POST (which uses chunked) back to back.
-
- * "git clean" used to fail on an empty directory that is not readable,
-   even though rmdir(2) could remove such a directory.  Now we attempt it
-   as the last resort.
-
- * The "--dirstat" option of "diff" family of commands used to totally
-   ignore a change that only rearranged lines within a file.  Such a
-   change now counts as at least a minimum but non zero change.
-
- * The "--dirstat" option of "diff" family of commands used to use the
-   pathname in the original, instead of the pathname in the result,
-   when renames are involved.
-
- * "git pack-object" did not take core.bigfilethreashold into account
-   (unlike fast-import); now it does.
-
- * "git reflog" ignored options like "--format=.." on the command line.
-
- * "git stash apply" used to refuse to work if there was any change in
-   the working tree, even when the change did not overlap with the change
-   the stash recorded.
-
- * "git stash apply @{99999}" was not diagnosed as an error, even when you
-   did not have that many stash entries.
-
- * An error message from "git send-email" to diagnose a broken SMTP
-   connection configuration lacked a space between "hello=<smtp-domain>"
-   and "port=<smtp-server-port>".
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.5.2.txt b/third_party/git/Documentation/RelNotes/1.7.5.2.txt
deleted file mode 100644
index 951eb7cb0842..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.5.2.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-Git v1.7.5.2 Release Notes
-==========================
-
-The release notes to 1.7.5.1 forgot to mention:
-
- * "git stash -p --no-keep-index" and "git stash --no-keep-index -p" now
-   mean the same thing.
-
- * "git upload-pack" (hence "git push" over git native protocol) had a
-   subtle race condition that could lead to a deadlock.
-
-Fixes since v1.7.5.1
---------------------
-
- * "git add -p" did not work correctly when a hunk is split and then
-   one of them was given to the editor.
-
- * "git add -u" did not resolve a conflict where our history deleted and
-   their history modified the same file, and the working tree resolved to
-   keep a file.
-
- * "git cvsimport" did not know that CVSNT stores its password file in a
-   location different from the traditional CVS.
-
- * "git diff-files" did not show the mode information from the working
-   tree side of an unmerged path correctly.
-
- * "git diff -M --cached" used to use unmerged path as a possible rename
-   source candidate, which made no sense.
-
- * The option name parser in "git fast-import" used prefix matches for
-   some options where it shouldn't, and accepted non-existent options,
-   e.g. "--relative-marksmith" or "--forceps".
-
- * "git format-patch" did not quote RFC822 special characters in the
-   email address (e.g From: Junio C. Hamano <jch@example.com>, not
-   From: "Junio C. Hamano" <jch@example.com>).
-
- * "git format-patch" when run with "--quiet" option used to produce a
-   nonsense result that consists of alternating empty output.
-
- * In "git merge", per-branch branch.<name>.mergeoptions configuration
-   variables did not override the fallback default merge.<option>
-   configuration variables such as merge.ff, merge.log, etc.
-
- * "git merge-one-file" did not honor GIT_WORK_TREE settings when
-   handling a "both sides added, differently" conflict.
-
- * "git mergetool" did not handle conflicted submoudules gracefully.
-
- * "git-p4" (in contrib) used a wrong base image while merge a file that
-   was added on both branches differently.
-
- * "git rebase -i -p" failed to preserve the history when there is a
-   redundant merge created with the --no-ff option.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.5.3.txt b/third_party/git/Documentation/RelNotes/1.7.5.3.txt
deleted file mode 100644
index 1d24edcf2fa6..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.5.3.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Git v1.7.5.3 Release Notes
-==========================
-
-Fixes since v1.7.5.2
---------------------
-
- * The bash completion scripts should correctly work using zsh's bash
-   completion emulation layer now.
-
- * Setting $(prefix) in config.mak did not affect where etc/gitconfig
-   file is read from, even though passing it from the command line of
-   $(MAKE) did.
-
- * The logic to handle "&" (expand to UNIX username) in GECOS field
-   miscounted the length of the name it formatted.
-
- * "git cherry-pick -s resolve" failed to cherry-pick a root commit.
-
- * "git diff --word-diff" misbehaved when diff.suppress-blank-empty was
-   in effect.
-
- * "git log --stdin path" with an input that has additional pathspec
-   used to corrupt memory.
-
- * "git send-pack" (hence "git push") over smart-HTTP protocol could
-   deadlock when the client side pack-object died early.
-
- * Compressed tarball gitweb generates used to be made with the timestamp
-   of the tarball generation; this was bad because snapshot from the same
-   tree should result in a same tarball.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.5.4.txt b/third_party/git/Documentation/RelNotes/1.7.5.4.txt
deleted file mode 100644
index 7796df3fe482..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.5.4.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Git v1.7.5.4 Release Notes
-==========================
-
-Fixes since v1.7.5.3
---------------------
-
- * The single-key mode of "git add -p" was easily fooled into thinking
-   that it was told to add everything ('a') when up-arrow was pressed by
-   mistake.
-
- * Setting a git command that uses custom configuration via "-c var=val"
-   as an alias caused a crash due to a realloc(3) failure.
-
- * "git diff -C -C" used to disable the rename detection entirely when
-   there are too many copy candidate paths in the tree; now it falls
-   back to "-C" when doing so would keep the copy candidate paths
-   under the rename detection limit.
-
- * "git rerere" did not diagnose a corrupt MERGE_RR file in some cases.
-
-And other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.5.txt b/third_party/git/Documentation/RelNotes/1.7.5.txt
deleted file mode 100644
index 987919c32143..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.5.txt
+++ /dev/null
@@ -1,132 +0,0 @@
-Git v1.7.5 Release Notes
-========================
-
-Updates since v1.7.4
---------------------
-
- * Various MinGW portability fixes.
-
- * Various git-p4 enhancements (in contrib).
-
- * Various vcs-svn, git-svn and gitk enhancements and fixes.
-
- * Various git-gui updates (0.14.0).
-
- * Update to more modern HP-UX port.
-
- * The codebase is getting prepared for i18n/l10n; no translated
-   strings nor translation mechanism in the code yet, but the strings
-   are being marked for l10n.
-
- * The bash completion script can now complete symmetric difference
-   for "git diff" command, e.g. "git diff ...bra<TAB>".
-
- * The default minimum length of abbreviated and unique object names
-   can now be configured by setting the core.abbrev configuration
-   variable.
-
- * "git apply -v" reports offset lines when the patch does not apply at
-   the exact location recorded in the diff output.
-
- * "git config" used to be also known as "git repo-config", but the old
-   name is now officially deprecated.
-
- * "git checkout --detach <commit>" is a more user friendly synonym for
-   "git checkout <commit>^0".
-
- * "git checkout" performed on detached HEAD gives a warning and
-   advice when the commit being left behind will become unreachable from
-   any branch or tag.
-
- * "git cherry-pick" and "git revert" can be told to use a custom merge
-   strategy, similar to "git rebase".
-
- * "git cherry-pick" remembers which commit failed to apply when it is
-   stopped by conflicts, making it unnecessary to use "commit -c $commit"
-   to conclude it.
-
- * "git cvsimport" bails out immediately when the cvs server cannot be
-   reached, without spewing unnecessary error messages that complain about
-   the server response it never got.
-
- * "git fetch" vs "git upload-pack" transfer learned 'no-done'
-   protocol extension to save one round-trip after the content
-   negotiation is done. This saves one HTTP RPC, reducing the overall
-   latency for a trivial fetch.
-
- * "git fetch" can be told to recursively fetch submodules on-demand.
-
- * "git grep -f <filename>" learned to treat "-" as "read from the
-   standard input stream".
-
- * "git grep --no-index" did not honor pathspecs correctly, returning
-   paths outside the specified area.
-
- * "git init" learned the --separate-git-dir option to allow the git
-   directory for a new repository created elsewhere and linked via the
-   gitdir mechanism. This is primarily to help submodule support later
-   to switch between a branch of superproject that has the submodule
-   and another that does not.
-
- * "git log" type commands now understand globbing pathspecs.  You
-   can say "git log -- '*.txt'" for example.
-
- * "git log" family of commands learned --cherry and --cherry-mark
-   options that can be used to view two diverged branches while omitting
-   or highlighting equivalent changes that appear on both sides of a
-   symmetric difference (e.g. "log --cherry A...B").
-
- * A lazy "git merge" that didn't say what to merge used to be an error.
-   When run on a branch that has an upstream defined, however, the command
-   now merges from the configured upstream.
-
- * "git mergetool" learned how to drive "beyond compare 3" as well.
-
- * "git rerere forget" without pathspec used to forget all the saved
-   conflicts that relate to the current merge; it now requires you to
-   give it pathspecs.
-
- * "git rev-list --objects $revs -- $pathspec" now limits the objects listed
-   in its output properly with the pathspec, in preparation for narrow
-   clones.
-
- * "git push" with no parameters gives better advice messages when
-   "tracking" is used as the push.default semantics or there is no remote
-   configured yet.
-
- * A possible value to the "push.default" configuration variable,
-   'tracking', gained a synonym that more naturally describes what it
-   does, 'upstream'.
-
- * "git rerere" learned a new subcommand "remaining" that is similar to
-   "status" and lists the paths that had conflicts which are known to
-   rerere, but excludes the paths that have already been marked as
-   resolved in the index from its output.  "git mergetool" has been
-   updated to use this facility.
-
-Also contains various documentation updates.
-
-
-Fixes since v1.7.4
-------------------
-
-All of the fixes in the v1.7.4.X maintenance series are included in this
-release, unless otherwise noted.
-
- * "git fetch" from a client that is mostly following the remote
-   needlessly told all of its refs to the server for both sides to
-   compute the set of objects that need to be transferred efficiently,
-   instead of stopping when the server heard enough. In a project with
-   many tags, this turns out to be extremely wasteful, especially over
-   the smart HTTP transport (sp/maint-{upload,fetch}-pack-stop-early~1).
-
- * "git fetch" run from a repository that uses the same repository as
-   its alternate object store as the repository it is fetching from
-   did not tell the server that it already has access to objects
-   reachable from the refs in their common alternate object store,
-   causing it to fetch unnecessary objects (jc/maint-fetch-alt).
-
- * "git remote add --mirror" created a configuration that is suitable for
-   doing both a mirror fetch and a mirror push at the same time, which
-   made little sense.  We now warn and require the command line to specify
-   either --mirror=fetch or --mirror=push.
diff --git a/third_party/git/Documentation/RelNotes/1.7.6.1.txt b/third_party/git/Documentation/RelNotes/1.7.6.1.txt
deleted file mode 100644
index 42e46ab17f8b..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.6.1.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-Git v1.7.6.1 Release Notes
-==========================
-
-Fixes since v1.7.6
-------------------
-
- * Various codepaths that invoked zlib deflate/inflate assumed that these
-   functions can compress or uncompress more than 4GB data in one call on
-   platforms with 64-bit long, which has been corrected.
-
- * "git unexecutable" reported that "unexecutable" was not found, even
-   though the actual error was that "unexecutable" was found but did
-   not have a proper she-bang line to be executed.
-
- * Error exits from $PAGER were silently ignored.
-
- * "git checkout -b <branch>" was confused when attempting to create a
-   branch whose name ends with "-g" followed by hexadecimal digits,
-   and refused to work.
-
- * "git checkout -b <branch>" sometimes wrote a bogus reflog entry,
-   causing later "git checkout -" to fail.
-
- * "git diff --cc" learned to correctly ignore binary files.
-
- * "git diff -c/--cc" mishandled a deletion that resolves a conflict, and
-   looked in the working tree instead.
-
- * "git fast-export" forgot to quote pathnames with unsafe characters
-   in its output.
-
- * "git fetch" over smart-http transport used to abort when the
-   repository was updated between the initial connection and the
-   subsequent object transfer.
-
- * "git fetch" did not recurse into submodules in subdirectories.
-
- * "git ls-tree" did not error out when asked to show a corrupt tree.
-
- * "git pull" without any argument left an extra whitespace after the
-   command name in its reflog.
-
- * "git push --quiet" was not really quiet.
-
- * "git rebase -i -p" incorrectly dropped commits from side branches.
-
- * "git reset [<commit>] paths..." did not reset the index entry correctly
-   for unmerged paths.
-
- * "git submodule add" did not allow a relative repository path when
-   the superproject did not have any default remote url.
-
- * "git submodule foreach" failed to correctly give the standard input to
-   the user-supplied command it invoked.
-
- * submodules that the user has never showed interest in by running
-   "git submodule init" was incorrectly marked as interesting by "git
-   submodule sync".
-
- * "git submodule update --quiet" was not really quiet.
-
-  * "git tag -l <glob>..." did not take multiple glob patterns from the
-   command line.
diff --git a/third_party/git/Documentation/RelNotes/1.7.6.2.txt b/third_party/git/Documentation/RelNotes/1.7.6.2.txt
deleted file mode 100644
index 67ae41496511..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.6.2.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Git v1.7.6.2 Release Notes
-==========================
-
-Fixes since v1.7.6.1
---------------------
-
- * v1.7.6.1 broke "git push --quiet"; it used to be a no-op against an old
-   version of Git running on the other end, but v1.7.6.1 made it abort.
diff --git a/third_party/git/Documentation/RelNotes/1.7.6.3.txt b/third_party/git/Documentation/RelNotes/1.7.6.3.txt
deleted file mode 100644
index 95971831b90d..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.6.3.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-Git v1.7.6.3 Release Notes
-==========================
-
-Fixes since v1.7.6.2
---------------------
-
- * "git -c var=value subcmd" misparsed the custom configuration when
-   value contained an equal sign.
-
- * "git fetch" had a major performance regression, wasting many
-   needless cycles in a repository where there is no submodules
-   present. This was especially bad, when there were many refs.
-
- * "git reflog $refname" did not default to the "show" subcommand as
-   the documentation advertised the command to do.
-
- * "git reset" did not leave meaningful log message in the reflog.
-
- * "git status --ignored" did not show ignored items when there is no
-   untracked items.
-
- * "git tag --contains $commit" was unnecessarily inefficient.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.6.4.txt b/third_party/git/Documentation/RelNotes/1.7.6.4.txt
deleted file mode 100644
index e19acac2da5f..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.6.4.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Git v1.7.6.4 Release Notes
-==========================
-
-Fixes since v1.7.6.3
---------------------
-
- * The error reporting logic of "git am" when the command is fed a file
-   whose mail-storage format is unknown was fixed.
-
- * "git branch --set-upstream @{-1} foo" did not expand @{-1} correctly.
-
- * "git check-ref-format --print" used to parrot a candidate string that
-   began with a slash (e.g. /refs/heads/master) without stripping it, to make
-   the result a suitably normalized string the caller can append to "$GIT_DIR/".
-
- * "git clone" failed to clone locally from a ".git" file that itself
-   is not a directory but is a pointer to one.
-
- * "git clone" from a local repository that borrows from another
-   object store using a relative path in its objects/info/alternates
-   file did not adjust the alternates in the resulting repository.
-
- * "git describe --dirty" did not refresh the index before checking the
-   state of the working tree files.
-
- * "git ls-files ../$path" that is run from a subdirectory reported errors
-   incorrectly when there is no such path that matches the given pathspec.
-
- * "git mergetool" could loop forever prompting when nothing can be read
-   from the standard input.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.6.5.txt b/third_party/git/Documentation/RelNotes/1.7.6.5.txt
deleted file mode 100644
index 6713132a9e89..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.6.5.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-Git v1.7.6.5 Release Notes
-==========================
-
-Fixes since v1.7.6.4
---------------------
-
- * The date parser did not accept timezone designators that lack minutes
-   part and also has a colon between "hh:mm".
-
- * After fetching from a remote that has very long refname, the reporting
-   output could have corrupted by overrunning a static buffer.
-
- * "git mergetool" did not use its arguments as pathspec, but as a path to
-   the file that may not even have any conflict.
-
- * "git name-rev --all" tried to name all _objects_, naturally failing to
-   describe many blobs and trees, instead of showing only commits as
-   advertised in its documentation.
-
- * "git remote rename $a $b" were not careful to match the remote name
-   against $a (i.e. source side of the remote nickname).
-
- * "gitweb" used to produce a non-working link while showing the contents
-   of a blob, when JavaScript actions are enabled.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.6.6.txt b/third_party/git/Documentation/RelNotes/1.7.6.6.txt
deleted file mode 100644
index 5343e004005e..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.6.6.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Git v1.7.6.6 Release Notes
-==========================
-
-Fixes since v1.7.6.5
---------------------
-
- * The code to look up attributes for paths reused entries from a wrong
-   directory when two paths in question are in adjacent directories and
-   the name of the one directory is a prefix of the other.
-
- * When producing a "thin pack" (primarily used in bundles and smart
-   HTTP transfers) out of a fully packed repository, we unnecessarily
-   avoided sending recent objects as a delta against objects we know
-   the other side has.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.6.txt b/third_party/git/Documentation/RelNotes/1.7.6.txt
deleted file mode 100644
index 9ec498ea39d9..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.6.txt
+++ /dev/null
@@ -1,136 +0,0 @@
-Git v1.7.6 Release Notes
-========================
-
-Updates since v1.7.5
---------------------
-
- * Various git-svn updates.
-
- * Updates the way content tags are handled in gitweb.  Also adds
-   a UI to choose common timezone for displaying the dates.
-
- * Similar to branch names, tagnames that begin with "-" are now
-   disallowed.
-
- * Clean-up of the C part of i18n (but not l10n---please wait)
-   continues.
-
- * The scripting part of the codebase is getting prepared for i18n/l10n.
-
- * Pushing and pulling from a repository with large number of refs that
-   point to identical commits are optimized by not listing the same commit
-   during the common ancestor negotiation exchange with the other side.
-
- * Adding a file larger than core.bigfilethreshold (defaults to 1/2 Gig)
-   using "git add" will send the contents straight to a packfile without
-   having to hold it and its compressed representation both at the same
-   time in memory.
-
- * Processes spawned by "[alias] <name> = !process" in the configuration
-   can inspect GIT_PREFIX environment variable to learn where in the
-   working tree the original command was invoked.
-
- * A magic pathspec ":/" tells a command that limits its operation to
-   the current directory when ran from a subdirectory to work on the
-   entire working tree. In general, ":/path/to/file" would be relative
-   to the root of the working tree hierarchy.
-
-   After "git reset --hard; edit Makefile; cd t/", "git add -u" would
-   be a no-op, but "git add -u :/" would add the updated contents of
-   the Makefile at the top level. If you want to name a path in the
-   current subdirectory whose unusual name begins with ":/", you can
-   name it by "./:/that/path" or by "\:/that/path".
-
- * "git blame" learned "--abbrev[=<n>]" option to control the minimum
-   number of hexdigits shown for commit object names.
-
- * "git blame" learned "--line-porcelain" that is less efficient but is
-   easier to parse.
-
- * Aborting "git commit --interactive" discards updates to the index
-   made during the interactive session.
-
- * "git commit" learned a "--patch" option to directly jump to the
-   per-hunk selection UI of the interactive mode.
-
- * "git diff" and its family of commands learned --dirstat=0 to show
-   directories that contribute less than 0.1% of changes.
-
- * "git diff" and its family of commands learned --dirstat=lines mode to
-   assess damage to the directory based on number of lines in the patch
-   output, not based on the similarity numbers.
-
- * "git format-patch" learned "--quiet" option to suppress the output of
-   the names of generated files.
-
- * "git format-patch" quotes people's names when it has RFC822 special
-   characters in it, e.g. "Junio C. Hamano" <jch@example.com>.  Earlier
-   it was up to the user to do this when using its output.
-
- * "git format-patch" can take an empty --subject-prefix now.
-
- * "git grep" learned the "-P" option to take pcre regular expressions.
-
- * "git log" and friends learned a new "--notes" option to replace the
-   "--show-notes" option.  Unlike "--show-notes", "--notes=<ref>" does
-   not imply showing the default notes.
-
- * They also learned a log.abbrevCommit configuration variable to augment
-   the --abbrev-commit command line option.
-
- * "git ls-remote" learned "--exit-code" option to consider it a
-   different kind of error when no remote ref to be shown.
-
- * "git merge" learned "-" as a short-hand for "the previous branch", just
-   like the way "git checkout -" works.
-
- * "git merge" uses "merge.ff" configuration variable to decide to always
-   create a merge commit (i.e. --no-ff, aka merge.ff=no), refuse to create
-   a merge commit (i.e. --ff-only, aka merge.ff=only). Setting merge.ff=yes
-   (or not setting it at all) restores the default behaviour of allowing
-   fast-forward to happen when possible.
-
- * p4-import (from contrib) learned a new option --preserve-user.
-
- * "git read-tree -m" learned "--dry-run" option that reports if a merge
-   would fail without touching the index nor the working tree.
-
- * "git rebase" that does not specify on top of which branch to rebase
-   the current branch now uses @{upstream} of the current branch.
-
- * "git rebase" finished either normally or with --abort did not
-   update the reflog for HEAD to record the event to come back to
-   where it started from.
-
- * "git remote add -t only-this-branch --mirror=fetch" is now allowed. Earlier
-   a fetch-mode mirror meant mirror everything, but now it only means refs are
-   not renamed.
-
- * "git rev-list --count" used with "--cherry-mark" counts the cherry-picked
-   commits separately, producing more a useful output.
-
- * "git submodule update" learned "--force" option to get rid of local
-   changes in submodules and replace them with the up-to-date version.
-
- * "git status" and friends ignore .gitmodules file while the file is
-   still in a conflicted state during a merge, to avoid using information
-   that is not final and possibly corrupt with conflict markers.
-
-Also contains various documentation updates and minor miscellaneous
-changes.
-
-
-Fixes since v1.7.5
-------------------
-
-Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are
-included in this release.
-
- * "git config" used to choke with an insanely long line.
-   (merge ef/maint-strbuf-init later)
-
- * "git diff --quiet" did not work well with --diff-filter.
-   (merge jk/diff-not-so-quick later)
-
- * "git status -z" did not default to --porcelain output format.
-   (merge bc/maint-status-z-to-use-porcelain later)
diff --git a/third_party/git/Documentation/RelNotes/1.7.7.1.txt b/third_party/git/Documentation/RelNotes/1.7.7.1.txt
deleted file mode 100644
index ac9b838e25b3..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.7.1.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-Git v1.7.7.1 Release Notes
-==========================
-
-Fixes since v1.7.7
-------------------
-
- * On some BSD systems, adding +s bit on directories is detrimental
-   (it is not necessary on BSD to begin with). "git init --shared"
-   has been updated to take this into account without extra makefile
-   settings on platforms the Makefile knows about.
-
- * After incorrectly written third-party tools store a tag object in
-   HEAD, git diagnosed it as a repository corruption and refused to
-   proceed in order to avoid spreading the damage. We now gracefully
-   recover from such a situation by pretending as if the commit that
-   is pointed at by the tag were in HEAD.
-
- * "git apply --whitespace=error" did not bother to report the exact
-   line number in the patch that introduced new blank lines at the end
-   of the file.
-
- * "git apply --index" did not check corrupted patch.
-
- * "git checkout $tree $directory/" resurrected paths locally removed or
-   modified only in the working tree in $directory/ that did not appear
-   in $directory of the given $tree. They should have been kept intact.
-
- * "git diff $tree $path" used to apply the pathspec at the output stage,
-   reading the whole tree, wasting resources.
-
- * The code to check for updated submodules during a "git fetch" of the
-   superproject had an unnecessary quadratic loop.
-
- * "git fetch" from a large bundle did not enable the progress output.
-
- * When "git fsck --lost-and-found" found that an empty blob object in the
-   object store is unreachable, it incorrectly reported an error after
-   writing the lost blob out successfully.
-
- * "git filter-branch" did not refresh the index before checking that the
-   working tree was clean.
-
- * "git grep $tree" when run with multiple threads had an unsafe access to
-   the object database that should have been protected with mutex.
-
- * The "--ancestry-path" option to "git log" and friends misbehaved in a
-   history with complex criss-cross merges and showed an uninteresting
-   side history as well.
-
- * Test t1304 assumed LOGNAME is always set, which may not be true on
-   some systems.
-
- * Tests with --valgrind failed to find "mergetool" scriptlets.
-
- * "git patch-id" miscomputed the patch-id in a patch that has a line longer
-   than 1kB.
-
- * When an "exec" insn failed after modifying the index and/or the working
-   tree during "rebase -i", we now check and warn that the changes need to
-   be cleaned up.
diff --git a/third_party/git/Documentation/RelNotes/1.7.7.2.txt b/third_party/git/Documentation/RelNotes/1.7.7.2.txt
deleted file mode 100644
index e6bbef2f0174..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.7.2.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-Git v1.7.7.2 Release Notes
-==========================
-
-Fixes since v1.7.7.1
---------------------
-
- * We used to drop error messages from libcurl on certain kinds of
-   errors.
-
- * Error report from smart HTTP transport, when the connection was
-   broken in the middle of a transfer, showed a useless message on
-   a corrupt packet.
-
- * "git fetch --prune" was unsafe when used with refspecs from the
-   command line.
-
- * The attribute mechanism did not use case insensitive match when
-   core.ignorecase was set.
-
- * "git bisect" did not notice when it failed to update the working tree
-   to the next commit to be tested.
-
- * "git config --bool --get-regexp" failed to separate the variable name
-   and its value "true" when the variable is defined without "= true".
-
- * "git remote rename $a $b" were not careful to match the remote name
-   against $a (i.e. source side of the remote nickname).
-
- * "git mergetool" did not use its arguments as pathspec, but as a path to
-   the file that may not even have any conflict.
-
- * "git diff --[num]stat" used to use the number of lines of context
-   different from the default, potentially giving different results from
-   "git diff | diffstat" and confusing the users.
-
- * "git pull" and "git rebase" did not work well even when GIT_WORK_TREE is
-   set correctly with GIT_DIR if the current directory is outside the working
-   tree.
-
- * "git send-email" did not honor the configured hostname when restarting
-   the HELO/EHLO exchange after switching TLS on.
-
- * "gitweb" used to produce a non-working link while showing the contents
-   of a blob, when JavaScript actions are enabled.
diff --git a/third_party/git/Documentation/RelNotes/1.7.7.3.txt b/third_party/git/Documentation/RelNotes/1.7.7.3.txt
deleted file mode 100644
index 09301f095799..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.7.3.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Git v1.7.7.3 Release Notes
-==========================
-
-Fixes since v1.7.7.2
---------------------
-
- * Adjust the "quick-install-doc" procedures as preformatted
-   html/manpage are no longer in the source repository.
-
- * The logic to optimize the locality of the data in a pack introduced in
-   1.7.7 was grossly inefficient.
-
- * The logic to filter out forked projects in the project list in
-   "gitweb" was broken for some time.
-
- * "git branch -m/-M" advertised to update RENAME_REF ref in the
-   commit log message that introduced the feature but not anywhere in
-   the documentation, and never did update such a ref anyway. This
-   undocumented misfeature that did not exist has been excised.
diff --git a/third_party/git/Documentation/RelNotes/1.7.7.4.txt b/third_party/git/Documentation/RelNotes/1.7.7.4.txt
deleted file mode 100644
index e5234485e714..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.7.4.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Git v1.7.7.4 Release Notes
-==========================
-
-Fixes since v1.7.7.3
---------------------
-
- * A few header dependencies were missing from the Makefile.
-
- * Some newer parts of the code used C99 __VA_ARGS__ while we still
-   try to cater to older compilers.
-
- * "git name-rev --all" tried to name all _objects_, naturally failing to
-   describe many blobs and trees, instead of showing only commits as
-   advertised in its documentation.
diff --git a/third_party/git/Documentation/RelNotes/1.7.7.5.txt b/third_party/git/Documentation/RelNotes/1.7.7.5.txt
deleted file mode 100644
index 7b0931987b1f..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.7.5.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Git v1.7.7.5 Release Notes
-==========================
-
-Fixes since v1.7.7.4
---------------------
-
- * After fetching from a remote that has very long refname, the reporting
-   output could have corrupted by overrunning a static buffer.
-
- * "git checkout" and "git merge" treated in-tree .gitignore and exclude
-   file in $GIT_DIR/info/ directory inconsistently when deciding which
-   untracked files are ignored and expendable.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.7.6.txt b/third_party/git/Documentation/RelNotes/1.7.7.6.txt
deleted file mode 100644
index 8df606d45273..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.7.6.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Git v1.7.7.6 Release Notes
-==========================
-
-Fixes since v1.7.7.5
---------------------
-
- * The code to look up attributes for paths reused entries from a wrong
-   directory when two paths in question are in adjacent directories and
-   the name of the one directory is a prefix of the other.
-
- * A wildcard that matches deeper hierarchy given to the "diff-index" command,
-   e.g. "git diff-index HEAD -- '*.txt'", incorrectly reported additions of
-   matching files even when there is no change.
-
- * When producing a "thin pack" (primarily used in bundles and smart
-   HTTP transfers) out of a fully packed repository, we unnecessarily
-   avoided sending recent objects as a delta against objects we know
-   the other side has.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.7.7.txt b/third_party/git/Documentation/RelNotes/1.7.7.7.txt
deleted file mode 100644
index e79118d063bb..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.7.7.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Git v1.7.7.7 Release Notes
-==========================
-
-Fixes since v1.7.7.6
---------------------
-
- * An error message from 'git bundle' had an unmatched single quote pair in it.
-
- * 'git diff --histogram' option was not described.
-
- * 'git imap-send' carried an unused dead code.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.7.txt b/third_party/git/Documentation/RelNotes/1.7.7.txt
deleted file mode 100644
index 6eff128c80b7..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.7.txt
+++ /dev/null
@@ -1,134 +0,0 @@
-Git v1.7.7 Release Notes
-========================
-
-Updates since v1.7.6
---------------------
-
- * The scripting part of the codebase is getting prepared for i18n/l10n.
-
- * Interix, Cygwin and Minix ports got updated.
-
- * Various updates to git-p4 (in contrib/), fast-import, and git-svn.
-
- * Gitweb learned to read from /etc/gitweb-common.conf when it exists,
-   before reading from gitweb_config.perl or from /etc/gitweb.conf
-   (this last one is read only when per-repository gitweb_config.perl
-   does not exist).
-
- * Various codepaths that invoked zlib deflate/inflate assumed that these
-   functions can compress or uncompress more than 4GB data in one call on
-   platforms with 64-bit long, which has been corrected.
-
- * Git now recognizes loose objects written by other implementations that
-   use a non-standard window size for zlib deflation (e.g. Agit running on
-   Android with 4kb window). We used to reject anything that was not
-   deflated with 32kb window.
-
- * Interaction between the use of pager and coloring of the output has
-   been improved, especially when a command that is not built-in was
-   involved.
-
- * "git am" learned to pass the "--exclude=<path>" option through to underlying
-   "git apply".
-
- * You can now feed many empty lines before feeding an mbox file to
-   "git am".
-
- * "git archive" can be told to pass the output to gzip compression and
-   produce "archive.tar.gz".
-
- * "git bisect" can be used in a bare repository (provided that the test
-   you perform per each iteration does not need a working tree, of
-   course).
-
- * The length of abbreviated object names in "git branch -v" output
-   now honors the core.abbrev configuration variable.
-
- * "git check-attr" can take relative paths from the command line.
-
- * "git check-attr" learned an "--all" option to list the attributes for a
-   given path.
-
- * "git checkout" (both the code to update the files upon checking out a
-   different branch and the code to checkout a specific set of files) learned
-   to stream the data from object store when possible, without having to
-   read the entire contents of a file into memory first. An earlier round
-   of this code that is not in any released version had a large leak but
-   now it has been plugged.
-
- * "git clone" can now take a "--config key=value" option to set the
-   repository configuration options that affect the initial checkout.
-
- * "git commit <paths>..." now lets you feed relative pathspecs that
-   refer to outside your current subdirectory.
-
- * "git diff --stat" learned a --stat-count option to limit the output of
-   a diffstat report.
-
- * "git diff" learned a "--histogram" option to use a different diff
-   generation machinery stolen from jgit, which might give better
-   performance.
-
- * "git diff" had a weird worst case behaviour that can be triggered
-   when comparing files with potentially many places that could match.
-
- * "git fetch", "git push" and friends no longer show connection
-   errors for addresses that couldn't be connected to when at least one
-   address succeeds (this is arguably a regression but a deliberate
-   one).
-
- * "git grep" learned "--break" and "--heading" options, to let users mimic
-   the output format of "ack".
-
- * "git grep" learned a "-W" option that shows wider context using the same
-   logic used by "git diff" to determine the hunk header.
-
- * Invoking the low-level "git http-fetch" without "-a" option (which
-   git itself never did--normal users should not have to worry about
-   this) is now deprecated.
-
- * The "--decorate" option to "git log" and its family learned to
-   highlight grafted and replaced commits.
-
- * "git rebase master topci" no longer spews usage hints after giving
-   the "fatal: no such branch: topci" error message.
-
- * The recursive merge strategy implementation got a fairly large
-   fix for many corner cases that may rarely happen in real world
-   projects (it has been verified that none of the 16000+ merges in
-   the Linux kernel history back to v2.6.12 is affected with the
-   corner case bugs this update fixes).
-
- * "git stash" learned an "--include-untracked option".
-
- * "git submodule update" used to stop at the first error updating a
-   submodule; it now goes on to update other submodules that can be
-   updated, and reports the ones with errors at the end.
-
- * "git push" can be told with the "--recurse-submodules=check" option to
-   refuse pushing of the supermodule, if any of its submodules'
-   commits hasn't been pushed out to their remotes.
-
- * "git upload-pack" and "git receive-pack" learned to pretend that only a
-   subset of the refs exist in a repository. This may help a site to
-   put many tiny repositories into one repository (this would not be
-   useful for larger repositories as repacking would be problematic).
-
- * "git verify-pack" has been rewritten to use the "index-pack" machinery
-   that is more efficient in reading objects in packfiles.
-
- * test scripts for gitweb tried to run even when CGI-related perl modules
-   are not installed; they now exit early when the latter are unavailable.
-
-Also contains various documentation updates and minor miscellaneous
-changes.
-
-
-Fixes since v1.7.6
-------------------
-
-Unless otherwise noted, all fixes in the 1.7.6.X maintenance track are
-included in this release.
-
- * "git branch -m" and "git checkout -b" incorrectly allowed the tip
-   of the branch that is currently checked out updated.
diff --git a/third_party/git/Documentation/RelNotes/1.7.8.1.txt b/third_party/git/Documentation/RelNotes/1.7.8.1.txt
deleted file mode 100644
index 33dc948b9449..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.8.1.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-Git v1.7.8.1 Release Notes
-==========================
-
-Fixes since v1.7.8
-------------------
-
- * In some codepaths (notably, checkout and merge), the ignore patterns
-   recorded in $GIT_DIR/info/exclude were not honored. They now are.
-
- * "git apply --check" did not error out when given an empty input
-   without any patch.
-
- * "git archive" mistakenly allowed remote clients to ask for commits
-   that are not at the tip of any ref.
-
- * "git checkout" and "git merge" treated in-tree .gitignore and exclude
-   file in $GIT_DIR/info/ directory inconsistently when deciding which
-   untracked files are ignored and expendable.
-
- * LF-to-CRLF streaming filter used when checking out a large-ish blob
-   fell into an infinite loop with a rare input.
-
- * The function header pattern for files with "diff=cpp" attribute did
-   not consider "type *funcname(type param1,..." as the beginning of a
-   function.
-
- * The error message from "git diff" and "git status" when they fail
-   to inspect changes in submodules did not report which submodule they
-   had trouble with.
-
- * After fetching from a remote that has very long refname, the reporting
-   output could have corrupted by overrunning a static buffer.
-
- * "git pack-objects" avoids creating cyclic dependencies among deltas
-   when seeing a broken packfile that records the same object in both
-   the deflated form and as a delta.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.8.2.txt b/third_party/git/Documentation/RelNotes/1.7.8.2.txt
deleted file mode 100644
index b9c66aa1b799..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.8.2.txt
+++ /dev/null
@@ -1,71 +0,0 @@
-Git v1.7.8.2 Release Notes
-==========================
-
-Fixes since v1.7.8.1
---------------------
-
- * Porcelain commands like "git reset" did not distinguish deletions
-   and type-changes from ordinary modification, and reported them with
-   the same 'M' moniker. They now use 'D' (for deletion) and 'T' (for
-   type-change) to match "git status -s" and "git diff --name-status".
-
- * The configuration file parser used for sizes (e.g. bigFileThreshold)
-   did not correctly interpret 'g' suffix.
-
- * The replacement implementation for snprintf used on platforms with
-   native snprintf that is broken did not use va_copy correctly.
-
- * LF-to-CRLF streaming filter replaced all LF with CRLF, which might
-   be technically correct but not friendly to people who are trying
-   to recover from earlier mistakes of using CRLF in the repository
-   data in the first place. It now refrains from doing so for LF that
-   follows a CR.
-
- * git native connection going over TCP (not over SSH) did not set
-   SO_KEEPALIVE option which failed to receive link layer errors.
-
- * "git branch -m <current branch> HEAD" is an obvious no-op but was not
-   allowed.
-
- * "git checkout -m" did not recreate the conflicted state in a "both
-   sides added, without any common ancestor version" conflict
-   situation.
-
- * "git cherry-pick $commit" (not a range) created an unnecessary
-   sequencer state and interfered with valid workflow to use the
-   command during a session to cherry-pick multiple commits.
-
- * You could make "git commit" segfault by giving the "--no-message"
-   option.
-
- * "fast-import" did not correctly update an existing notes tree,
-   possibly corrupting the fan-out.
-
- * "git fetch-pack" accepted unqualified refs that do not begin with
-   refs/ by mistake and compensated it by matching the refspec with
-   tail-match, which was doubly wrong. This broke fetching from a
-   repository with a funny named ref "refs/foo/refs/heads/master" and a
-   'master' branch with "git fetch-pack refs/heads/master", as the
-   command incorrectly considered the former a "match".
-
- * "git log --follow" did not honor the rename threshold score given
-   with the -M option (e.g. "-M50%").
-
- * "git mv" gave suboptimal error/warning messages when it overwrites
-   target files. It also did not pay attention to "-v" option.
-
- * Authenticated "git push" over dumb HTTP were broken with a recent
-   change and failed without asking for password when username is
-   given.
-
- * "git push" to an empty repository over HTTP were broken with a
-   recent change to the ref handling.
-
- * "git push -v" forgot how to be verbose by mistake. It now properly
-   becomes verbose when asked to.
-
- * When a "reword" action in "git rebase -i" failed to run "commit --amend",
-   we did not give the control back to the user to resolve the situation, and
-   instead kept the original commit log message.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.8.3.txt b/third_party/git/Documentation/RelNotes/1.7.8.3.txt
deleted file mode 100644
index a92714c14bcb..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.8.3.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Git v1.7.8.3 Release Notes
-==========================
-
-Fixes since v1.7.8.2
---------------------
-
- * Attempt to fetch from an empty file pretending it to be a bundle did
-   not error out correctly.
-
- * gitweb did not correctly fall back to configured $fallback_encoding
-   that is not 'latin1'.
-
- * "git clone --depth $n" did not catch a non-number given as $n as an
-   error.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.8.4.txt b/third_party/git/Documentation/RelNotes/1.7.8.4.txt
deleted file mode 100644
index 9bebdbf13d86..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.8.4.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Git v1.7.8.4 Release Notes
-==========================
-
-Fixes since v1.7.8.3
---------------------
-
- * The code to look up attributes for paths reused entries from a wrong
-   directory when two paths in question are in adjacent directories and
-   the name of the one directory is a prefix of the other.
-
- * A wildcard that matches deeper hierarchy given to the "diff-index" command,
-   e.g. "git diff-index HEAD -- '*.txt'", incorrectly reported additions of
-   matching files even when there is no change.
-
- * When producing a "thin pack" (primarily used in bundles and smart
-   HTTP transfers) out of a fully packed repository, we unnecessarily
-   avoided sending recent objects as a delta against objects we know
-   the other side has.
-
- * "git send-email" did not properly treat sendemail.multiedit as a
-   boolean (e.g. setting it to "false" did not turn it off).
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.8.5.txt b/third_party/git/Documentation/RelNotes/1.7.8.5.txt
deleted file mode 100644
index 011fd2a42838..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.8.5.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Git v1.7.8.5 Release Notes
-==========================
-
-Fixes since v1.7.8.4
---------------------
-
- * Dependency on our thread-utils.h header file was missing for
-   objects that depend on it in the Makefile.
-
- * "git am" when fed an empty file did not correctly finish reading it
-   when it attempts to guess the input format.
-
- * "git grep -P" (when PCRE is enabled in the build) did not match the
-   beginning and the end of the line correctly with ^ and $.
-
- * "git rebase -m" tried to run "git notes copy" needlessly when
-   nothing was rewritten.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.8.6.txt b/third_party/git/Documentation/RelNotes/1.7.8.6.txt
deleted file mode 100644
index d9bf2b741aad..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.8.6.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Git v1.7.8.6 Release Notes
-==========================
-
-Fixes since v1.7.8.5
---------------------
-
- * An error message from 'git bundle' had an unmatched single quote pair in it.
-
- * 'git diff --histogram' option was not described.
-
- * Documentation for 'git rev-list' had minor formatting errors.
-
- * 'git imap-send' carried an unused dead code.
-
- * The way 'git fetch' implemented its connectivity check over
-   received objects was overly pessimistic, and wasted a lot of
-   cycles.
-
- * Various minor backports of fixes from the 'master' and the 'maint'
-   branch.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.8.txt b/third_party/git/Documentation/RelNotes/1.7.8.txt
deleted file mode 100644
index 249311361e00..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.8.txt
+++ /dev/null
@@ -1,161 +0,0 @@
-Git v1.7.8 Release Notes
-========================
-
-Updates since v1.7.7
---------------------
-
- * Some git-svn, git-gui, git-p4 (in contrib) and msysgit updates.
-
- * Updates to bash completion scripts.
-
- * The build procedure has been taught to take advantage of computed
-   dependency automatically when the compiler supports it.
-
- * The date parser now accepts timezone designators that lack minutes
-   part and also has a colon between "hh:mm".
-
- * The contents of the /etc/mailname file, if exists, is used as the
-   default value of the hostname part of the committer/author e-mail.
-
- * "git am" learned how to read from patches generated by Hg.
-
- * "git archive" talking with a remote repository can report errors
-   from the remote side in a more informative way.
-
- * "git branch" learned an explicit --list option to ask for branches
-   listed, optionally with a glob matching pattern to limit its output.
-
- * "git check-attr" learned "--cached" option to look at .gitattributes
-   files from the index, not from the working tree.
-
- * Variants of "git cherry-pick" and "git revert" that take multiple
-   commits learned to "--continue" and "--abort".
-
- * "git daemon" gives more human readable error messages to clients
-   using ERR packets when appropriate.
-
- * Errors at the network layer is logged by "git daemon".
-
- * "git diff" learned "--minimal" option to spend extra cycles to come
-   up with a minimal patch output.
-
- * "git diff" learned "--function-context" option to show the whole
-   function as context that was affected by a change.
-
- * "git difftool" can be told to skip launching the tool for a path by
-   answering 'n' to its prompt.
-
- * "git fetch" learned to honor transfer.fsckobjects configuration to
-   validate the objects that were received from the other end, just like
-   "git receive-pack" (the receiving end of "git push") does.
-
- * "git fetch" makes sure that the set of objects it received from the
-   other end actually completes the history before updating the refs.
-   "git receive-pack" (the receiving end of "git push") learned to do the
-   same.
-
- * "git fetch" learned that fetching/cloning from a regular file on the
-   filesystem is not necessarily a request to unpack a bundle file; the
-   file could be ".git" with "gitdir: <path>" in it.
-
- * "git for-each-ref" learned "%(contents:subject)", "%(contents:body)"
-   and "%(contents:signature)". The last one is useful for signed tags.
-
- * "git grep" used to incorrectly pay attention to .gitignore files
-   scattered in the directory it was working in even when "--no-index"
-   option was used. It no longer does this. The "--exclude-standard"
-   option needs to be given to explicitly activate the ignore
-   mechanism.
-
- * "git grep" learned "--untracked" option, where given patterns are
-    searched in untracked (but not ignored) files as well as tracked
-    files in the working tree, so that matches in new but not yet
-    added files do not get missed.
-
- * The recursive merge backend no longer looks for meaningless
-   existing merges in submodules unless in the outermost merge.
-
- * "git log" and friends learned "--children" option.
-
- * "git ls-remote" learned to respond to "-h"(elp) requests.
-
- * "mediawiki" remote helper can interact with (surprise!) MediaWiki
-   with "git fetch" & "git push".
-
- * "git merge" learned the "--edit" option to allow users to edit the
-   merge commit log message.
-
- * "git rebase -i" can be told to use special purpose editor suitable
-   only for its insn sheet via sequence.editor configuration variable.
-
- * "git send-email" learned to respond to "-h"(elp) requests.
-
- * "git send-email" allows the value given to sendemail.aliasfile to begin
-   with "~/" to refer to the $HOME directory.
-
- * "git send-email" forces use of Authen::SASL::Perl to work around
-   issues between Authen::SASL::Cyrus and AUTH PLAIN/LOGIN.
-
- * "git stash" learned "--include-untracked" option to stash away
-   untracked/ignored cruft from the working tree.
-
- * "git submodule clone" does not leak an error message to the UI
-   level unnecessarily anymore.
-
- * "git submodule update" learned to honor "none" as the value for
-   submodule.<name>.update to specify that the named submodule should
-   not be checked out by default.
-
- * When populating a new submodule directory with "git submodule init",
-   the $GIT_DIR metainformation directory for submodules is created inside
-   $GIT_DIR/modules/<name>/ directory of the superproject and referenced
-   via the gitfile mechanism. This is to make it possible to switch
-   between commits in the superproject that has and does not have the
-   submodule in the tree without re-cloning.
-
- * "gitweb" leaked unescaped control characters from syntax hiliter
-   outputs.
-
- * "gitweb" can be told to give custom string at the end of the HTML
-   HEAD element.
-
- * "gitweb" now has its own manual pages.
-
-
-Also contains other documentation updates and minor code cleanups.
-
-
-Fixes since v1.7.7
-------------------
-
-Unless otherwise noted, all fixes in the 1.7.7.X maintenance track are
-included in this release.
-
- * HTTP transport did not use pushurl correctly, and also did not tell
-   what host it is trying to authenticate with when asking for
-   credentials.
-   (merge deba493 jk/http-auth later to maint).
-
- * "git blame" was aborted if started from an uncommitted content and
-   the path had the textconv filter in effect.
-   (merge 8518088 ss/blame-textconv-fake-working-tree later to maint).
-
- * Adding many refs to the local repository in one go (e.g. "git fetch"
-   that fetches many tags) and looking up a ref by name in a repository
-   with too many refs were unnecessarily slow.
-   (merge 17d68a54d jp/get-ref-dir-unsorted later to maint).
-
- * Report from "git commit" on untracked files was confused under
-   core.ignorecase option.
-   (merge 395c7356 jk/name-hash-dirent later to maint).
-
- * "git merge" did not understand ":/<pattern>" as a way to name a commit.
-
- " "git push" on the receiving end used to call post-receive and post-update
-   hooks for attempted removal of non-existing refs.
-   (merge 160b81ed ph/push-to-delete-nothing later to maint).
-
- * Help text for "git remote set-url" and "git remote set-branches"
-   were misspelled.
-   (merge c49904e fc/remote-seturl-usage-fix later to maint).
-   (merge 656cdf0 jc/remote-setbranches-usage-fix later to maint).
diff --git a/third_party/git/Documentation/RelNotes/1.7.9.1.txt b/third_party/git/Documentation/RelNotes/1.7.9.1.txt
deleted file mode 100644
index 6957183dbb00..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.9.1.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-Git v1.7.9.1 Release Notes
-==========================
-
-Fixes since v1.7.9
-------------------
-
- * The makefile allowed environment variable X seep into it result in
-   command names suffixed with unnecessary strings.
-
- * The set of included header files in compat/inet-{ntop,pton}
-   wrappers was updated for Windows some time ago, but in a way that
-   broke Solaris build.
-
- * rpmbuild noticed an unpackaged but installed *.mo file and failed.
-
- * Subprocesses spawned from various git programs were often left running
-   to completion even when the top-level process was killed.
-
- * "git add -e" learned not to show a diff for an otherwise unmodified
-   submodule that only has uncommitted local changes in the patch
-   prepared by for the user to edit.
-
- * Typo in "git branch --edit-description my-tpoic" was not diagnosed.
-
- * Using "git grep -l/-L" together with options -W or --break may not
-   make much sense as the output is to only count the number of hits
-   and there is no place for file breaks, but the latter options made
-   "-l/-L" to miscount the hits.
-
- * "git log --first-parent $pathspec" did not stay on the first parent
-   chain and veered into side branch from which the whole change to the
-   specified paths came.
-
- * "git merge --no-edit $tag" failed to honor the --no-edit option.
-
- * "git merge --ff-only $tag" failed because it cannot record the
-   required mergetag without creating a merge, but this is so common
-   operation for branch that is used _only_ to follow the upstream, so
-   it was changed to allow fast-forwarding without recording the mergetag.
-
- * "git mergetool" now gives an empty file as the common base version
-   to the backend when dealing with the "both sides added, differently"
-   case.
-
- * "git push -q" was not sufficiently quiet.
-
- * When "git push" fails to update any refs, the client side did not
-   report an error correctly to the end user.
-
- * "rebase" and "commit --amend" failed to work on commits with ancient
-   timestamps near year 1970.
-
- * When asking for a tag to be pulled, "request-pull" did not show the
-   name of the tag prefixed with "tags/", which would have helped older
-   clients.
-
- * "git submodule add $path" forgot to recompute the name to be stored
-   in .gitmodules when the submodule at $path was once added to the
-   superproject and already initialized.
-
- * Many small corner case bugs on "git tag -n" was corrected.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.9.2.txt b/third_party/git/Documentation/RelNotes/1.7.9.2.txt
deleted file mode 100644
index e500da75ddc9..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.9.2.txt
+++ /dev/null
@@ -1,69 +0,0 @@
-Git v1.7.9.2 Release Notes
-==========================
-
-Fixes since v1.7.9.1
---------------------
-
- * Bash completion script (in contrib/) did not like a pattern that
-   begins with a dash to be passed to __git_ps1 helper function.
-
- * Adaptation of the bash completion script (in contrib/) for zsh
-   incorrectly listed all subcommands when "git <TAB><TAB>" was given
-   to ask for list of porcelain subcommands.
-
- * The build procedure for profile-directed optimized binary was not
-   working very well.
-
- * Some systems need to explicitly link -lcharset to get locale_charset().
-
- * t5541 ignored user-supplied port number used for HTTP server testing.
-
- * The error message emitted when we see an empty loose object was
-   not phrased correctly.
-
- * The code to ask for password did not fall back to the terminal
-   input when GIT_ASKPASS is set but does not work (e.g. lack of X
-   with GUI askpass helper).
-
- * We failed to give the true terminal width to any subcommand when
-   they are invoked with the pager, i.e. "git -p cmd".
-
- * map_user() was not rewriting its output correctly, which resulted
-   in the user visible symptom that "git blame -e" sometimes showed
-   excess '>' at the end of email addresses.
-
- * "git checkout -b" did not allow switching out of an unborn branch.
-
- * When you have both .../foo and .../foo.git, "git clone .../foo" did not
-   favor the former but the latter.
-
- * "git commit" refused to create a commit when entries added with
-   "add -N" remained in the index, without telling Git what their content
-   in the next commit should be. We should have created the commit without
-   these paths.
-
- * "git diff --stat" said "files", "insertions", and "deletions" even
-   when it is showing one "file", one "insertion" or one "deletion".
-
- * The output from "git diff --stat" for two paths that have the same
-   amount of changes showed graph bars of different length due to the
-   way we handled rounding errors.
-
- * "git grep" did not pay attention to -diff (hence -binary) attribute.
-
- * The transport programs (fetch, push, clone)ignored --no-progress
-   and showed progress when sending their output to a terminal.
-
- * Sometimes error status detected by a check in an earlier phase of
-   "git receive-pack" (the other end of "git push") was lost by later
-   checks, resulting in false indication of success.
-
- * "git rev-list --verify" sometimes skipped verification depending on
-   the phase of the moon, which dates back to 1.7.8.x series.
-
- * Search box in "gitweb" did not accept non-ASCII characters correctly.
-
- * Search interface of "gitweb" did not show multiple matches in the same file
-   correctly.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.9.3.txt b/third_party/git/Documentation/RelNotes/1.7.9.3.txt
deleted file mode 100644
index 91c65012f981..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.9.3.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-Git v1.7.9.3 Release Notes
-==========================
-
-Fixes since v1.7.9.2
---------------------
-
- * "git p4" (in contrib/) submit the changes to a wrong place when the
-   "--use-client-spec" option is set.
-
- * The config.mak.autogen generated by optional autoconf support tried
-   to link the binary with -lintl even when libintl.h is missing from
-   the system.
-
- * When the filter driver exits before reading the content before the
-   main git process writes the contents to be filtered to the pipe to
-   it, the latter could be killed with SIGPIPE instead of ignoring
-   such an event as an error.
-
- * "git add --refresh <pathspec>" used to warn about unmerged paths
-   outside the given pathspec.
-
- * The bulk check-in codepath in "git add" streamed contents that
-   needs smudge/clean filters without running them, instead of punting
-   and delegating to the codepath to run filters after slurping
-   everything to core.
-
- * "git branch --with $that" assumed incorrectly that the user will never
-   ask the question with nonsense value in $that.
-
- * "git bundle create" produced a corrupt bundle file upon seeing
-   commits with excessively long subject line.
-
- * When a remote helper exits before reading the blank line from the
-   main git process to signal the end of commands, the latter could be
-   killed with SIGPIPE. Instead we should ignore such event as a
-   non-error.
-
- * The commit log template given with "git merge --edit" did not have
-   a short instructive text like what "git commit" gives.
-
- * "git rev-list --verify-objects -q" omitted the extra verification
-   it needs to do over "git rev-list --objects -q" by mistake.
-
- * "gitweb" used to drop warnings in the log file when "heads" view is
-   accessed in a repository whose HEAD does not point at a valid
-   branch.
-
- * An invalid regular expression pattern given by an end user made
-   "gitweb" to return garbled response.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.9.4.txt b/third_party/git/Documentation/RelNotes/1.7.9.4.txt
deleted file mode 100644
index e5217a1889cf..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.9.4.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-Git v1.7.9.4 Release Notes
-==========================
-
-Fixes since v1.7.9.3
---------------------
-
- * The code to synthesize the fake ancestor tree used by 3-way merge
-   fallback in "git am" was not prepared to read a patch created with
-   a non-standard -p<num> value.
-
- * "git bundle" did not record boundary commits correctly when there
-   are many of them.
-
- * "git diff-index" and its friends at the plumbing level showed the
-   "diff --git" header and nothing else for a path whose cached stat
-   info is dirty without actual difference when asked to produce a
-   patch. This was a longstanding bug that we could have fixed long
-   time ago.
-
- * "gitweb" did use quotemeta() to prepare search string when asked to
-   do a fixed-string project search, but did not use it by mistake and
-   used the user-supplied string instead.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.9.5.txt b/third_party/git/Documentation/RelNotes/1.7.9.5.txt
deleted file mode 100644
index 95cc2bbf2cda..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.9.5.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Git v1.7.9.5 Release Notes
-==========================
-
-Fixes since v1.7.9.4
---------------------
-
- * When "git config" diagnoses an error in a configuration file and
-   shows the line number for the offending line, it miscounted if the
-   error was at the end of line.
-
- * "git fast-import" accepted "ls" command with an empty path by
-   mistake.
-
- * Various new-ish output decoration modes of "git grep" were not
-   documented in the manual's synopsis section.
-
- * The "remaining" subcommand to "git rerere" was not documented.
-
- * "gitweb" used to drop warnings in the log file when "heads" view is
-   accessed in a repository whose HEAD does not point at a valid
-   branch.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.9.6.txt b/third_party/git/Documentation/RelNotes/1.7.9.6.txt
deleted file mode 100644
index 74bf8825e2be..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.9.6.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Git v1.7.9.6 Release Notes
-==========================
-
-Fixes since v1.7.9.5
---------------------
-
- * "git merge $tag" to merge an annotated tag always opens the editor
-   during an interactive edit session. v1.7.10 series introduced an
-   environment variable GIT_MERGE_AUTOEDIT to help older scripts decline
-   this behaviour, but the maintenance track should also support it.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.9.7.txt b/third_party/git/Documentation/RelNotes/1.7.9.7.txt
deleted file mode 100644
index 59667d0f2a6d..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.9.7.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Git v1.7.9.7 Release Notes
-==========================
-
-Fixes since v1.7.9.6
---------------------
-
- * An error message from 'git bundle' had an unmatched single quote pair in it.
-
- * The way 'git fetch' implemented its connectivity check over
-   received objects was overly pessimistic, and wasted a lot of
-   cycles.
-
-Also contains minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.7.9.txt b/third_party/git/Documentation/RelNotes/1.7.9.txt
deleted file mode 100644
index 95320aad5dd2..000000000000
--- a/third_party/git/Documentation/RelNotes/1.7.9.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-Git v1.7.9 Release Notes
-========================
-
-Updates since v1.7.8
---------------------
-
- * gitk updates accumulated since early 2011.
-
- * git-gui updated to 0.16.0.
-
- * git-p4 (in contrib/) updates.
-
- * Git uses gettext to translate its most common interface messages
-   into the user's language if translations are available and the
-   locale is appropriately set. Distributors can drop new PO files
-   in po/ to add new translations.
-
- * The code to handle username/password for HTTP transactions used in
-   "git push" & "git fetch" learned to talk "credential API" to
-   external programs to cache or store them, to allow integration with
-   platform native keychain mechanisms.
-
- * The input prompts in the terminal use our own getpass() replacement
-   when possible. HTTP transactions used to ask for the username without
-   echoing back what was typed, but with this change you will see it as
-   you type.
-
- * The internals of "revert/cherry-pick" have been tweaked to prepare
-   building more generic "sequencer" on top of the implementation that
-   drives them.
-
- * "git rev-parse FETCH_HEAD" after "git fetch" without specifying
-   what to fetch from the command line will now show the commit that
-   would be merged if the command were "git pull".
-
- * "git add" learned to stream large files directly into a packfile
-   instead of writing them into individual loose object files.
-
- * "git checkout -B <current branch> <elsewhere>" is a more intuitive
-   way to spell "git reset --keep <elsewhere>".
-
- * "git checkout" and "git merge" learned "--no-overwrite-ignore" option
-   to tell Git that untracked and ignored files are not expendable.
-
- * "git commit --amend" learned "--no-edit" option to say that the
-   user is amending the tree being recorded, without updating the
-   commit log message.
-
- * "git commit" and "git reset" re-learned the optimization to prime
-   the cache-tree information in the index, which makes it faster to
-   write a tree object out after the index entries are updated.
-
- * "git commit" detects and rejects an attempt to stuff NUL byte in
-   the commit log message.
-
- * "git commit" learned "-S" to GPG-sign the commit; this can be shown
-   with the "--show-signature" option to "git log".
-
- * fsck and prune are relatively lengthy operations that still go
-   silent while making the end-user wait. They learned to give progress
-   output like other slow operations.
-
- * The set of built-in function-header patterns for various languages
-   knows MATLAB.
-
- * "git log --format='<format>'" learned new %g[nNeE] specifiers to
-   show information from the reflog entries when walking the reflog
-   (i.e. with "-g").
-
- * "git pull" can be used to fetch and merge an annotated/signed tag,
-   instead of the tip of a topic branch. The GPG signature from the
-   signed tag is recorded in the resulting merge commit for later
-   auditing.
-
- * "git log" learned "--show-signature" option to show the signed tag
-   that was merged that is embedded in the merge commit. It also can
-   show the signature made on the commit with "git commit -S".
-
- * "git branch --edit-description" can be used to add descriptive text
-   to explain what a topic branch is about.
-
- * "git fmt-merge-msg" learned to take the branch description into
-   account when preparing a merge summary that "git merge" records
-   when merging a local branch.
-
- * "git request-pull" has been updated to convey more information
-   useful for integrators to decide if a topic is worth merging and
-   what is pulled is indeed what the requestor asked to pull,
-   including:
-
-   - the tip of the branch being requested to be merged;
-   - the branch description describing what the topic is about;
-   - the contents of the annotated tag, when requesting to pull a tag.
-
- * "git pull" learned to notice 'pull.rebase' configuration variable,
-   which serves as a global fallback for setting 'branch.<name>.rebase'
-   configuration variable per branch.
-
- * "git tag" learned "--cleanup" option to control how the whitespaces
-   and empty lines in tag message are cleaned up.
-
- * "gitweb" learned to show side-by-side diff.
-
-Also contains minor documentation updates and code clean-ups.
-
-
-Fixes since v1.7.8
-------------------
-
-Unless otherwise noted, all the fixes since v1.7.8 in the maintenance
-releases are contained in this release (see release notes to them for
-details).
diff --git a/third_party/git/Documentation/RelNotes/1.8.0.1.txt b/third_party/git/Documentation/RelNotes/1.8.0.1.txt
deleted file mode 100644
index 1f372fa0b552..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.0.1.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-Git v1.8.0.1 Release Notes
-==========================
-
-Fixes since v1.8.0
-------------------
-
- * The configuration parser had an unnecessary hardcoded limit on
-   variable names that was not checked consistently.
-
- * The "say" function in the test scaffolding incorrectly allowed
-   "echo" to interpret "\a" as if it were a C-string asking for a
-   BEL output.
-
- * "git mergetool" feeds /dev/null as a common ancestor when dealing
-   with an add/add conflict, but p4merge backend cannot handle
-   it. Work it around by passing a temporary empty file.
-
- * "git log -F -E --grep='<ere>'" failed to use the given <ere>
-   pattern as extended regular expression, and instead looked for the
-   string literally.
-
- * "git grep -e pattern <tree>" asked the attribute system to read
-   "<tree>:.gitattributes" file in the working tree, which was
-   nonsense.
-
- * A symbolic ref refs/heads/SYM was not correctly removed with "git
-   branch -d SYM"; the command removed the ref pointed by SYM
-   instead.
-
- * Earlier we fixed documentation to hyphenate "remote-tracking branch"
-   to clarify that these are not a remote entity, but unhyphenated
-   spelling snuck in to a few places since then.
-
- * "git pull --rebase" run while the HEAD is detached tried to find
-   the upstream branch of the detached HEAD (which by definition
-   does not exist) and emitted unnecessary error messages.
-
- * The refs/replace hierarchy was not mentioned in the
-   repository-layout docs.
-
- * Sometimes curl_multi_timeout() function suggested a wrong timeout
-   value when there is no file descriptors to wait on and the http
-   transport ended up sleeping for minutes in select(2) system call.
-   A workaround has been added for this.
-
- * Various rfc2047 quoting issues around a non-ASCII name on the
-   From: line in the output from format-patch have been corrected.
-
- * "git diff -G<pattern>" did not honor textconv filter when looking
-   for changes.
-
- * Bash completion script (in contrib/) did not correctly complete a
-   lazy "git checkout $name_of_remote_tracking_branch_that_is_unique"
-   command line.
-
- * RSS feed from "gitweb" had a xss hole in its title output.
-
- * "git config --path $key" segfaulted on "[section] key" (a boolean
-   "true" spelled without "=", not "[section] key = true").
-
- * "git checkout -b foo" while on an unborn branch did not say
-   "Switched to a new branch 'foo'" like other cases.
-
-Also contains other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.8.0.2.txt b/third_party/git/Documentation/RelNotes/1.8.0.2.txt
deleted file mode 100644
index 8497e051dee7..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.0.2.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Git v1.8.0.2 Release Notes
-==========================
-
-Fixes since v1.8.0.1
---------------------
-
- * Various codepaths have workaround for a common misconfiguration to
-   spell "UTF-8" as "utf8", but it was not used uniformly.  Most
-   notably, mailinfo (which is used by "git am") lacked this support.
-
- * We failed to mention a file without any content change but whose
-   permission bit was modified, or (worse yet) a new file without any
-   content in the "git diff --stat" output.
-
- * When "--stat-count" hides a diffstat for binary contents, the total
-   number of added and removed lines at the bottom was computed
-   incorrectly.
-
- * When "--stat-count" hides a diffstat for unmerged paths, the total
-   number of affected files at the bottom of the "diff --stat" output
-   was computed incorrectly.
-
- * "diff --shortstat" miscounted the total number of affected files
-   when there were unmerged paths.
-
- * "git p4" used to try expanding malformed "$keyword$" that spans
-   across multiple lines.
-
- * "git update-ref -d --deref SYM" to delete a ref through a symbolic
-   ref that points to it did not remove it correctly.
-
- * Syntax highlighting in "gitweb" was not quite working.
-
-Also contains other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.8.0.3.txt b/third_party/git/Documentation/RelNotes/1.8.0.3.txt
deleted file mode 100644
index 92b1e4b36303..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.0.3.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Git v1.8.0.3 Release Notes
-==========================
-
-Fixes since v1.8.0.2
---------------------
-
- * "git log -p -S<string>" did not apply the textconv filter while
-   looking for the <string>.
-
- * In the documentation, some invalid example e-mail addresses were
-   formatted into mailto: links.
-
-Also contains many documentation updates backported from the 'master'
-branch that is preparing for the upcoming 1.8.1 release.
diff --git a/third_party/git/Documentation/RelNotes/1.8.0.txt b/third_party/git/Documentation/RelNotes/1.8.0.txt
deleted file mode 100644
index 63d6e4afa4df..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.0.txt
+++ /dev/null
@@ -1,267 +0,0 @@
-Git v1.8.0 Release Notes
-========================
-
-Backward compatibility notes
-----------------------------
-
-In the next major release (not *this* one), we will change the
-behavior of the "git push" command.
-
-When "git push [$there]" does not say what to push, we have used the
-traditional "matching" semantics so far (all your branches were sent
-to the remote as long as there already are branches of the same name
-over there).  We will use the "simple" semantics that pushes the
-current branch to the branch with the same name, only when the current
-branch is set to integrate with that remote branch.  There is a user
-preference configuration variable "push.default" to change this, and
-"git push" will warn about the upcoming change until you set this
-variable in this release.
-
-"git branch --set-upstream" is deprecated and may be removed in a
-relatively distant future.  "git branch [-u|--set-upstream-to]" has
-been introduced with a saner order of arguments.
-
-
-Updates since v1.7.12
----------------------
-
-UI, Workflows & Features
-
- * A credential helper for Win32 to allow access to the keychain of
-   the logged-in user has been added.
-
- * An initial port to HP NonStop.
-
- * A credential helper to allow access to the Gnome keyring has been
-   added.
-
- * When "git am" sanitizes the "Subject:" line, we strip the prefix from
-   "Re: subject" and also from a less common "re: subject", but left
-   the even less common "RE: subject" intact.  Now we strip that too.
-
- * It was tempting to say "git branch --set-upstream origin/master",
-   but that tells Git to arrange the local branch "origin/master" to
-   integrate with the currently checked out branch, which is highly
-   unlikely what the user meant.  The option is deprecated; use the
-   new "--set-upstream-to" (with a short-and-sweet "-u") option
-   instead.
-
- * "git cherry-pick" learned the "--allow-empty-message" option to
-   allow it to replay a commit without any log message.
-
- * After "git cherry-pick -s" gave control back to the user asking
-   help to resolve conflicts, concluding "git commit" used to need to
-   be run with "-s" if the user wants to sign it off; now the command
-   leaves the sign-off line in the log template.
-
- * "git daemon" learned the "--access-hook" option to allow an
-   external command to decline service based on the client address,
-   repository path, etc.
-
- * "git difftool --dir-diff" learned to use symbolic links to prepare
-   a temporary copy of the working tree when available.
-
- * "git grep" learned to use a non-standard pattern type by default if
-   a configuration variable tells it to.
-
- * Accumulated updates to "git gui" has been merged.
-
- * "git log -g" learned the "--grep-reflog=<pattern>" option to limit
-   its output to commits with a reflog message that matches the given
-   pattern.
-
- * "git merge-base" learned the "--is-ancestor A B" option to tell if A is
-   an ancestor of B.  The result is indicated by its exit status code.
-
- * "git mergetool" now allows users to override the actual command used
-   with the mergetool.$name.cmd configuration variable even for built-in
-   mergetool backends.
-
- * "git rebase -i" learned the "--edit-todo" option to open an editor
-   to edit the instruction sheet.
-
-
-Foreign Interface
-
- * "git svn" has been updated to work with SVN 1.7.
-
- * "git p4" learned the "--conflicts" option to specify what to do when
-   encountering a conflict during "p4 submit".
-
-
-Performance, Internal Implementation, etc.
-
- * Git ships with a fall-back regexp implementation for platforms with
-   buggy regexp library, but it was easy for people to keep using their
-   platform regexp by mistake.  A new test has been added to check this.
-
- * The "check-docs" build target has been updated and greatly
-   simplified.
-
- * The test suite is run under MALLOC_CHECK_ when running with a glibc
-   that supports the feature.
-
- * The documentation in the TeXinfo format was using indented output
-   for materials meant to be examples that are better typeset in
-   monospace.
-
- * Compatibility wrapper around some mkdir(2) implementations that
-   reject parameters with trailing slash has been introduced.
-
- * Compatibility wrapper for systems that lack usable setitimer() has
-   been added.
-
- * The option parsing of "git checkout" had error checking, dwim and
-   defaulting missing options, all mixed in the code, and issuing an
-   appropriate error message with useful context was getting harder.
-   The code has been reorganized to allow giving a proper diagnosis
-   when the user says "git checkout -b -t foo bar" (e.g. "-t" is not a
-   good name for a branch).
-
- * Many internal uses of a "git merge-base" equivalent were only to see
-   if one commit fast-forwards to the other, which did not need the
-   full set of merge bases to be computed. They have been updated to
-   use less expensive checks.
-
- * The heuristics to detect and silently convert latin1 to utf8 when
-   we were told to use utf-8 in the log message has been transplanted
-   from "mailinfo" to "commit" and "commit-tree".
-
- * Messages given by "git <subcommand> -h" from many subcommands have
-   been marked for translation.
-
-
-Also contains minor documentation updates and code clean-ups.
-
-
-Fixes since v1.7.12
--------------------
-
-Unless otherwise noted, all the fixes since v1.7.12 in the
-maintenance track are contained in this release (see release notes
-to them for details).
-
- * The attribute system may be asked for a path that itself or its
-   leading directories no longer exists in the working tree, and it is
-   fine if we cannot open .gitattribute file in such a case.  Failure
-   to open per-directory .gitattributes with error status other than
-   ENOENT and ENOTDIR should be diagnosed, but it wasn't.
-
- * When looking for $HOME/.gitconfig etc., it is OK if we cannot read
-   them because they do not exist, but we did not diagnose existing
-   files that we cannot read.
-
- * When "git am" is fed an input that has multiple "Content-type: ..."
-   header, it did not grok charset= attribute correctly.
-
- * "git am" mishandled a patch attached as application/octet-stream
-   (e.g. not text/*); Content-Transfer-Encoding (e.g. base64) was not
-   honored correctly.
-
- * "git blame MAKEFILE" run in a history that has "Makefile" but not
-   "MAKEFILE" should say "No such file MAKEFILE in HEAD", but got
-   confused on a case insensitive filesystem and failed to do so.
-
- * Even during a conflicted merge, "git blame $path" always meant to
-   blame uncommitted changes to the "working tree" version; make it
-   more useful by showing cleanly merged parts as coming from the other
-   branch that is being merged.
-
- * It was unclear in the documentation for "git blame" that it is
-   unnecessary for users to use the "--follow" option.
-
- * Output from "git branch -v" contains "(no branch)" that could be
-   localized, but the code to align it along with the names of
-   branches was counting in bytes, not in display columns.
-
- * "git cherry-pick A C B" used to replay changes in A and then B and
-   then C if these three commits had committer timestamps in that
-   order, which is not what the user who said "A C B" naturally
-   expects.
-
- * A repository created with "git clone --single" had its fetch
-   refspecs set up just like a clone without "--single", leading the
-   subsequent "git fetch" to slurp all the other branches, defeating
-   the whole point of specifying "only this branch".
-
- * Documentation talked about "first line of commit log" when it meant
-   the title of the commit.  The description was clarified by defining
-   how the title is decided and rewording the casual mention of "first
-   line" to "title".
-
- * "git cvsimport" did not thoroughly cleanse tag names that it
-   inferred from the names of the tags it obtained from CVS, which
-   caused "git tag" to barf and stop the import in the middle.
-
- * Earlier we made the diffstat summary line that shows the number of
-   lines added/deleted localizable, but it was found irritating having
-   to see them in various languages on a list whose discussion language
-   is English, and this change has been reverted.
-
- * "git fetch --all", when passed "--no-tags", did not honor the
-   "--no-tags" option while fetching from individual remotes (the same
-   issue existed with "--tags", but the combination "--all --tags" makes
-   much less sense than "--all --no-tags").
-
- * "git fetch" over http had an old workaround for an unlikely server
-   misconfiguration; it turns out that this hurts debuggability of the
-   configuration in general, and has been reverted.
-
- * "git fetch" over http advertised that it supports "deflate", which
-   is much less common, and did not advertise the more common "gzip" on
-   its Accept-Encoding header.
-
- * "git fetch" over the dumb-http revision walker could segfault when
-   curl's multi interface was used.
-
- * "git gc --auto" notified the user that auto-packing has triggered
-    even under the "--quiet" option.
-
- * After "gitk" showed the contents of a tag, neither "Reread
-   references" nor "Reload" updated what is shown as the
-   contents of it when the user overwrote the tag with "git tag -f".
-
- * "git log --all-match --grep=A --grep=B" ought to show commits that
-   mention both A and B, but when these three options are used with
-   --author or --committer, it showed commits that mention either A or
-   B (or both) instead.
-
- * The "-Xours" backend option to "git merge -s recursive" was ignored
-   for binary files.
-
- * "git p4", when "--use-client-spec" and "--detect-branches" are used
-   together, misdetected branches.
-
- * "git receive-pack" (the counterpart to "git push") did not give
-   progress output while processing objects it received to the user
-   when run over the smart-http protocol.
-
- * When you misspell the command name you give to the "exec" action in
-   the "git rebase -i" instruction sheet you were told that 'rebase' is not a
-   git subcommand from "git rebase --continue".
-
- * The subcommand in "git remote" to remove a defined remote was
-   "rm" and the command did not take a fully-spelled "remove".
-
- * The interactive prompt that "git send-email" gives was error prone. It
-   asked "What e-mail address do you want to use?" with the address it
-   guessed (correctly) the user would want to use in its prompt,
-   tempting the user to say "y". But the response was taken as "No,
-   please use 'y' as the e-mail address instead", which is most
-   certainly not what the user meant.
-
- * "git show --format='%ci'" did not give the timestamp correctly for
-   commits created without human readable name on the "committer" line.
-
- * "git show --quiet" ought to be a synonym for "git show -s", but
-   wasn't.
-
- * "git submodule frotz" was not diagnosed as "frotz" being an unknown
-   subcommand to "git submodule"; the user instead got a complaint
-   that "git submodule status" was run with an unknown path "frotz".
-
- * "git status" honored the ignore=dirty settings in .gitmodules but
-   "git commit" didn't.
-
- * "gitweb" did not give the correct committer timezone in its feed
-   output due to a typo.
diff --git a/third_party/git/Documentation/RelNotes/1.8.1.1.txt b/third_party/git/Documentation/RelNotes/1.8.1.1.txt
deleted file mode 100644
index 6cde07ba290c..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.1.1.txt
+++ /dev/null
@@ -1,87 +0,0 @@
-Git 1.8.1.1 Release Notes
-=========================
-
-Fixes since v1.8.1
-------------------
-
- * The attribute mechanism didn't allow limiting attributes to be
-   applied to only a single directory itself with "path/" like the
-   exclude mechanism does.
-
- * When attempting to read the XDG-style $HOME/.config/git/config and
-   finding that $HOME/.config/git is a file, we gave a wrong error
-   message, instead of treating the case as "a custom config file does
-   not exist there" and moving on.
-
- * After failing to create a temporary file using mkstemp(), failing
-   pathname was not reported correctly on some platforms.
-
- * http transport was wrong to ask for the username when the
-   authentication is done by certificate identity.
-
- * The behaviour visible to the end users was confusing, when they
-   attempt to kill a process spawned in the editor that was in turn
-   launched by Git with SIGINT (or SIGQUIT), as Git would catch that
-   signal and die.  We ignore these signals now.
-
- * A child process that was killed by a signal (e.g. SIGINT) was
-   reported in an inconsistent way depending on how the process was
-   spawned by us, with or without a shell in between.
-
- * After "git add -N" and then writing a tree object out of the
-   index, the cache-tree data structure got corrupted.
-
- * "git apply" misbehaved when fixing whitespace breakages by removing
-   excess trailing blank lines in some corner cases.
-
- * A tar archive created by "git archive" recorded a directory in a
-   way that made NetBSD's implementation of "tar" sometimes unhappy.
-
- * When "git clone --separate-git-dir=$over_there" is interrupted, it
-   failed to remove the real location of the $GIT_DIR it created.
-   This was most visible when interrupting a submodule update.
-
- * "git fetch --mirror" and fetch that uses other forms of refspec
-   with wildcard used to attempt to update a symbolic ref that match
-   the wildcard on the receiving end, which made little sense (the
-   real ref that is pointed at by the symbolic ref would be updated
-   anyway).  Symbolic refs no longer are affected by such a fetch.
-
- * The "log --graph" codepath fell into infinite loop in some
-   corner cases.
-
- * "git merge" started calling prepare-commit-msg hook like "git
-   commit" does some time ago, but forgot to pay attention to the exit
-   status of the hook.
-
- * "git pack-refs" that ran in parallel to another process that
-   created new refs had a race that can lose new ones.
-
- * When a line to be wrapped has a solid run of non space characters
-   whose length exactly is the wrap width, "git shortlog -w" failed
-   to add a newline after such a line.
-
- * The way "git svn" asked for password using SSH_ASKPASS and
-   GIT_ASKPASS was not in line with the rest of the system.
-
- * "gitweb", when sorting by age to show repositories with new
-   activities first, used to sort repositories with absolutely
-   nothing in it early, which was not very useful.
-
- * "gitweb", when sorting by age to show repositories with new
-   activities first, used to sort repositories with absolutely
-   nothing in it early, which was not very useful.
-
- * When autoconf is used, any build on a different commit always ran
-   "config.status --recheck" even when unnecessary.
-
- * Some scripted programs written in Python did not get updated when
-   PYTHON_PATH changed.
-
- * We have been carrying a translated and long-unmaintained copy of an
-   old version of the tutorial; removed.
-
- * Portability issues in many self-test scripts have been addressed.
-
-
-Also contains other minor fixes and documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.8.1.2.txt b/third_party/git/Documentation/RelNotes/1.8.1.2.txt
deleted file mode 100644
index 5ab7b18906f0..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.1.2.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-Git 1.8.1.2 Release Notes
-=========================
-
-Fixes since v1.8.1.1
---------------------
-
- * An element on GIT_CEILING_DIRECTORIES list that does not name the
-   real path to a directory (i.e. a symbolic link) could have caused
-   the GIT_DIR discovery logic to escape the ceiling.
-
- * Command line completion for "tcsh" emitted an unwanted space
-   after completing a single directory name.
-
- * Command line completion leaked an unnecessary error message while
-   looking for possible matches with paths in <tree-ish>.
-
- * "git archive" did not record uncompressed size in the header when
-   streaming a zip archive, which confused some implementations of unzip.
-
- * When users spelled "cc:" in lowercase in the fake "header" in the
-   trailer part, "git send-email" failed to pick up the addresses from
-   there. As e-mail headers field names are case insensitive, this
-   script should follow suit and treat "cc:" and "Cc:" the same way.
-
-Also contains various documentation fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.8.1.3.txt b/third_party/git/Documentation/RelNotes/1.8.1.3.txt
deleted file mode 100644
index 681cb35c0a3a..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.1.3.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-Git 1.8.1.3 Release Notes
-=========================
-
-Fixes since v1.8.1.2
---------------------
-
- * The attribute mechanism didn't allow limiting attributes to be
-   applied to only a single directory itself with "path/" like the
-   exclude mechanism does.  The fix for this in 1.8.1.2 had
-   performance degradations.
-
- * Command line completion code was inadvertently made incompatible with
-   older versions of bash by using a newer array notation.
-
- * Scripts to test bash completion was inherently flaky as it was
-   affected by whatever random things the user may have on $PATH.
-
- * A fix was added to the build procedure to work around buggy
-   versions of ccache broke the auto-generation of dependencies, which
-   unfortunately is still relevant because some people use ancient
-   distros.
-
- * We used to stuff "user@" and then append what we read from
-   /etc/mailname to come up with a default e-mail ident, but a bug
-   lost the "user@" part.
-
- * "git am" did not parse datestamp correctly from Hg generated patch,
-   when it is run in a locale outside C (or en).
-
- * Attempt to "branch --edit-description" an existing branch, while
-   being on a detached HEAD, errored out.
-
- * "git cherry-pick" did not replay a root commit to an unborn branch.
-
- * We forgot to close the file descriptor reading from "gpg" output,
-   killing "git log --show-signature" on a long history.
-
- * "git rebase --preserve-merges" lost empty merges in recent versions
-   of Git.
-
- * Rebasing the history of superproject with change in the submodule
-   has been broken since v1.7.12.
-
- * A failure to push due to non-ff while on an unborn branch
-   dereferenced a NULL pointer when showing an error message.
-
-Also contains various documentation fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.8.1.4.txt b/third_party/git/Documentation/RelNotes/1.8.1.4.txt
deleted file mode 100644
index 22af1d164326..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.1.4.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Git 1.8.1.4 Release Notes
-=========================
-
-Fixes since v1.8.1.3
---------------------
-
- * "git imap-send" talking over imaps:// did make sure it received a
-   valid certificate from the other end, but did not check if the
-   certificate matched the host it thought it was talking to.
-
-Also contains various documentation fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.8.1.5.txt b/third_party/git/Documentation/RelNotes/1.8.1.5.txt
deleted file mode 100644
index efa68aef226c..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.1.5.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-Git 1.8.1.5 Release Notes
-=========================
-
-Fixes since v1.8.1.4
---------------------
-
- * Given a string with a multi-byte character that begins with '-' on
-   the command line where an option is expected, the option parser
-   used just one byte of the unknown letter when reporting an error.
-
- * In v1.8.1, the attribute parser was tightened too restrictive to
-   error out upon seeing an entry that begins with an ! (exclamation),
-   which may confuse users to expect a "negative match", which does
-   not exist.  This has been demoted to a warning; such an entry is
-   still ignored.
-
- * "git apply --summary" has been taught to make sure the similarity
-   value shown in its output is sensible, even when the input had a
-   bogus value.
-
- * "git clean" showed what it was going to do, but sometimes ended
-   up finding that it was not allowed to do so, which resulted in a
-   confusing output (e.g. after saying that it will remove an
-   untracked directory, it found an embedded git repository there
-   which it is not allowed to remove).  It now performs the actions
-   and then reports the outcome more faithfully.
-
- * "git clone" used to allow --bare and --separate-git-dir=$there
-   options at the same time, which was nonsensical.
-
- * "git cvsimport" mishandled timestamps at DST boundary.
-
- * We used to have an arbitrary 32 limit for combined diff input,
-   resulting in incorrect number of leading colons shown when showing
-   the "--raw --cc" output.
-
- * The smart HTTP clients forgot to verify the content-type that comes
-   back from the server side to make sure that the request is being
-   handled properly.
-
- * "git help remote-helpers" failed to find the documentation.
-
- * "gitweb" pages served over HTTPS, when configured to show picon or
-   gravatar, referred to these external resources to be fetched via
-   HTTP, resulting in mixed contents warning in browsers.
-
-Also contains various documentation fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.8.1.6.txt b/third_party/git/Documentation/RelNotes/1.8.1.6.txt
deleted file mode 100644
index c15cf2e80545..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.1.6.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-Git 1.8.1.6 Release Notes
-=========================
-
-Fixes since v1.8.1.5
---------------------
-
- * An earlier change to the attribute system introduced at v1.8.1.2 by
-   mistake stopped a pattern "dir" (without trailing slash) from
-   matching a directory "dir" (it only wanted to allow pattern "dir/"
-   to also match).
-
- * The code to keep track of what directory names are known to Git on
-   platforms with case insensitive filesystems can get confused upon a
-   hash collision between these pathnames and looped forever.
-
- * When the "--prefix" option is used to "checkout-index", the code
-   did not pick the correct output filter based on the attribute
-   setting.
-
- * Annotated tags outside refs/tags/ hierarchy were not advertised
-   correctly to the ls-remote and fetch with recent version of Git.
-
- * The logic used by "git diff -M --stat" to shorten the names of
-   files before and after a rename did not work correctly when the
-   common prefix and suffix between the two filenames overlapped.
-
- * "git update-index -h" did not do the usual "-h(elp)" thing.
-
- * perl/Git.pm::cat_blob slurped everything in core only to write it
-   out to a file descriptor, which was not a very smart thing to do.
-
- * The SSL peer verification done by "git imap-send" did not ask for
-   Server Name Indication (RFC 4366), failing to connect SSL/TLS
-   sites that serve multiple hostnames on a single IP.
-
- * "git bundle verify" did not say "records a complete history" for a
-   bundle that does not have any prerequisites.
-
-Also contains various documentation fixes.
diff --git a/third_party/git/Documentation/RelNotes/1.8.1.txt b/third_party/git/Documentation/RelNotes/1.8.1.txt
deleted file mode 100644
index d6f9555923ae..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.1.txt
+++ /dev/null
@@ -1,241 +0,0 @@
-Git v1.8.1 Release Notes
-========================
-
-Backward compatibility notes
-----------------------------
-
-In the next major release (not *this* one), we will change the
-behavior of the "git push" command.
-
-When "git push [$there]" does not say what to push, we have used the
-traditional "matching" semantics so far (all your branches were sent
-to the remote as long as there already are branches of the same name
-over there).  We will use the "simple" semantics that pushes the
-current branch to the branch with the same name, only when the current
-branch is set to integrate with that remote branch.  There is a user
-preference configuration variable "push.default" to change this, and
-"git push" will warn about the upcoming change until you set this
-variable in this release.
-
-"git branch --set-upstream" is deprecated and may be removed in a
-relatively distant future.  "git branch [-u|--set-upstream-to]" has
-been introduced with a saner order of arguments to replace it.
-
-
-Updates since v1.8.0
---------------------
-
-UI, Workflows & Features
-
- * Command-line completion scripts for tcsh and zsh have been added.
-
- * "git-prompt" scriptlet (in contrib/completion) can be told to paint
-   pieces of the hints in the prompt string in colors.
-
- * Some documentation pages that used to ship only in the plain text
-   format are now formatted in HTML as well.
-
- * We used to have a workaround for a bug in ancient "less" that
-   causes it to exit without any output when the terminal is resized.
-   The bug has been fixed in "less" version 406 (June 2007), and the
-   workaround has been removed in this release.
-
- * When "git checkout" checks out a branch, it tells the user how far
-   behind (or ahead) the new branch is relative to the remote tracking
-   branch it builds upon.  The message now also advises how to sync
-   them up by pushing or pulling.  This can be disabled with the
-   advice.statusHints configuration variable.
-
- * "git config --get" used to diagnose presence of multiple
-   definitions of the same variable in the same configuration file as
-   an error, but it now applies the "last one wins" rule used by the
-   internal configuration logic.  Strictly speaking, this may be an
-   API regression but it is expected that nobody will notice it in
-   practice.
-
- * A new configuration variable "diff.context" can be used to
-   give the default number of context lines in the patch output, to
-   override the hardcoded default of 3 lines.
-
- * "git format-patch" learned the "--notes=<ref>" option to give
-   notes for the commit after the three-dash lines in its output.
-
- * "git log -p -S<string>" now looks for the <string> after applying
-   the textconv filter (if defined); earlier it inspected the contents
-   of the blobs without filtering.
-
- * "git log --grep=<pcre>" learned to honor the "grep.patterntype"
-   configuration set to "perl".
-
- * "git replace -d <object>" now interprets <object> as an extended
-   SHA-1 (e.g. HEAD~4 is allowed), instead of only accepting full hex
-   object name.
-
- * "git rm $submodule" used to punt on removing a submodule working
-   tree to avoid losing the repository embedded in it.  Because
-   recent git uses a mechanism to separate the submodule repository
-   from the submodule working tree, "git rm" learned to detect this
-   case and removes the submodule working tree when it is safe to do so.
-
- * "git send-email" used to prompt for the sender address, even when
-   the committer identity is well specified (e.g. via user.name and
-   user.email configuration variables).  The command no longer gives
-   this prompt when not necessary.
-
- * "git send-email" did not allow non-address garbage strings to
-   appear after addresses on Cc: lines in the patch files (and when
-   told to pick them up to find more recipients), e.g.
-
-     Cc: Stable Kernel <stable@k.org> # for v3.2 and up
-
-   The command now strips " # for v3.2 and up" part before adding the
-   remainder of this line to the list of recipients.
-
- * "git submodule add" learned to add a new submodule at the same
-   path as the path where an unrelated submodule was bound to in an
-   existing revision via the "--name" option.
-
- * "git submodule sync" learned the "--recursive" option.
-
- * "diff.submodule" configuration variable can be used to give custom
-   default value to the "git diff --submodule" option.
-
- * "git symbolic-ref" learned the "-d $symref" option to delete the
-   named symbolic ref, which is more intuitive way to spell it than
-   "update-ref -d --no-deref $symref".
-
-
-Foreign Interface
-
- * "git cvsimport" can be told to record timezones (other than GMT)
-   per-author via its author info file.
-
- * The remote helper interface to interact with subversion
-   repositories (one of the GSoC 2012 projects) has been merged.
-
- * A new remote-helper interface for Mercurial has been added to
-   contrib/remote-helpers.
-
- * The documentation for git(1) was pointing at a page at an external
-   site for the list of authors that no longer existed.  The link has
-   been updated to point at an alternative site.
-
-
-Performance, Internal Implementation, etc.
-
- * Compilation on Cygwin with newer header files are supported now.
-
- * A couple of low-level implementation updates on MinGW.
-
- * The logic to generate the initial advertisement from "upload-pack"
-   (i.e. what is invoked by "git fetch" on the other side of the
-   connection) to list what refs are available in the repository has
-   been optimized.
-
- * The logic to find set of attributes that match a given path has
-   been optimized.
-
- * Use preloadindex in "git diff-index" and "git update-index", which
-   has a nice speedup on systems with slow stat calls (and even on
-   Linux).
-
-
-Also contains minor documentation updates and code clean-ups.
-
-
-Fixes since v1.8.0
-------------------
-
-Unless otherwise noted, all the fixes since v1.8.0 in the maintenance
-track are contained in this release (see release notes to them for
-details).
-
- * The configuration parser had an unnecessary hardcoded limit on
-   variable names that was not checked consistently.
-
- * The "say" function in the test scaffolding incorrectly allowed
-   "echo" to interpret "\a" as if it were a C-string asking for a
-   BEL output.
-
- * "git mergetool" feeds /dev/null as a common ancestor when dealing
-   with an add/add conflict, but p4merge backend cannot handle
-   it. Work it around by passing a temporary empty file.
-
- * "git log -F -E --grep='<ere>'" failed to use the given <ere>
-   pattern as extended regular expression, and instead looked for the
-   string literally.
-
- * "git grep -e pattern <tree>" asked the attribute system to read
-   "<tree>:.gitattributes" file in the working tree, which was
-   nonsense.
-
- * A symbolic ref refs/heads/SYM was not correctly removed with "git
-   branch -d SYM"; the command removed the ref pointed by SYM
-   instead.
-
- * Update "remote tracking branch" in the documentation to
-   "remote-tracking branch".
-
- * "git pull --rebase" run while the HEAD is detached tried to find
-   the upstream branch of the detached HEAD (which by definition
-   does not exist) and emitted unnecessary error messages.
-
- * The refs/replace hierarchy was not mentioned in the
-   repository-layout docs.
-
- * Various rfc2047 quoting issues around a non-ASCII name on the
-   From: line in the output from format-patch have been corrected.
-
- * Sometimes curl_multi_timeout() function suggested a wrong timeout
-   value when there is no file descriptor to wait on and the http
-   transport ended up sleeping for minutes in select(2) system call.
-   A workaround has been added for this.
-
- * For a fetch refspec (or the result of applying wildcard on one),
-   we always want the RHS to map to something inside "refs/"
-   hierarchy, but the logic to check it was not exactly right.
-   (merge 5c08c1f jc/maint-fetch-tighten-refname-check later to maint).
-
- * "git diff -G<pattern>" did not honor textconv filter when looking
-   for changes.
-
- * Some HTTP servers ask for auth only during the actual packing phase
-   (not in ls-remote phase); this is not really a recommended
-   configuration, but the clients used to fail to authenticate with
-   such servers.
-   (merge 2e736fd jk/maint-http-half-auth-fetch later to maint).
-
- * "git p4" used to try expanding malformed "$keyword$" that spans
-   across multiple lines.
-
- * Syntax highlighting in "gitweb" was not quite working.
-
- * RSS feed from "gitweb" had a xss hole in its title output.
-
- * "git config --path $key" segfaulted on "[section] key" (a boolean
-   "true" spelled without "=", not "[section] key = true").
-
- * "git checkout -b foo" while on an unborn branch did not say
-   "Switched to a new branch 'foo'" like other cases.
-
- * Various codepaths have workaround for a common misconfiguration to
-   spell "UTF-8" as "utf8", but it was not used uniformly.  Most
-   notably, mailinfo (which is used by "git am") lacked this support.
-
- * We failed to mention a file without any content change but whose
-   permission bit was modified, or (worse yet) a new file without any
-   content in the "git diff --stat" output.
-
- * When "--stat-count" hides a diffstat for binary contents, the total
-   number of added and removed lines at the bottom was computed
-   incorrectly.
-
- * When "--stat-count" hides a diffstat for unmerged paths, the total
-   number of affected files at the bottom of the "diff --stat" output
-   was computed incorrectly.
-
- * "diff --shortstat" miscounted the total number of affected files
-   when there were unmerged paths.
-
- * "update-ref -d --deref SYM" to delete a ref through a symbolic ref
-   that points to it did not remove it correctly.
diff --git a/third_party/git/Documentation/RelNotes/1.8.2.1.txt b/third_party/git/Documentation/RelNotes/1.8.2.1.txt
deleted file mode 100644
index 769a6fc06c9e..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.2.1.txt
+++ /dev/null
@@ -1,115 +0,0 @@
-Git v1.8.2.1 Release Notes
-==========================
-
-Fixes since v1.8.2
-------------------
-
- * An earlier change to the attribute system introduced at v1.8.1.2 by
-   mistake stopped a pattern "dir" (without trailing slash) from
-   matching a directory "dir" (it only wanted to allow pattern "dir/"
-   to also match).
-
- * Verification of signed tags were not done correctly when not in C
-   or en/US locale.
-
- * 'git commit -m "$msg"' used to add an extra newline even when
-   $msg already ended with one.
-
- * The "--match=<pattern>" option of "git describe", when used with
-   "--all" to allow refs that are not annotated tags to be used as a
-   base of description, did not restrict the output from the command
-   to those that match the given pattern.
-
- * An aliased command spawned from a bare repository that does not say
-   it is bare with "core.bare = yes" is treated as non-bare by mistake.
-
- * When "format-patch" quoted a non-ascii strings on the header files,
-   it incorrectly applied rfc2047 and chopped a single character in
-   the middle of it.
-
- * "git archive" reports a failure when asked to create an archive out
-   of an empty tree.  It would be more intuitive to give an empty
-   archive back in such a case.
-
- * "git tag -f <tag>" always said "Updated tag '<tag>'" even when
-   creating a new tag (i.e. not overwriting nor updating).
-
- * "git cmd -- ':(top'" was not diagnosed as an invalid syntax, and
-   instead the parser kept reading beyond the end of the string.
-
- * Annotated tags outside refs/tags/ hierarchy were not advertised
-   correctly to the ls-remote and fetch with recent version of Git.
-
- * The code to keep track of what directory names are known to Git on
-   platforms with case insensitive filesystems can get confused upon a
-   hash collision between these pathnames and looped forever.
-
- * The logic used by "git diff -M --stat" to shorten the names of
-   files before and after a rename did not work correctly when the
-   common prefix and suffix between the two filenames overlapped.
-
- * "git submodule update", when recursed into sub-submodules, did not
-   accumulate the prefix paths.
-
- * "git am $maildir/" applied messages in an unexpected order; sort
-   filenames read from the maildir/ in a way that is more likely to
-   sort messages in the order the writing MUA meant to, by sorting
-   numeric segment in numeric order and non-numeric segment in
-   alphabetical order.
-
- * When export-subst is used, "zip" output recorded incorrect
-   size of the file.
-
- * Some platforms and users spell UTF-8 differently; retry with the
-   most official "UTF-8" when the system does not understand the
-   user-supplied encoding name that are the common alternative
-   spellings of UTF-8.
-
- * "git branch" did not bother to check nonsense command line
-   parameters and issue errors in many cases.
-
- * "git update-index -h" did not do the usual "-h(elp)" thing.
-
- * perl/Git.pm::cat_blob slurped everything in core only to write it
-   out to a file descriptor, which was not a very smart thing to do.
-
- * The SSL peer verification done by "git imap-send" did not ask for
-   Server Name Indication (RFC 4366), failing to connect SSL/TLS
-   sites that serve multiple hostnames on a single IP.
-
- * "git index-pack" had a buffer-overflow while preparing an
-   informational message when the translated version of it was too
-   long.
-
- * Clarify in the documentation "what" gets pushed to "where" when the
-   command line to "git push" does not say these explicitly.
-
- * In "git reflog expire", REACHABLE bit was not cleared from the
-   correct objects.
-
- * The "--color=<when>" argument to the commands in the diff family
-   was described poorly.
-
- * The arguments given to pre-rebase hook were not documented.
-
- * The v4 index format was not documented.
-
- * The "--match=<pattern>" argument "git describe" takes uses glob
-   pattern but it wasn't obvious from the documentation.
-
- * Some sources failed to compile on systems that lack NI_MAXHOST in
-   their system header (e.g. z/OS).
-
- * Add an example use of "--env-filter" in "filter-branch"
-   documentation.
-
- * "git bundle verify" did not say "records a complete history" for a
-   bundle that does not have any prerequisites.
-
- * In the v1.8.0 era, we changed symbols that do not have to be global
-   to file scope static, but a few functions in graph.c were used by
-   CGit from sideways bypassing the entry points of the API the
-   in-tree users use.
-
- * "git merge-tree" had a typo in the logic to detect d/f conflicts,
-   which caused it to segfault in some cases.
diff --git a/third_party/git/Documentation/RelNotes/1.8.2.2.txt b/third_party/git/Documentation/RelNotes/1.8.2.2.txt
deleted file mode 100644
index 708df1ae196c..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.2.2.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-Git v1.8.2.2 Release Notes
-==========================
-
-Fixes since v1.8.2.1
---------------------
-
- * Zsh completion forgot that '%' character used to signal untracked
-   files needs to be escaped with another '%'.
-
- * A commit object whose author or committer ident are malformed
-   crashed some code that trusted that a name, an email and an
-   timestamp can always be found in it.
-
- * The new core.commentchar configuration was not applied to a few
-   places.
-
- * "git pull --rebase" did not pass "-v/-q" options to underlying
-   "git rebase".
-
- * When receive-pack detects error in the pack header it received in
-   order to decide which of unpack-objects or index-pack to run, it
-   returned without closing the error stream, which led to a hang
-   sideband thread.
-
- * "git diff --diff-algorithm=algo" was understood by the command line
-   parser, but "git diff --diff-algorithm algo" was not.
-
- * "git log -S/-G" started paying attention to textconv filter, but
-   there was no way to disable this.  Make it honor --no-textconv
-   option.
-
- * "git merge $(git rev-parse v1.8.2)" behaved quite differently from
-   "git merge v1.8.2", as if v1.8.2 were written as v1.8.2^0 and did
-   not pay much attention to the annotated tag payload.  Make the code
-   notice the type of the tag object, in addition to the dwim_ref()
-   based classification the current code uses (i.e. the name appears
-   in refs/tags/) to decide when to special case merging of tags.
-
- * "git cherry-pick" and "git revert" can take more than one commit
-   on the command line these days, but it was not mentioned on the usage
-   text.
-
- * Perl scripts like "git-svn" closed (not redirecting to /dev/null)
-   the standard error stream, which is not a very smart thing to do.
-   Later open may return file descriptor #2 for unrelated purpose, and
-   error reporting code may write into them.
-
- * "git apply --whitespace=fix" was not prepared to see a line getting
-   longer after fixing whitespaces (e.g. tab-in-indent aka Python).
-
- * "git diff/log --cc" did not work well with options that ignore
-   whitespace changes.
-
- * Documentation on setting up a http server that requires
-   authentication only on the push but not fetch has been clarified.
-
- * A few bugfixes to "git rerere" working on corner case merge
-   conflicts have been applied.
-
- * "git bundle" did not like a bundle created using a commit without
-   any message as its one of the prerequisites.
diff --git a/third_party/git/Documentation/RelNotes/1.8.2.3.txt b/third_party/git/Documentation/RelNotes/1.8.2.3.txt
deleted file mode 100644
index 613948251add..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.2.3.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Git v1.8.2.3 Release Notes
-==========================
-
-Fixes since v1.8.2.2
---------------------
-
- * "rev-list --stdin" and friends kept bogus pointers into the input
-   buffer around as human readable object names.  This was not a
-   huge problem but was exposed by a new change that uses these
-   names in error output.
-
- * When "git difftool" drove "kdiff3", it mistakenly passed --auto
-   option that was meant while resolving merge conflicts.
-
- * "git remote add" command did not diagnose extra command line
-   arguments as an error and silently ignored them.
-
-Also contains a handful of trivial code clean-ups, documentation
-updates, updates to the test suite, etc.
diff --git a/third_party/git/Documentation/RelNotes/1.8.2.txt b/third_party/git/Documentation/RelNotes/1.8.2.txt
deleted file mode 100644
index fc606ae11623..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.2.txt
+++ /dev/null
@@ -1,495 +0,0 @@
-Git v1.8.2 Release Notes
-========================
-
-Backward compatibility notes (this release)
--------------------------------------------
-
-"git push $there tag v1.2.3" used to allow replacing a tag v1.2.3
-that already exists in the repository $there, if the rewritten tag
-you are pushing points at a commit that is a descendant of a commit
-that the old tag v1.2.3 points at.  This was found to be error prone
-and starting with this release, any attempt to update an existing
-ref under refs/tags/ hierarchy will fail, without "--force".
-
-When "git add -u" and "git add -A" that does not specify what paths
-to add on the command line is run from inside a subdirectory, the
-scope of the operation has always been limited to the subdirectory.
-Many users found this counter-intuitive, given that "git commit -a"
-and other commands operate on the entire tree regardless of where you
-are.  In this release, these commands give a warning message that
-suggests the users to use "git add -u/-A ." when they want to limit
-the scope to the current directory; doing so will squelch the message,
-while training their fingers.
-
-
-Backward compatibility notes (for Git 2.0)
-------------------------------------------
-
-When "git push [$there]" does not say what to push, we have used the
-traditional "matching" semantics so far (all your branches were sent
-to the remote as long as there already are branches of the same name
-over there).  In Git 2.0, the default will change to the "simple"
-semantics that pushes the current branch to the branch with the same
-name, only when the current branch is set to integrate with that
-remote branch.  There is a user preference configuration variable
-"push.default" to change this.  If you are an old-timer who is used
-to the "matching" semantics, you can set it to "matching" to keep the
-traditional behaviour.  If you want to live in the future early,
-you can set it to "simple" today without waiting for Git 2.0.
-
-When "git add -u" and "git add -A", that does not specify what paths
-to add on the command line is run from inside a subdirectory, these
-commands will operate on the entire tree in Git 2.0 for consistency
-with "git commit -a" and other commands. Because there will be no
-mechanism to make "git add -u" behave as if "git add -u .", it is
-important for those who are used to "git add -u" (without pathspec)
-updating the index only for paths in the current subdirectory to start
-training their fingers to explicitly say "git add -u ." when they mean
-it before Git 2.0 comes.
-
-
-Updates since v1.8.1
---------------------
-
-UI, Workflows & Features
-
- * Initial ports to QNX and z/OS UNIX System Services have started.
-
- * Output from the tests is coloured using "green is okay, yellow is
-   questionable, red is bad and blue is informative" scheme.
-
- * Mention of "GIT/Git/git" in the documentation have been updated to
-   be more uniform and consistent.  The name of the system and the
-   concept it embodies is "Git"; the command the users type is "git".
-   All-caps "GIT" was merely a way to imitate "Git" typeset in small
-   caps in our ASCII text only documentation and to be avoided.
-
- * The completion script (in contrib/completion) used to let the
-   default completer to suggest pathnames, which gave too many
-   irrelevant choices (e.g. "git add" would not want to add an
-   unmodified path).  It learnt to use a more git-aware logic to
-   enumerate only relevant ones.
-
- * In bare repositories, "git shortlog" and other commands now read
-   mailmap files from the tip of the history, to help running these
-   tools in server settings.
-
- * Color specifiers, e.g. "%C(blue)Hello%C(reset)", used in the
-   "--format=" option of "git log" and friends can be disabled when
-   the output is not sent to a terminal by prefixing them with
-   "auto,", e.g. "%C(auto,blue)Hello%C(auto,reset)".
-
- * Scripts can ask Git that wildcard patterns in pathspecs they give do
-   not have any significance, i.e. take them as literal strings.
-
- * The patterns in .gitignore and .gitattributes files can have **/,
-   as a pattern that matches 0 or more levels of subdirectory.
-   E.g. "foo/**/bar" matches "bar" in "foo" itself or in a
-   subdirectory of "foo".
-
- * When giving arguments without "--" disambiguation, object names
-   that come earlier on the command line must not be interpretable as
-   pathspecs and pathspecs that come later on the command line must
-   not be interpretable as object names.  This disambiguation rule has
-   been tweaked so that ":/" (no other string before or after) is
-   always interpreted as a pathspec; "git cmd -- :/" is no longer
-   needed, you can just say "git cmd :/".
-
- * Various "hint" lines Git gives when it asks the user to edit
-   messages in the editor are commented out with '#' by default. The
-   core.commentchar configuration variable can be used to customize
-   this '#' to a different character.
-
- * "git add -u" and "git add -A" without pathspec issues warning to
-   make users aware that they are only operating on paths inside the
-   subdirectory they are in.  Use ":/" (everything from the top) or
-   "." (everything from the $cwd) to disambiguate.
-
- * "git blame" (and "git diff") learned the "--no-follow" option.
-
- * "git branch" now rejects some nonsense combinations of command line
-   arguments (e.g. giving more than one branch name to rename) with
-   more case-specific error messages.
-
- * "git check-ignore" command to help debugging .gitignore files has
-   been added.
-
- * "git cherry-pick" can be used to replay a root commit to an unborn
-   branch.
-
- * "git commit" can be told to use --cleanup=whitespace by setting the
-   configuration variable commit.cleanup to 'whitespace'.
-
- * "git diff" and other Porcelain commands can be told to use a
-   non-standard algorithm by setting diff.algorithm configuration
-   variable.
-
- * "git fetch --mirror" and fetch that uses other forms of refspec
-   with wildcard used to attempt to update a symbolic ref that match
-   the wildcard on the receiving end, which made little sense (the
-   real ref that is pointed at by the symbolic ref would be updated
-   anyway).  Symbolic refs no longer are affected by such a fetch.
-
- * "git format-patch" now detects more cases in which a whole branch
-   is being exported, and uses the description for the branch, when
-   asked to write a cover letter for the series.
-
- * "git format-patch" learned "-v $count" option, and prepends a
-   string "v$count-" to the names of its output files, and also
-   automatically sets the subject prefix to "PATCH v$count". This
-   allows patches from rerolled series to be stored under different
-   names and makes it easier to reuse cover letter messages.
-
- * "git log" and friends can be told with --use-mailmap option to
-   rewrite the names and email addresses of people using the mailmap
-   mechanism.
-
- * "git log --cc --graph" now shows the combined diff output with the
-   ancestry graph.
-
- * "git log --grep=<pattern>" honors i18n.logoutputencoding to look
-   for the pattern after fixing the log message to the specified
-   encoding.
-
- * "git mergetool" and "git difftool" learned to list the available
-   tool backends in a more consistent manner.
-
- * "git mergetool" is aware of TortoiseGitMerge now and uses it over
-   TortoiseMerge when available.
-
- * "git push" now requires "-f" to update a tag, even if it is a
-   fast-forward, as tags are meant to be fixed points.
-
- * Error messages from "git push" when it stops to prevent remote refs
-   from getting overwritten by mistake have been improved to explain
-   various situations separately.
-
- * "git push" will stop without doing anything if the new "pre-push"
-   hook exists and exits with a failure.
-
- * When "git rebase" fails to generate patches to be applied (e.g. due
-   to oom), it failed to detect the failure and instead behaved as if
-   there were nothing to do.  A workaround to use a temporary file has
-   been applied, but we probably would want to revisit this later, as
-   it hurts the common case of not failing at all.
-
- * Input and preconditions to "git reset" has been loosened where
-   appropriate.  "git reset $fromtree Makefile" requires $fromtree to
-   be any tree (it used to require it to be a commit), for example.
-   "git reset" (without options or parameters) used to error out when
-   you do not have any commits in your history, but it now gives you
-   an empty index (to match non-existent commit you are not even on).
-
- * "git status" says what branch is being bisected or rebased when
-   able, not just "bisecting" or "rebasing".
-
- * "git submodule" started learning a new mode to integrate with the
-   tip of the remote branch (as opposed to integrating with the commit
-   recorded in the superproject's gitlink).
-
- * "git upload-pack" which implements the service "ls-remote" and
-   "fetch" talk to can be told to hide ref hierarchies the server
-   side internally uses (and that clients have no business learning
-   about) with transfer.hiderefs configuration.
-
-
-Foreign Interface
-
- * "git fast-export" has been updated for its use in the context of
-   the remote helper interface.
-
- * A new remote helper to interact with bzr has been added to contrib/.
-
- * "git p4" got various bugfixes around its branch handling.  It is
-   also made usable with Python 2.4/2.5.  In addition, its various
-   portability issues for Cygwin have been addressed.
-
- * The remote helper to interact with Hg in contrib/ has seen a few
-   fixes.
-
-
-Performance, Internal Implementation, etc.
-
- * "git fsck" has been taught to be pickier about entries in tree
-   objects that should not be there, e.g. ".", ".git", and "..".
-
- * Matching paths with common forms of pathspecs that contain wildcard
-   characters has been optimized further.
-
- * We stopped paying attention to $GIT_CONFIG environment that points
-   at a single configuration file from any command other than "git config"
-   quite a while ago, but "git clone" internally set, exported, and
-   then unexported the variable during its operation unnecessarily.
-
- * "git reset" internals has been reworked and should be faster in
-   general. We tried to be careful not to break any behaviour but
-   there could be corner cases, especially when running the command
-   from a conflicted state, that we may have missed.
-
- * The implementation of "imap-send" has been updated to reuse xml
-   quoting code from http-push codepath, and lost a lot of unused
-   code.
-
- * There is a simple-minded checker for the test scripts in t/
-   directory to catch most common mistakes (it is not enabled by
-   default).
-
- * You can build with USE_WILDMATCH=YesPlease to use a replacement
-   implementation of pattern matching logic used for pathname-like
-   things, e.g. refnames and paths in the repository.  This new
-   implementation is not expected change the existing behaviour of Git
-   in this release, except for "git for-each-ref" where you can now
-   say "refs/**/master" and match with both refs/heads/master and
-   refs/remotes/origin/master.  We plan to use this new implementation
-   in wider places (e.g. "git ls-files '**/Makefile' may find Makefile
-   at the top-level, and "git log '**/t*.sh'" may find commits that
-   touch a shell script whose name begins with "t" at any level) in
-   future versions of Git, but we are not there yet.  By building with
-   USE_WILDMATCH, using the resulting Git daily and reporting when you
-   find breakages, you can help us get closer to that goal.
-
- * Some reimplementations of Git do not write all the stat info back
-   to the index due to their implementation limitations (e.g. jgit).
-   A configuration option can tell Git to ignore changes to most of
-   the stat fields and only pay attention to mtime and size, which
-   these implementations can reliably update.  This can be used to
-   avoid excessive revalidation of contents.
-
- * Some platforms ship with old version of expat where xmlparse.h
-   needs to be included instead of expat.h; the build procedure has
-   been taught about this.
-
- * "make clean" on platforms that cannot compute header dependencies
-   on the fly did not work with implementations of "rm" that do not
-   like an empty argument list.
-
-Also contains minor documentation updates and code clean-ups.
-
-
-Fixes since v1.8.1
-------------------
-
-Unless otherwise noted, all the fixes since v1.8.1 in the maintenance
-track are contained in this release (see release notes to them for
-details).
-
- * An element on GIT_CEILING_DIRECTORIES list that does not name the
-   real path to a directory (i.e. a symbolic link) could have caused
-   the GIT_DIR discovery logic to escape the ceiling.
-
- * When attempting to read the XDG-style $HOME/.config/git/config and
-   finding that $HOME/.config/git is a file, we gave a wrong error
-   message, instead of treating the case as "a custom config file does
-   not exist there" and moving on.
-
- * The behaviour visible to the end users was confusing, when they
-   attempt to kill a process spawned in the editor that was in turn
-   launched by Git with SIGINT (or SIGQUIT), as Git would catch that
-   signal and die.  We ignore these signals now.
-   (merge 0398fc34 pf/editor-ignore-sigint later to maint).
-
- * A child process that was killed by a signal (e.g. SIGINT) was
-   reported in an inconsistent way depending on how the process was
-   spawned by us, with or without a shell in between.
-
- * After failing to create a temporary file using mkstemp(), failing
-   pathname was not reported correctly on some platforms.
-
- * We used to stuff "user@" and then append what we read from
-   /etc/mailname to come up with a default e-mail ident, but a bug
-   lost the "user@" part.
-
- * The attribute mechanism didn't allow limiting attributes to be
-   applied to only a single directory itself with "path/" like the
-   exclude mechanism does.  The initial implementation of this that
-   was merged to 'maint' and 1.8.1.2 was with a severe performance
-   degradations and needs to merge a fix-up topic.
-
- * The smart HTTP clients forgot to verify the content-type that comes
-   back from the server side to make sure that the request is being
-   handled properly.
-
- * "git am" did not parse datestamp correctly from Hg generated patch,
-   when it is run in a locale outside C (or en).
-
- * "git apply" misbehaved when fixing whitespace breakages by removing
-   excess trailing blank lines.
-
- * "git apply --summary" has been taught to make sure the similarity
-   value shown in its output is sensible, even when the input had a
-   bogus value.
-
- * A tar archive created by "git archive" recorded a directory in a
-   way that made NetBSD's implementation of "tar" sometimes unhappy.
-
- * "git archive" did not record uncompressed size in the header when
-   streaming a zip archive, which confused some implementations of unzip.
-
- * "git archive" did not parse configuration values in tar.* namespace
-   correctly.
-   (merge b3873c3 jk/config-parsing-cleanup later to maint).
-
- * Attempt to "branch --edit-description" an existing branch, while
-   being on a detached HEAD, errored out.
-
- * "git clean" showed what it was going to do, but sometimes end up
-   finding that it was not allowed to do so, which resulted in a
-   confusing output (e.g. after saying that it will remove an
-   untracked directory, it found an embedded git repository there
-   which it is not allowed to remove).  It now performs the actions
-   and then reports the outcome more faithfully.
-
- * When "git clone --separate-git-dir=$over_there" is interrupted, it
-   failed to remove the real location of the $GIT_DIR it created.
-   This was most visible when interrupting a submodule update.
-
- * "git cvsimport" mishandled timestamps at DST boundary.
-
- * We used to have an arbitrary 32 limit for combined diff input,
-   resulting in incorrect number of leading colons shown when showing
-   the "--raw --cc" output.
-
- * "git fetch --depth" was broken in at least three ways.  The
-   resulting history was deeper than specified by one commit, it was
-   unclear how to wipe the shallowness of the repository with the
-   command, and documentation was misleading.
-   (merge cfb70e1 nd/fetch-depth-is-broken later to maint).
-
- * "git log --all -p" that walked refs/notes/textconv/ ref can later
-   try to use the textconv data incorrectly after it gets freed.
-
- * We forgot to close the file descriptor reading from "gpg" output,
-   killing "git log --show-signature" on a long history.
-
- * The way "git svn" asked for password using SSH_ASKPASS and
-   GIT_ASKPASS was not in line with the rest of the system.
-
- * The --graph code fell into infinite loop when asked to do what the
-   code did not expect.
-
- * http transport was wrong to ask for the username when the
-   authentication is done by certificate identity.
-
- * "git pack-refs" that ran in parallel to another process that
-   created new refs had a nasty race.
-
- * Rebasing the history of superproject with change in the submodule
-   has been broken since v1.7.12.
-
- * After "git add -N" and then writing a tree object out of the
-   index, the cache-tree data structure got corrupted.
-
- * "git clone" used to allow --bare and --separate-git-dir=$there
-   options at the same time, which was nonsensical.
-
- * "git rebase --preserve-merges" lost empty merges in recent versions
-   of Git.
-
- * "git merge --no-edit" computed who were involved in the work done
-   on the side branch, even though that information is to be discarded
-   without getting seen in the editor.
-
- * "git merge" started calling prepare-commit-msg hook like "git
-   commit" does some time ago, but forgot to pay attention to the exit
-   status of the hook.
-
- * A failure to push due to non-ff while on an unborn branch
-   dereferenced a NULL pointer when showing an error message.
-
- * When users spell "cc:" in lowercase in the fake "header" in the
-   trailer part, "git send-email" failed to pick up the addresses from
-   there. As e-mail headers field names are case insensitive, this
-   script should follow suit and treat "cc:" and "Cc:" the same way.
-
- * Output from "git status --ignored" showed an unexpected interaction
-   with "--untracked".
-
- * "gitweb", when sorting by age to show repositories with new
-   activities first, used to sort repositories with absolutely
-   nothing in it early, which was not very useful.
-
- * "gitweb"'s code to sanitize control characters before passing it to
-   "highlight" filter lost known-to-be-safe control characters by
-   mistake.
-
- * "gitweb" pages served over HTTPS, when configured to show picon or
-   gravatar, referred to these external resources to be fetched via
-   HTTP, resulting in mixed contents warning in browsers.
-
- * When a line to be wrapped has a solid run of non space characters
-   whose length exactly is the wrap width, "git shortlog -w" failed
-   to add a newline after such a line.
-
- * Command line completion leaked an unnecessary error message while
-   looking for possible matches with paths in <tree-ish>.
-
- * Command line completion for "tcsh" emitted an unwanted space
-   after completing a single directory name.
-
- * Command line completion code was inadvertently made incompatible with
-   older versions of bash by using a newer array notation.
-
- * "git push" was taught to refuse updating the branch that is
-   currently checked out long time ago, but the user manual was left
-   stale.
-   (merge 50995ed wk/man-deny-current-branch-is-default-these-days later to maint).
-
- * Some shells do not behave correctly when IFS is unset; work it
-   around by explicitly setting it to the default value.
-
- * Some scripted programs written in Python did not get updated when
-   PYTHON_PATH changed.
-   (cherry-pick 96a4647fca54031974cd6ad1 later to maint).
-
- * When autoconf is used, any build on a different commit always ran
-   "config.status --recheck" even when unnecessary.
-
- * A fix was added to the build procedure to work around buggy
-   versions of ccache broke the auto-generation of dependencies, which
-   unfortunately is still relevant because some people use ancient
-   distros.
-
- * The autoconf subsystem passed --mandir down to generated
-   config.mak.autogen but forgot to do the same for --htmldir.
-   (merge 55d9bf0 ct/autoconf-htmldir later to maint).
-
- * A change made on v1.8.1.x maintenance track had a nasty regression
-   to break the build when autoconf is used.
-   (merge 7f1b697 jn/less-reconfigure later to maint).
-
- * We have been carrying a translated and long-unmaintained copy of an
-   old version of the tutorial; removed.
-
- * t0050 had tests expecting failures from a bug that was fixed some
-   time ago.
-
- * t4014, t9502 and t0200 tests had various portability issues that
-   broke on OpenBSD.
-
- * t9020 and t3600 tests had various portability issues.
-
- * t9200 runs "cvs init" on a directory that already exists, but a
-   platform can configure this fail for the current user (e.g. you
-   need to be in the cvsadmin group on NetBSD 6.0).
-
- * t9020 and t9810 had a few non-portable shell script construct.
-
- * Scripts to test bash completion was inherently flaky as it was
-   affected by whatever random things the user may have on $PATH.
-
- * An element on GIT_CEILING_DIRECTORIES could be a "logical" pathname
-   that uses a symbolic link to point at somewhere else (e.g. /home/me
-   that points at /net/host/export/home/me, and the latter directory
-   is automounted). Earlier when Git saw such a pathname e.g. /home/me
-   on this environment variable, the "ceiling" mechanism did not take
-   effect. With this release (the fix has also been merged to the
-   v1.8.1.x maintenance series), elements on GIT_CEILING_DIRECTORIES
-   are by default checked for such aliasing coming from symbolic
-   links. As this needs to actually resolve symbolic links for each
-   element on the GIT_CEILING_DIRECTORIES, you can disable this
-   mechanism for some elements by listing them after an empty element
-   on the GIT_CEILING_DIRECTORIES. e.g. Setting /home/me::/home/him to
-   GIT_CEILING_DIRECTORIES makes Git resolve symbolic links in
-   /home/me when checking if the current directory is under /home/me,
-   but does not do so for /home/him.
-   (merge 7ec30aa mh/maint-ceil-absolute later to maint).
diff --git a/third_party/git/Documentation/RelNotes/1.8.3.1.txt b/third_party/git/Documentation/RelNotes/1.8.3.1.txt
deleted file mode 100644
index 986637b7551f..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.3.1.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Git v1.8.3.1 Release Notes
-==========================
-
-Fixes since v1.8.3
-------------------
-
- * When $HOME is misconfigured to point at an unreadable directory, we
-   used to complain and die. The check has been loosened.
-
- * Handling of negative exclude pattern for directories "!dir" was
-   broken in the update to v1.8.3.
-
-Also contains a handful of trivial code clean-ups, documentation
-updates, updates to the test suite, etc.
diff --git a/third_party/git/Documentation/RelNotes/1.8.3.2.txt b/third_party/git/Documentation/RelNotes/1.8.3.2.txt
deleted file mode 100644
index 26ae142c3d90..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.3.2.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-Git v1.8.3.2 Release Notes
-==========================
-
-Fixes since v1.8.3.1
---------------------
-
- * Cloning with "git clone --depth N" while fetch.fsckobjects (or
-   transfer.fsckobjects) is set to true did not tell the cut-off
-   points of the shallow history to the process that validates the
-   objects and the history received, causing the validation to fail.
-
- * "git checkout foo" DWIMs the intended "upstream" and turns it into
-   "git checkout -t -b foo remotes/origin/foo". This codepath has been
-   updated to correctly take existing remote definitions into account.
-
- * "git fetch" into a shallow repository from a repository that does
-   not know about the shallow boundary commits (e.g. a different fork
-   from the repository the current shallow repository was cloned from)
-   did not work correctly.
-
- * "git subtree" (in contrib/) had one codepath with loose error
-   checks to lose data at the remote side.
-
- * "git log --ancestry-path A...B" did not work as expected, as it did
-   not pay attention to the fact that the merge base between A and B
-   was the bottom of the range being specified.
-
- * "git diff -c -p" was not showing a deleted line from a hunk when
-   another hunk immediately begins where the earlier one ends.
-
- * "git merge @{-1}~22" was rewritten to "git merge frotz@{1}~22"
-   incorrectly when your previous branch was "frotz" (it should be
-   rewritten to "git merge frotz~22" instead).
-
- * "git commit --allow-empty-message -m ''" should not start an
-   editor.
-
- * "git push --[no-]verify" was not documented.
-
- * An entry for "file://" scheme in the enumeration of URL types Git
-   can take in the HTML documentation was made into a clickable link
-   by mistake.
-
- * zsh prompt script that borrowed from bash prompt script did not
-   work due to slight differences in array variable notation between
-   these two shells.
-
- * The bash prompt code (in contrib/) displayed the name of the branch
-   being rebased when "rebase -i/-m/-p" modes are in use, but not the
-   plain vanilla "rebase".
-
- * "git push $there HEAD:branch" did not resolve HEAD early enough, so
-   it was easy to flip it around while push is still going on and push
-   out a branch that the user did not originally intended when the
-   command was started.
-
- * "difftool --dir-diff" did not copy back changes made by the
-   end-user in the diff tool backend to the working tree in some
-   cases.
diff --git a/third_party/git/Documentation/RelNotes/1.8.3.3.txt b/third_party/git/Documentation/RelNotes/1.8.3.3.txt
deleted file mode 100644
index 9ba4f4da0f4f..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.3.3.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-Git v1.8.3.3 Release Notes
-==========================
-
-Fixes since v1.8.3.2
---------------------
-
- * "git apply" parsed patches that add new files, generated by programs
-   other than Git, incorrectly.  This is an old breakage in v1.7.11.
-
- * Older cURL wanted piece of memory we call it with to be stable, but
-   we updated the auth material after handing it to a call.
-
- * "git pull" into nothing trashed "local changes" that were in the
-   index.
-
- * Many "git submodule" operations did not work on a submodule at a
-   path whose name is not in ASCII.
-
- * "cherry-pick" had a small leak in its error codepath.
-
- * Logic used by git-send-email to suppress cc mishandled names like
-   "A U. Thor" <author@example.xz>, where the human readable part
-   needs to be quoted (the user input may not have the double quotes
-   around the name, and comparison was done between quoted and
-   unquoted strings).  It also mishandled names that need RFC2047
-   quoting.
-
- * "gitweb" forgot to clear a global variable $search_regexp upon each
-   request, mistakenly carrying over the previous search to a new one
-   when used as a persistent CGI.
-
- * The wildmatch engine did not honor WM_CASEFOLD option correctly.
-
- * "git log -c --follow $path" segfaulted upon hitting the commit that
-   renamed the $path being followed.
-
- * When a reflog notation is used for implicit "current branch",
-   e.g. "git log @{u}", we did not say which branch and worse said
-   "branch ''" in the error messages.
-
- * Mac OS X does not like to write(2) more than INT_MAX number of
-   bytes; work it around by chopping write(2) into smaller pieces.
-
- * Newer MacOS X encourages the programs to compile and link with
-   their CommonCrypto, not with OpenSSL.
-
-Also contains various minor documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/1.8.3.4.txt b/third_party/git/Documentation/RelNotes/1.8.3.4.txt
deleted file mode 100644
index 56f106e2623b..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.3.4.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Git v1.8.3.4 Release Notes
-==========================
-
-This update is mostly to propagate documentation fixes and test
-updates from the master front back to the maintenance track.
-
-Fixes since v1.8.3.3
---------------------
-
- * The bisect log listed incorrect commits when bisection ends with
-   only skipped ones.
-
- * The test coverage framework was left broken for some time.
-
- * The test suite for HTTP transport did not run with Apache 2.4.
-
- * "git diff" used to fail when core.safecrlf is set and the working
-   tree contents had mixed CRLF/LF line endings. Committing such a
-   content must be prohibited, but "git diff" should help the user to
-   locate and fix such problems without failing.
diff --git a/third_party/git/Documentation/RelNotes/1.8.3.txt b/third_party/git/Documentation/RelNotes/1.8.3.txt
deleted file mode 100644
index ead568e7f157..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.3.txt
+++ /dev/null
@@ -1,436 +0,0 @@
-Git v1.8.3 Release Notes
-========================
-
-Backward compatibility notes (for Git 2.0)
-------------------------------------------
-
-When "git push [$there]" does not say what to push, we have used the
-traditional "matching" semantics so far (all your branches were sent
-to the remote as long as there already are branches of the same name
-over there).  In Git 2.0, the default will change to the "simple"
-semantics that pushes only the current branch to the branch with the same
-name, and only when the current branch is set to integrate with that
-remote branch.  Use the user preference configuration variable
-"push.default" to change this.  If you are an old-timer who is used
-to the "matching" semantics, you can set the variable to "matching"
-to keep the traditional behaviour.  If you want to live in the future
-early, you can set it to "simple" today without waiting for Git 2.0.
-
-When "git add -u" (and "git add -A") is run inside a subdirectory and
-does not specify which paths to add on the command line, it
-will operate on the entire tree in Git 2.0 for consistency
-with "git commit -a" and other commands.  There will be no
-mechanism to make plain "git add -u" behave like "git add -u .".
-Current users of "git add -u" (without a pathspec) should start
-training their fingers to explicitly say "git add -u ."
-before Git 2.0 comes.  A warning is issued when these commands are
-run without a pathspec and when you have local changes outside the
-current directory, because the behaviour in Git 2.0 will be different
-from today's version in such a situation.
-
-In Git 2.0, "git add <path>" will behave as "git add -A <path>", so
-that "git add dir/" will notice paths you removed from the directory
-and record the removal.  Versions before Git 2.0, including this
-release, will keep ignoring removals, but the users who rely on this
-behaviour are encouraged to start using "git add --ignore-removal <path>"
-now before 2.0 is released.
-
-
-Updates since v1.8.2
---------------------
-
-Foreign interface
-
- * remote-hg and remote-bzr helpers (in contrib/ since v1.8.2) have
-   been updated; especially, the latter has been done in an
-   accelerated schedule (read: we may not have merged to this release
-   if we were following the usual "cook sufficiently in next before
-   unleashing it to the world" workflow) in order to help Emacs folks,
-   whose primary SCM seems to be stagnating.
-
-
-UI, Workflows & Features
-
- * A handful of updates applied to gitk, including an addition of
-   "revert" action, showing dates in tags in a nicer way, making
-   colors configurable, and support for -G'pickaxe' search.
-
- * The prompt string generator (in contrib/completion/) learned to
-   show how many changes there are in total and how many have been
-   replayed during a "git rebase" session.
-
- * "git branch --vv" learned to paint the name of the branch it
-   integrates with in a different color (color.branch.upstream,
-   which defaults to blue).
-
- * In a sparsely populated working tree, "git checkout <pathspec>" no
-   longer unmarks paths that match the given pathspec that were
-   originally ignored with "--sparse" (use --ignore-skip-worktree-bits
-   option to resurrect these paths out of the index if you really want
-   to).
-
- * "git log --format" specifier learned %C(auto) token that tells Git
-   to use color when interpolating %d (decoration), %h (short commit
-   object name), etc. for terminal output.
-
- * "git bisect" leaves the final outcome as a comment in its bisect
-   log file.
-
- * "git clone --reference" can now refer to a gitfile "textual symlink"
-   that points at the real location of the repository.
-
- * "git count-objects" learned "--human-readable" aka "-H" option to
-   show various large numbers in Ki/Mi/GiB scaled as necessary.
-
- * "git cherry-pick $blob" and "git cherry-pick $tree" are nonsense,
-   and a more readable error message e.g. "can't cherry-pick a tree"
-   is given (we used to say "expected exactly one commit").
-
- * The "--annotate" option to "git send-email" can be turned on (or
-   off) by default with sendemail.annotate configuration variable (you
-   can use --no-annotate from the command line to override it).
-
- * The "--cover-letter" option to "git format-patch" can be turned on
-   (or off) by default with format.coverLetter configuration
-   variable. By setting it to 'auto', you can turn it on only for a
-   series with two or more patches.
-
- * The bash completion support (in contrib/) learned that cherry-pick
-   takes a few more options than it already knew about.
-
- * "git help" learned "-g" option to show the list of guides just like
-   list of commands are given with "-a".
-
- * A triangular "pull from one place, push to another place" workflow
-   is supported better by new remote.pushdefault (overrides the
-   "origin" thing) and branch.*.pushremote (overrides the
-   branch.*.remote) configuration variables.
-
- * "git status" learned to report that you are in the middle of a
-   revert session, just like it does for a cherry-pick and a bisect
-   session.
-
- * The handling by "git branch --set-upstream-to" against various forms
-   of erroneous inputs was suboptimal and has been improved.
-
- * When the interactive access to git-shell is not enabled, it issues
-   a message meant to help the system administrator to enable it.  An
-   explicit way has been added to issue custom messages to refuse an
-   access over the network to help the end users who connect to the
-   service expecting an interactive shell.
-
- * In addition to the case where the user edits the log message with
-   the "e)dit" option of "am -i", replace the "Applying: this patch"
-   message with the final log message contents after applymsg hook
-   munges it.
-
- * "git status" suggests users to look into using --untracked=no option
-   when it takes too long.
-
- * "git status" shows a bit more information during a rebase/bisect
-   session.
-
- * "git fetch" learned to fetch a commit at the tip of an unadvertised
-   ref by specifying a raw object name from the command line when the
-   server side supports this feature.
-
- * Output from "git log --graph" works better with submodule log
-   output now.
-
- * "git count-objects -v" learned to report leftover temporary
-   packfiles and other garbage in the object store.
-
- * A new read-only credential helper (in contrib/) to interact with
-   the .netrc/.authinfo files has been added.
-
- * "git send-email" can be used with the credential helper system.
-
- * There was no Porcelain way to say "I no longer am interested in
-   this submodule", once you express your interest in a submodule with
-   "submodule init".  "submodule deinit" is the way to do so.
-
- * "git pull --rebase" learned to pass "-v/-q" options to underlying
-   "git rebase".
-
- * The new "--follow-tags" option tells "git push" to push relevant
-   annotated tags when pushing branches out.
-
- * "git merge" and "git pull" can optionally be told to inspect and
-   reject when merging a commit that does not carry a trusted GPG
-   signature.
-
- * "git mergetool" now feeds files to the "p4merge" backend in the
-   order that matches the p4 convention, where "theirs" is usually
-   shown on the left side, which is the opposite from what other backends
-   expect.
-
- * "show/log" now honors gpg.program configuration just like other
-   parts of the code that use GnuPG.
-
- * "git log" that shows the difference between the parent and the
-   child has been optimized somewhat.
-
- * "git difftool" allows the user to write into the temporary files
-   being shown; if the user makes changes to the working tree at the
-   same time, it now refrains from overwriting the copy in the working
-   tree and leaves the temporary file so that changes can be merged
-   manually.
-
- * There was no good way to ask "I have a random string that came from
-   outside world. I want to turn it into a 40-hex object name while
-   making sure such an object exists".  A new peeling suffix ^{object}
-   can be used for that purpose, together with "rev-parse --verify".
-
-
-Performance, Internal Implementation, etc.
-
- * Updates for building under msvc.
-
- * A handful of issues in the code that traverses the working tree to find
-   untracked and/or ignored files have been fixed, and the general
-   codepath involved in "status -u" and "clean" have been cleaned up
-   and optimized.
-
- * The stack footprint of some codepaths that access an object from a
-   pack has been shrunk.
-
- * The logic to coalesce the same lines removed from the parents in
-   the output from "diff -c/--cc" has been updated, but with O(n^2)
-   complexity, so this might turn out to be undesirable.
-
- * The code to enforce permission bits on files in $GIT_DIR/ for
-   shared repositories has been simplified.
-
- * A few codepaths know how much data they need to put in the
-   hashtables they use when they start, but still began with small tables
-   and repeatedly grew and rehashed them.
-
- * The API to walk reflog entries from the latest to older, which was
-   necessary for operations such as "git checkout -", was cumbersome
-   to use correctly and also inefficient.
-
- * Codepaths that inspect log-message-to-be and decide when to add a
-   new Signed-off-by line in various commands have been consolidated.
-
- * The pkt-line API, implementation and its callers have been cleaned
-   up to make them more robust.
-
- * The Cygwin port has a faster-but-lying lstat(2) emulation whose
-   incorrectness does not matter in practice except for a few
-   codepaths, and setting permission bits on directories is a codepath
-   that needs to use a more correct one.
-
- * "git checkout" had repeated pathspec matches on the same paths,
-   which have been consolidated.  Also a bug in "git checkout dir/"
-   that is started from an unmerged index has been fixed.
-
- * A few bugfixes to "git rerere" working on corner case merge
-   conflicts have been applied.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v1.8.2
-------------------
-
-Unless otherwise noted, all the fixes since v1.8.2 in the maintenance
-track are contained in this release (see release notes to them for
-details).
-
- * Recent versions of File::Temp (used by "git svn") started blowing
-   up when its tempfile sub is called as a class method; updated the
-   callsite to call it as a plain vanilla function to fix it.
-   (merge eafc2dd hb/git-pm-tempfile later to maint).
-
- * Various subcommands of "git remote" simply ignored extraneous
-   command line arguments instead of diagnosing them as errors.
-
- * When receive-pack detects an error in the pack header it received in
-   order to decide which of unpack-objects or index-pack to run, it
-   returned without closing the error stream, which led to a hung
-   sideband thread.
-
- * Zsh completion forgot that the '%' character used to signal untracked
-   files needs to be escaped with another '%'.
-
- * A commit object whose author or committer ident are malformed
-   crashed some code that trusted that a name, an email and a
-   timestamp can always be found in it.
-
- * When "upload-pack" fails while generating a pack in response to
-   "git fetch" (or "git clone"), the receiving side had
-   a programming error that triggered the die handler
-   recursively.
-
- * "rev-list --stdin" and friends kept bogus pointers into the input
-   buffer around as human readable object names.  This was not a huge
-   problem but was exposed by a new change that uses these names in
-   error output.
-
- * Smart-capable HTTP servers were not restricted via the
-   GIT_NAMESPACE mechanism when talking with commit-walking clients,
-   like they are when talking with smart HTTP clients.
-   (merge 6130f86 jk/http-dumb-namespaces later to maint).
-
- * "git merge-tree" did not omit a merge result that is identical to
-   the "our" side in certain cases.
-   (merge aacecc3 jk/merge-tree-added-identically later to maint).
-
- * Perl scripts like "git-svn" closed (instead of redirecting to /dev/null)
-   the standard error stream, which is not a very smart thing to do.
-   A later open may return file descriptor #2 for an unrelated purpose, and
-   error reporting code may write into it.
-
- * "git show-branch" was not prepared to show a very long run of
-   ancestor operators e.g. foobar^2~2^2^2^2...^2~4 correctly.
-
- * "git diff --diff-algorithm algo" is also understood as "git diff
-   --diff-algorithm=algo".
-
- * The new core.commentchar configuration was not applied in a few
-   places.
-
- * "git bundle" erroneously bailed out when parsing a valid bundle
-   containing a prerequisite commit without a commit message.
-
- * "git log -S/-G" started paying attention to textconv filter, but
-   there was no way to disable this.  Make it honor the --no-textconv
-   option.
-
- * When used with the "-d temporary-directory" option, "git filter-branch"
-   failed to come back to the original working tree to perform the
-   final clean-up procedure.
-
- * "git merge $(git rev-parse v1.8.2)" behaved quite differently from
-   "git merge v1.8.2", as if v1.8.2 were written as v1.8.2^0 and did
-   not pay much attention to the annotated tag payload.  Make the code
-   notice the type of the tag object, in addition to the dwim_ref()
-   based classification the current code uses (i.e. the name appears
-   in refs/tags/) to decide when to special-case tag merging.
-
- * Fix a 1.8.1.x regression that stopped matching "dir" (without a
-   trailing slash) to a directory "dir".
-
- * "git apply --whitespace=fix" was not prepared to see a line getting
-   longer after fixing whitespaces (e.g. tab-in-indent aka Python).
-
- * The prompt string generator (in contrib/completion/) did not notice
-   when we are in a middle of a "git revert" session.
-
- * "submodule summary --summary-limit" option did not support the
-   "--option=value" form.
-
- * "index-pack --fix-thin" used an uninitialized value to compute
-   the delta depths of objects it appends to the resulting pack.
-
- * "index-pack --verify-stat" used a few counters outside the protection
-   of a mutex, possibly showing incorrect numbers.
-
- * The code to keep track of what directory names are known to Git on
-   platforms with case insensitive filesystems could get confused upon a
-   hash collision between these pathnames and would loop forever.
-
- * Annotated tags outside the refs/tags/ hierarchy were not advertised
-   correctly to ls-remote and fetch with recent versions of Git.
-
- * Recent optimizations broke shallow clones.
-
- * "git cmd -- ':(top'" was not diagnosed as an invalid syntax, and
-   instead the parser kept reading beyond the end of the string.
-
- * "git tag -f <tag>" always said "Updated tag '<tag>'" even when
-   creating a new tag (i.e. neither overwriting nor updating).
-
- * "git p4" did not behave well when the path to the root of the P4
-   client was not its real path.
-   (merge bbd8486 pw/p4-symlinked-root later to maint).
-
- * "git archive" reported a failure when asked to create an archive out
-   of an empty tree.  It is more intuitive to give an empty
-   archive back in such a case.
-
- * When "format-patch" quoted a non-ascii string in header files,
-   it incorrectly applied rfc2047 and chopped a single character in
-   the middle of the string.
-
- * An aliased command spawned from a bare repository that does not say
-   it is bare with "core.bare = yes" was treated as non-bare by mistake.
-
- * In "git reflog expire", the REACHABLE bit was not cleared from the
-   correct objects.
-
- * The logic used by "git diff -M --stat" to shorten the names of
-   files before and after a rename did not work correctly when the
-   common prefix and suffix between the two filenames overlapped.
-
- * The "--match=<pattern>" option of "git describe", when used with
-   "--all" to allow refs that are not annotated tags to be a
-   base of description, did not restrict the output from the command
-   to those refs that match the given pattern.
-
- * Clarify in the documentation "what" gets pushed to "where" when the
-   command line to "git push" does not say these explicitly.
-
- * The "--color=<when>" argument to the commands in the diff family
-   was described poorly.
-
- * The arguments given to the pre-rebase hook were not documented.
-
- * The v4 index format was not documented.
-
- * The "--match=<pattern>" argument "git describe" takes uses glob
-   pattern but it wasn't obvious from the documentation.
-
- * Some sources failed to compile on systems that lack NI_MAXHOST in
-   their system header (e.g. z/OS).
-
- * Add an example use of "--env-filter" in "filter-branch"
-   documentation.
-
- * "git bundle verify" did not say "records a complete history" for a
-   bundle that does not have any prerequisites.
-
- * In the v1.8.0 era, we changed symbols that do not have to be global
-   to file scope static, but a few functions in graph.c were used by
-   CGit sideways, bypassing the entry points of the API the
-   in-tree users use.
-
- * "git update-index -h" did not do the usual "-h(elp)" thing.
-
- * "git index-pack" had a buffer-overflow while preparing an
-   informational message when the translated version of it was too
-   long.
-
- * 'git commit -m "$msg"' used to add an extra newline even when
-   $msg already ended with one.
-
- * The SSL peer verification done by "git imap-send" did not ask for
-   Server Name Indication (RFC 4366), failing to connect to SSL/TLS
-   sites that serve multiple hostnames on a single IP.
-
- * perl/Git.pm::cat_blob slurped everything in core only to write it
-   out to a file descriptor, which was not a very smart thing to do.
-
- * "git branch" did not bother to check nonsense command line
-   parameters.  It now issues errors in many cases.
-
- * Verification of signed tags was not done correctly when not in C
-   or en/US locale.
-
- * Some platforms and users spell UTF-8 differently; retry with the
-   most official "UTF-8" when the system does not understand the
-   user-supplied encoding name that is a common alternative
-   spelling of UTF-8.
-
- * When export-subst is used, "zip" output recorded an incorrect
-   size of the file.
-
- * "git am $maildir/" applied messages in an unexpected order; sort
-   filenames read from the maildir/ in a way that is more likely to
-   sort the messages in the order the writing MUA meant to, by sorting
-   numeric segments in numeric order and non-numeric segments in
-   alphabetical order.
-
- * "git submodule update", when recursed into sub-submodules, did not
-   accumulate the prefix paths.
diff --git a/third_party/git/Documentation/RelNotes/1.8.4.1.txt b/third_party/git/Documentation/RelNotes/1.8.4.1.txt
deleted file mode 100644
index c257beb114c9..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.4.1.txt
+++ /dev/null
@@ -1,71 +0,0 @@
-Git v1.8.4.1 Release Notes
-==========================
-
-Fixes since v1.8.4
-------------------
-
- * Some old versions of bash do not grok some constructs like
-   'printf -v varname' which the prompt and completion code started
-   to use recently.  The completion and prompt scripts have been
-   adjusted to work better with these old versions of bash.
-
- * In FreeBSD's and NetBSD's "sh", a return in a dot script in a
-   function returns from the function, not only in the dot script,
-   breaking "git rebase" on these platforms (regression introduced
-   in 1.8.4-rc1).
-
- * "git rebase -i" and other scripted commands were feeding a
-   random, data dependent error message to 'echo' and expecting it
-   to come out literally.
-
- * Setting the "submodule.<name>.path" variable to the empty
-   "true" caused the configuration parser to segfault.
-
- * Output from "git log --full-diff -- <pathspec>" looked strange
-   because comparison was done with the previous ancestor that
-   touched the specified <pathspec>, causing the patches for paths
-   outside the pathspec to show more than the single commit has
-   changed.
-
- * The auto-tag-following code in "git fetch" tries to reuse the
-   same transport twice when the serving end does not cooperate and
-   does not give tags that point to commits that are asked for as
-   part of the primary transfer.  Unfortunately, Git-aware transport
-   helper interface is not designed to be used more than once, hence
-   this did not work over smart-http transfer.  Fixed.
-
- * Send a large request to read(2)/write(2) as a smaller but still
-   reasonably large chunks, which would improve the latency when the
-   operation needs to be killed and incidentally works around broken
-   64-bit systems that cannot take a 2GB write or read in one go.
-
- * A ".mailmap" file that ends with an incomplete line, when read
-   from a blob, was not handled properly.
-
- * The recent "short-cut clone connectivity check" topic broke a
-   shallow repository when a fetch operation tries to auto-follow
-   tags.
-
- * When send-email comes up with an error message to die with upon
-   failure to start an SSL session, it tried to read the error
-   string from a wrong place.
-
- * A call to xread() was used without a loop to cope with short
-   read in the codepath to stream large blobs to a pack.
-
- * On platforms with fgetc() and friends defined as macros, the
-   configuration parser did not compile.
-
- * New versions of MediaWiki introduced a new API for returning
-   more than 500 results in response to a query, which would cause
-   the MediaWiki remote helper to go into an infinite loop.
-
- * Subversion's serf access method (the only one available in
-   Subversion 1.8) for http and https URLs in skelta mode tells its
-   caller to open multiple files at a time, which made "git svn
-   fetch" complain that "Temp file with moniker 'svn_delta' already
-   in use" instead of fetching.
-
-
-Also contains a handful of trivial code clean-ups, documentation
-updates, updates to the test suite, etc.
diff --git a/third_party/git/Documentation/RelNotes/1.8.4.2.txt b/third_party/git/Documentation/RelNotes/1.8.4.2.txt
deleted file mode 100644
index bf6fb1a02369..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.4.2.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-Git v1.8.4.2 Release Notes
-==========================
-
-Fixes since v1.8.4.1
---------------------
-
- * "git clone" gave some progress messages to the standard output, not
-   to the standard error, and did not allow suppressing them with the
-   "--no-progress" option.
-
- * "format-patch --from=<whom>" forgot to omit unnecessary in-body
-   from line, i.e. when <whom> is the same as the real author.
-
- * "git shortlog" used to choke and die when there is a malformed
-   commit (e.g. missing authors); it now simply ignore such a commit
-   and keeps going.
-
- * "git merge-recursive" did not parse its "--diff-algorithm=" command
-   line option correctly.
-
- * "git branch --track" had a minor regression in v1.8.3.2 and later
-   that made it impossible to base your local work on anything but a
-   local branch of the upstream repository you are tracking from.
-
- * "git ls-files -k" needs to crawl only the part of the working tree
-   that may overlap the paths in the index to find killed files, but
-   shared code with the logic to find all the untracked files, which
-   made it unnecessarily inefficient.
-
- * When there is no sufficient overlap between old and new history
-   during a "git fetch" into a shallow repository, objects that the
-   sending side knows the receiving end has were unnecessarily sent.
-
- * When running "fetch -q", a long silence while the sender side
-   computes the set of objects to send can be mistaken by proxies as
-   dropped connection.  The server side has been taught to send a
-   small empty messages to keep the connection alive.
-
- * When the webserver responds with "405 Method Not Allowed", "git
-   http-backend" should tell the client what methods are allowed with
-   the "Allow" header.
-
- * "git cvsserver" computed the permission mode bits incorrectly for
-   executable files.
-
- * The implementation of "add -i" has a crippling code to work around
-   ActiveState Perl limitation but it by mistake also triggered on Git
-   for Windows where MSYS perl is used.
-
- * We made sure that we notice the user-supplied GIT_DIR is actually a
-   gitfile, but did not do the same when the default ".git" is a
-   gitfile.
-
- * When an object is not found after checking the packfiles and then
-   loose object directory, read_sha1_file() re-checks the packfiles to
-   prevent racing with a concurrent repacker; teach the same logic to
-   has_sha1_file().
-
- * "git commit --author=$name", when $name is not in the canonical
-   "A. U. Thor <au.thor@example.xz>" format, looks for a matching name
-   from existing history, but did not consult mailmap to grab the
-   preferred author name.
-
- * The commit object names in the insn sheet that was prepared at the
-   beginning of "rebase -i" session can become ambiguous as the
-   rebasing progresses and the repository gains more commits. Make
-   sure the internal record is kept with full 40-hex object names.
-
- * "git rebase --preserve-merges" internally used the merge machinery
-   and as a side effect, left merge summary message in the log, but
-   when rebasing, there should not be a need for merge summary.
-
- * "git rebase -i" forgot that the comment character can be
-   configurable while reading its insn sheet.
-
-Also contains a handful of trivial code clean-ups, documentation
-updates, updates to the test suite, etc.
diff --git a/third_party/git/Documentation/RelNotes/1.8.4.3.txt b/third_party/git/Documentation/RelNotes/1.8.4.3.txt
deleted file mode 100644
index 267a1b34b4d8..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.4.3.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-Git v1.8.4.3 Release Notes
-==========================
-
-Fixes since v1.8.4.2
---------------------
-
- * The interaction between use of Perl in our test suite and NO_PERL
-   has been clarified a bit.
-
- * A fast-import stream expresses a pathname with funny characters by
-   quoting them in C style; remote-hg remote helper (in contrib/)
-   forgot to unquote such a path.
-
- * One long-standing flaw in the pack transfer protocol used by "git
-   clone" was that there was no way to tell the other end which branch
-   "HEAD" points at, and the receiving end needed to guess.  A new
-   capability has been defined in the pack protocol to convey this
-   information so that cloning from a repository with more than one
-   branches pointing at the same commit where the HEAD is at now
-   reliably sets the initial branch in the resulting repository.
-
- * We did not handle cases where http transport gets redirected during
-   the authorization request (e.g. from http:// to https://).
-
- * "git rev-list --objects ^v1.0^ v1.0" gave v1.0 tag itself in the
-   output, but "git rev-list --objects v1.0^..v1.0" did not.
-
- * The fall-back parsing of commit objects with broken author or
-   committer lines were less robust than ideal in picking up the
-   timestamps.
-
- * Bash prompting code to deal with an SVN remote as an upstream
-   were coded in a way not supported by older Bash versions (3.x).
-
- * "git checkout topic", when there is not yet a local "topic" branch
-   but there is a unique remote-tracking branch for a remote "topic"
-   branch, pretended as if "git checkout -t -b topic remote/$r/topic"
-   (for that unique remote $r) was run. This hack however was not
-   implemented for "git checkout topic --".
-
- * Coloring around octopus merges in "log --graph" output was screwy.
-
- * We did not generate HTML version of documentation to "git subtree"
-   in contrib/.
-
- * The synopsis section of "git unpack-objects" documentation has been
-   clarified a bit.
-
- * An ancient How-To on serving Git repositories on an HTTP server
-   lacked a warning that it has been mostly superseded with more
-   modern way.
-
-Also contains a handful of trivial code clean-ups, documentation
-updates, updates to the test suite, etc.
diff --git a/third_party/git/Documentation/RelNotes/1.8.4.4.txt b/third_party/git/Documentation/RelNotes/1.8.4.4.txt
deleted file mode 100644
index a7c1ce15c061..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.4.4.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Git v1.8.4.4 Release Notes
-==========================
-
-Fixes since v1.8.4.3
---------------------
-
- * The fix in v1.8.4.3 to the pack transfer protocol to propagate
-   the target of symbolic refs broke "git clone/git fetch" from a
-   repository with too many symbolic refs. As a hotfix/workaround,
-   we transfer only the information on HEAD.
diff --git a/third_party/git/Documentation/RelNotes/1.8.4.5.txt b/third_party/git/Documentation/RelNotes/1.8.4.5.txt
deleted file mode 100644
index 215bd1a7a27a..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.4.5.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Git v1.8.4.5 Release Notes
-==========================
-
-Fixes since v1.8.4.4
---------------------
-
- * Recent update to remote-hg that attempted to make it work better
-   with non ASCII pathnames fed Unicode strings to the underlying Hg
-   API, which was wrong.
-
- * "git submodule init" copied "submodule.$name.update" settings from
-   .gitmodules to .git/config without making sure if the suggested
-   value was sensible.
diff --git a/third_party/git/Documentation/RelNotes/1.8.4.txt b/third_party/git/Documentation/RelNotes/1.8.4.txt
deleted file mode 100644
index 255e185af6fc..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.4.txt
+++ /dev/null
@@ -1,486 +0,0 @@
-Git v1.8.4 Release Notes
-========================
-
-Backward compatibility notes (for Git 2.0)
-------------------------------------------
-
-When "git push [$there]" does not say what to push, we have used the
-traditional "matching" semantics so far (all your branches were sent
-to the remote as long as there already are branches of the same name
-over there).  In Git 2.0, the default will change to the "simple"
-semantics that pushes:
-
- - only the current branch to the branch with the same name, and only
-   when the current branch is set to integrate with that remote
-   branch, if you are pushing to the same remote as you fetch from; or
-
- - only the current branch to the branch with the same name, if you
-   are pushing to a remote that is not where you usually fetch from.
-
-Use the user preference configuration variable "push.default" to
-change this.  If you are an old-timer who is used to the "matching"
-semantics, you can set the variable to "matching" to keep the
-traditional behaviour.  If you want to live in the future early, you
-can set it to "simple" today without waiting for Git 2.0.
-
-When "git add -u" (and "git add -A") is run inside a subdirectory and
-does not specify which paths to add on the command line, it
-will operate on the entire tree in Git 2.0 for consistency
-with "git commit -a" and other commands.  There will be no
-mechanism to make plain "git add -u" behave like "git add -u .".
-Current users of "git add -u" (without a pathspec) should start
-training their fingers to explicitly say "git add -u ."
-before Git 2.0 comes.  A warning is issued when these commands are
-run without a pathspec and when you have local changes outside the
-current directory, because the behaviour in Git 2.0 will be different
-from today's version in such a situation.
-
-In Git 2.0, "git add <path>" will behave as "git add -A <path>", so
-that "git add dir/" will notice paths you removed from the directory
-and record the removal.  Versions before Git 2.0, including this
-release, will keep ignoring removals, but the users who rely on this
-behaviour are encouraged to start using "git add --ignore-removal <path>"
-now before 2.0 is released.
-
-
-Updates since v1.8.3
---------------------
-
-Foreign interfaces, subsystems and ports.
-
- * Cygwin port has been updated for more recent Cygwin 1.7.
-
- * "git rebase -i" now honors --strategy and -X options.
-
- * Git-gui has been updated to its 0.18.0 version.
-
- * MediaWiki remote helper (in contrib/) has been updated to use the
-   credential helper interface from Git.pm.
-
- * Update build for Cygwin 1.[57].  Torsten Bรถgershausen reports that
-   this is fine with Cygwin 1.7 (cf. <51A606A0.5060101@web.de>) so let's try moving it
-   ahead.
-
- * The credential helper to talk to keychain on OS X (in contrib/) has
-   been updated to kick in not just when talking http/https but also
-   imap(s) and smtp.
-
- * Remote transport helper has been updated to report errors and
-   maintain ref hierarchy used to keep track of its own state better.
-
- * With "export" remote-helper protocol, (1) a push that tries to
-   update a remote ref whose name is different from the pushing side
-   does not work yet, and (2) the helper may not know how to do
-   --dry-run; these problematic cases are disabled for now.
-
- * git-remote-hg/bzr (in contrib/) updates.
-
- * git-remote-mw (in contrib/) hints users to check the certificate,
-   when https:// connection failed.
-
- * git-remote-mw (in contrib/) adds a command to allow previewing the
-   contents locally before pushing it out, when working with a
-   MediaWiki remote.
-
-
-UI, Workflows & Features
-
- * Sample "post-receive-email" hook script got an enhanced replacement
-   "multimail" (in contrib/).
-
- * Also in contrib/ is a new "contacts" script that runs "git blame"
-   to find out the people who may be interested in a set of changes.
-
- * "git clean" command learned an interactive mode.
-
- * The "--head" option to "git show-ref" was only to add "HEAD" to the
-   list of candidate refs to be filtered by the usual rules
-   (e.g. "--heads" that only show refs under refs/heads).  The meaning
-   of the option has been changed to always show "HEAD" regardless of
-   what filtering will be applied to any other ref.
-
-   This is a backward incompatible change and might cause breakages to
-   people's existing scripts.
-
- * "git show -s" was less discoverable than it should have been.  It
-   now has a natural synonym "git show --no-patch".
-
- * "git check-mailmap" is a new command that lets you map usernames
-   and e-mail addresses through the mailmap mechanism, just like many
-   built-in commands do.
-
- * "git name-rev" learned to name an annotated tag object back to its
-   tagname; "git name-rev $(git rev-parse v1.0.0)" gives "tags/v1.0.0",
-   for example.
-
- * "git cat-file --batch-check=<format>" is added, primarily to allow
-   on-disk footprint of objects in packfiles (often they are a lot
-   smaller than their true size, when expressed as deltas) to be
-   reported.
-
- * "git rebase [-i]" used to leave just "rebase" as its reflog messages
-   for some operations. They have been reworded to be more informative.
-
- * In addition to the choice from "rebase, merge, or checkout-detach",
-   "submodule update" can allow a custom command to be used in to
-   update the working tree of submodules via the "submodule.*.update"
-   configuration variable.
-
- * "git submodule update" can optionally clone the submodule
-   repositories shallowly.
-
- * "git format-patch" learned "--from[=whom]" option, which sets the
-   "From: " header to the specified person (or the person who runs the
-   command, if "=whom" part is missing) and move the original author
-   information to an in-body From: header as necessary.
-
- * The configuration variable "merge.ff" was cleary a tri-state to
-   choose one from "favor fast-forward when possible", "always create
-   a merge even when the history could fast-forward" and "do not
-   create any merge, only update when the history fast-forwards", but
-   the command line parser did not implement the usual convention of
-   "last one wins, and command line overrides the configuration"
-   correctly.
-
- * "gitweb" learned to optionally place extra links that point at the
-   levels higher than the Gitweb pages themselves in the breadcrumbs,
-   so that it can be used as part of a larger installation.
-
- * "git log --format=" now honors i18n.logoutputencoding configuration
-   variable.
-
- * The "push.default=simple" mode of "git push" has been updated to
-   behave like "current" without requiring a remote tracking
-   information, when you push to a remote that is different from where
-   you fetch from (i.e. a triangular workflow).
-
- * Having multiple "fixup!" on a line in the rebase instruction sheet
-   did not work very well with "git rebase -i --autosquash".
-
- * "git log" learned the "--author-date-order" option, with which the
-   output is topologically sorted and commits in parallel histories
-   are shown intermixed together based on the author timestamp.
-
- * Various subcommands of "git submodule" refused to run from anywhere
-   other than the top of the working tree of the superproject, but
-   they have been taught to let you run from a subdirectory.
-
- * "git diff" learned a mode that ignores hunks whose change consists
-   only of additions and removals of blank lines, which is the same as
-   "diff -B" (ignore blank lines) of GNU diff.
-
- * "git rm" gives a single message followed by list of paths to report
-   multiple paths that cannot be removed.
-
- * "git rebase" can be told with ":/look for this string" syntax commits
-   to replay the changes onto and where the work to be replayed begins.
-
- * Many tutorials teach users to set "color.ui" to "auto" as the first
-   thing after you set "user.name/email" to introduce yourselves to
-   Git.  Now the variable defaults to "auto".
-
- * On Cygwin, "cygstart" is now recognised as a possible way to start
-   a web browser (used in "help -w" and "instaweb" among others).
-
- * "git status" learned status.branch and status.short configuration
-   variables to use --branch and --short options by default (override
-   with --no-branch and --no-short options from the command line).
-
- * "git cmd <name>", when <name> happens to be a 40-hex string,
-   directly uses the 40-hex string as an object name, even if a ref
-   "refs/<some hierarchy>/<name>" exists.  This disambiguation order
-   is unlikely to change, but we should warn about the ambiguity just
-   like we warn when more than one refs/ hierarchies share the same
-   name.
-
- * "git rebase" learned "--[no-]autostash" option to save local
-   changes instead of refusing to run (to which people's normal
-   response was to stash them and re-run).  This introduced a corner
-   case breakage to "git am --abort" but it has been fixed.
-
- * "check-ignore" (new feature since 1.8.2) has been updated to work
-   more like "check-attr" over bidi-pipes.
-
- * "git describe" learned "--first-parent" option to limit its closest
-   tagged commit search to the first-parent chain.
-
- * "git merge foo" that might have meant "git merge origin/foo" is
-   diagnosed with a more informative error message.
-
- * "git log -L<line>,<range>:<filename>" has been added.  This may
-   still have leaks and rough edges, though.
-
- * We used the approxidate() parser for "--expire=<timestamp>" options
-   of various commands, but it is better to treat --expire=all and
-   --expire=now a bit more specially than using the current timestamp.
-   "git gc" and "git reflog" have been updated with a new parsing
-   function for expiry dates.
-
- * Updates to completion (both bash and zsh) helpers.
-
- * The behaviour of the "--chain-reply-to" option of "git send-email"
-   have changed at 1.7.0, and we added a warning/advice message to
-   help users adjust to the new behaviour back then, but we kept it
-   around for too long.  The message has finally been removed.
-
- * "git fetch origin master" unlike "git fetch origin" or "git fetch"
-   did not update "refs/remotes/origin/master"; this was an early
-   design decision to keep the update of remote tracking branches
-   predictable, but in practice it turns out that people find it more
-   convenient to opportunistically update them whenever we have a
-   chance, and we have been updating them when we run "git push" which
-   already breaks the original "predictability" anyway.
-
- * The configuration variable core.checkstat was advertised in the
-   documentation but the code expected core.statinfo instead.
-   For now, we accept both core.checkstat and core.statinfo, but the
-   latter will be removed in the longer term.
-
-
-Performance, Internal Implementation, etc.
-
- * On Cygwin, we used to use our own lstat(2) emulation that is
-   allegedly faster than the platform one in codepaths where some of
-   the information it returns did not matter, but it started to bite
-   us in a few codepaths where the trick it uses to cheat does show
-   breakages. This emulation has been removed and we use the native
-   lstat(2) emulation supplied by Cygwin now.
-
- * The function attributes extensions are used to catch mistakes in
-   use of our own variadic functions that use NULL sentinel at the end
-   (i.e. like execl(3)) and format strings (i.e. like printf(3)).
-
- * The code to allow configuration data to be read from in-tree blob
-   objects is in.  This may help working in a bare repository and
-   submodule updates.
-
- * Fetching between repositories with many refs employed O(n^2)
-   algorithm to match up the common objects, which has been corrected.
-
- * The original way to specify remote repository using .git/branches/
-   used to have a nifty feature.  The code to support the feature was
-   still in a function but the caller was changed not to call it 5
-   years ago, breaking that feature and leaving the supporting code
-   unreachable.  The dead code has been removed.
-
- * "git pack-refs" that races with new ref creation or deletion have
-   been susceptible to lossage of refs under right conditions, which
-   has been tightened up.
-
- * We read loose and packed references in two steps, but after
-   deciding to read a loose ref but before actually opening it to read
-   it, another process racing with us can unlink it, which would cause
-   us to barf.  The codepath has been updated to retry when such a
-   race is detected, instead of outright failing.
-
- * Uses of the platform fnmatch(3) function (many places in the code,
-   matching pathspec, .gitignore and .gitattributes to name a few)
-   have been replaced with wildmatch, allowing "foo/**/bar" that would
-   match foo/bar, foo/a/bar, foo/a/b/bar, etc.
-
- * Memory ownership and lifetime rules for what for-each-ref feeds to
-   its callbacks have been clarified (in short, "you do not own it, so
-   make a copy if you want to keep it").
-
- * The revision traversal logic to improve culling of irrelevant
-   parents while traversing a mergy history has been updated.
-
- * Some leaks in unpack-trees (used in merge, cherry-pick and other
-   codepaths) have been plugged.
-
- * The codepath to read from marks files in fast-import/export did not
-   have to accept anything but 40-hex representation of the object
-   name.  Further, fast-export did not need full in-core object
-   representation to have parsed wen reading from them.  These
-   codepaths have been optimized by taking advantage of these access
-   patterns.
-
- * Object lookup logic, when the object hashtable starts to become
-   crowded, has been optimized.
-
- * When TEST_OUTPUT_DIRECTORY setting is used, it was handled somewhat
-   inconsistently between the test framework and t/Makefile, and logic
-   to summarize the results looked at a wrong place.
-
- * "git clone" uses a lighter-weight implementation when making sure
-   that the history behind refs are complete.
-
- * Many warnings from sparse source checker in compat/ area has been
-   squelched.
-
- * The code to reading and updating packed-refs file has been updated,
-   correcting corner case bugs.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v1.8.3
-------------------
-
-Unless otherwise noted, all the fixes since v1.8.3 in the maintenance
-track are contained in this release (see release notes to them for
-details).
-
- * Newer Net::SMTP::SSL module does not want the user programs to use
-   the default behaviour to let server certificate go without
-   verification, so by default enable the verification with a
-   mechanism to turn it off if needed.
-   (merge 35035bb rr/send-email-ssl-verify later to maint).
-
- * When "git" is spawned in such a way that any of the low 3 file
-   descriptors is closed, our first open() may yield file descriptor 2,
-   and writing error message to it would screw things up in a big way.
-   (merge a11c396 tr/protect-low-3-fds later to maint).
-
- * The mailmap mechanism unnecessarily downcased the e-mail addresses
-   in the output, and also ignored the human name when it is a single
-   character name.
-   (merge bd23794 jc/mailmap-case-insensitivity later to maint).
-
- * In two places we did not check return value (expected to be a file
-   descriptor) correctly.
-   (merge a77f106 tr/fd-gotcha-fixes later to maint).
-
- * Logic to auto-detect character encodings in the commit log message
-   did not reject overlong and invalid UTF-8 characters.
-   (merge 81050ac bc/commit-invalid-utf8 later to maint).
-
- * Pass port number as a separate argument when "send-email" initializes
-   Net::SMTP, instead of as a part of the hostname, i.e. host:port.
-   This allows GSSAPI codepath to match with the hostname given.
-   (merge 1a741bf bc/send-email-use-port-as-separate-param later to maint).
-
- * "git diff" refused to even show difference when core.safecrlf is
-   set to true (i.e. error out) and there are offending lines in the
-   working tree files.
-   (merge 5430bb2 jc/maint-diff-core-safecrlf later to maint).
-
- * A test that should have failed but didn't revealed a bug that needs
-   to be corrected.
-   (merge 94d75d1 jc/t1512-fix later to maint).
-
- * An overlong path to a .git directory may have overflown the
-   temporary path buffer used to create a name for lockfiles.
-   (merge 2fbd4f9 mh/maint-lockfile-overflow later to maint).
-
- * Invocations of "git checkout" used internally by "git rebase" were
-   counted as "checkout", and affected later "git checkout -" to the
-   the user to an unexpected place.
-   (merge 3bed291 rr/rebase-checkout-reflog later to maint).
-
- * The configuration variable column.ui was poorly documented.
-   (merge 5e62cc1 rr/column-doc later to maint).
-
- * "git name-rev --refs=tags/v*" were forbidden, which was a bit
-   inconvenient (you had to give a pattern to match refs fully, like
-   --refs=refs/tags/v*).
-   (merge 98c5c4a nk/name-rev-abbreviated-refs later to maint).
-
- * "git apply" parsed patches that add new files, generated by
-   programs other than Git, incorrectly.  This is an old breakage in
-   v1.7.11 and will need to be merged down to the maintenance tracks.
-
- * Older cURL wanted piece of memory we call it with to be stable, but
-   we updated the auth material after handing it to a call.
-
- * "git pull" into nothing trashed "local changes" that were in the
-   index, and this avoids it.
-
- * Many "git submodule" operations do not work on a submodule at a
-   path whose name is not in ASCII.
-
- * "cherry-pick" had a small leak in an error codepath.
-
- * Logic used by git-send-email to suppress cc mishandled names like
-   "A U. Thor" <author@example.xz>, where the human readable part
-   needs to be quoted (the user input may not have the double quotes
-   around the name, and comparison was done between quoted and
-   unquoted strings).  It also mishandled names that need RFC2047
-   quoting.
-
- * Call to discard_cache/discard_index (used when we use different
-   contents of the index in-core, in many operations like commit,
-   apply, and merge) used to leak memory that held the array of index
-   entries, which has been plugged.
-   (merge a0fc4db rs/discard-index-discard-array later to maint).
-
- * "gitweb" forgot to clear a global variable $search_regexp upon each
-   request, mistakenly carrying over the previous search to a new one
-   when used as a persistent CGI.
-
- * The wildmatch engine did not honor WM_CASEFOLD option correctly.
-
- * "git log -c --follow $path" segfaulted upon hitting the commit that
-   renamed the $path being followed.
-
- * When a reflog notation is used for implicit "current branch", we
-   did not say which branch and worse said "branch ''".
-
- * "difftool --dir-diff" did not copy back changes made by the
-   end-user in the diff tool backend to the working tree in some
-   cases.
-
- * "git push $there HEAD:branch" did not resolve HEAD early enough, so
-   it was easy to flip it around while push is still going on and push
-   out a branch that the user did not originally intended when the
-   command was started.
-
- * The bash prompt code (in contrib/) displayed the name of the branch
-   being rebased when "rebase -i/-m/-p" modes are in use, but not the
-   plain vanilla "rebase".
-
- * Handling of negative exclude pattern for directories "!dir" was
-   broken in the update to v1.8.3.
-
- * zsh prompt script that borrowed from bash prompt script did not
-   work due to slight differences in array variable notation between
-   these two shells.
-
- * An entry for "file://" scheme in the enumeration of URL types Git
-   can take in the HTML documentation was made into a clickable link
-   by mistake.
-
- * "git push --[no-]verify" was not documented.
-
- * Stop installing the git-remote-testpy script that is only used for
-   testing.
-
- * "git commit --allow-empty-message -m ''" should not start an
-   editor.
-
- * "git merge @{-1}~22" was rewritten to "git merge frotz@{1}~22"
-   incorrectly when your previous branch was "frotz" (it should be
-   rewritten to "git merge frotz~22" instead).
-
- * "git diff -c -p" was not showing a deleted line from a hunk when
-   another hunk immediately begins where the earlier one ends.
-
- * "git log --ancestry-path A...B" did not work as expected, as it did
-   not pay attention to the fact that the merge base between A and B
-   was the bottom of the range being specified.
-
- * Mac OS X does not like to write(2) more than INT_MAX number of
-   bytes; work it around by chopping write(2) into smaller pieces.
-
- * Newer MacOS X encourages the programs to compile and link with
-   their CommonCrypto, not with OpenSSL.
-
- * "git clone foo/bar:baz" cannot be a request to clone from a remote
-   over git-over-ssh specified in the scp style.  This case is now
-   detected and clones from a local repository at "foo/bar:baz".
-
- * When $HOME is misconfigured to point at an unreadable directory, we
-   used to complain and die. Loosen the check.
-
- * "git subtree" (in contrib/) had one codepath with loose error
-   checks to lose data at the remote side.
-
- * "git fetch" into a shallow repository from a repository that does
-   not know about the shallow boundary commits (e.g. a different fork
-   from the repository the current shallow repository was cloned from)
-   did not work correctly.
-
- * "git checkout foo" DWIMs the intended "upstream" and turns it into
-   "git checkout -t -b foo remotes/origin/foo". This codepath has been
-   updated to correctly take existing remote definitions into account.
diff --git a/third_party/git/Documentation/RelNotes/1.8.5.1.txt b/third_party/git/Documentation/RelNotes/1.8.5.1.txt
deleted file mode 100644
index 7236aaf2323d..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.5.1.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Git v1.8.5.1 Release Notes
-==========================
-
-Fixes since v1.8.5
-------------------
-
- * "git submodule init" copied "submodule.$name.update" settings from
-   .gitmodules to .git/config without making sure if the suggested
-   value was sensible.
diff --git a/third_party/git/Documentation/RelNotes/1.8.5.2.txt b/third_party/git/Documentation/RelNotes/1.8.5.2.txt
deleted file mode 100644
index 3ac4984f10f2..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.5.2.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Git v1.8.5.2 Release Notes
-==========================
-
-Fixes since v1.8.5.1
---------------------
-
- * "git diff -- ':(icase)makefile'" was unnecessarily rejected at the
-   command line parser.
-
- * "git cat-file --batch-check=ok" did not check the existence of
-   the named object.
-
- * "git am --abort" sometimes complained about not being able to write
-   a tree with an 0{40} object in it.
-
- * Two processes creating loose objects at the same time could have
-   failed unnecessarily when the name of their new objects started
-   with the same byte value, due to a race condition.
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/1.8.5.3.txt b/third_party/git/Documentation/RelNotes/1.8.5.3.txt
deleted file mode 100644
index 3de2dd0f1947..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.5.3.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Git v1.8.5.3 Release Notes
-==========================
-
-Fixes since v1.8.5.2
---------------------
-
- * The "--[no-]informative-errors" options to "git daemon" were parsed
-   a bit too loosely, allowing any other string after these option
-   names.
-
- * A "gc" process running as a different user should be able to stop a
-   new "gc" process from starting.
-
- * An earlier "clean-up" introduced an unnecessary memory leak to the
-   credential subsystem.
-
- * "git mv A B/", when B does not exist as a directory, should error
-   out, but it didn't.
-
- * "git rev-parse <revs> -- <paths>" did not implement the usual
-   disambiguation rules the commands in the "git log" family used in
-   the same way.
-
- * "git cat-file --batch=", an admittedly useless command, did not
-   behave very well.
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/1.8.5.4.txt b/third_party/git/Documentation/RelNotes/1.8.5.4.txt
deleted file mode 100644
index d18c40389eba..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.5.4.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-Git v1.8.5.4 Release Notes
-==========================
-
-Fixes since v1.8.5.3
---------------------
-
- * "git fetch --depth=0" was a no-op, and was silently ignored.
-   Diagnose it as an error.
-
- * Remote repository URL expressed in scp-style host:path notation are
-   parsed more carefully (e.g. "foo/bar:baz" is local, "[::1]:/~user" asks
-   to connect to user's home directory on host at address ::1.
-
- * SSL-related options were not passed correctly to underlying socket
-   layer in "git send-email".
-
- * "git commit -v" appends the patch to the log message before
-   editing, and then removes the patch when the editor returned
-   control. However, the patch was not stripped correctly when the
-   first modified path was a submodule.
-
- * "git mv A B/", when B does not exist as a directory, should error
-   out, but it didn't.
-
- * When we figure out how many file descriptors to allocate for
-   keeping packfiles open, a system with non-working getrlimit() could
-   cause us to die(), but because we make this call only to get a
-   rough estimate of how many is available and we do not even attempt
-   to use up all file descriptors available ourselves, it is nicer to
-   fall back to a reasonable low value rather than dying.
-
- * "git log --decorate" did not handle a tag pointed by another tag
-   nicely.
-
- * "git add -A" (no other arguments) in a totally empty working tree
-   used to emit an error.
-
- * There is no reason to have a hardcoded upper limit of the number of
-   parents for an octopus merge, created via the graft mechanism, but
-   there was.
-
- * The implementation of 'git stash $cmd "stash@{...}"' did not quote
-   the stash argument properly and left it split at IFS whitespace.
-
- * The documentation to "git pull" hinted there is an "-m" option
-   because it incorrectly shared the documentation with "git merge".
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/1.8.5.5.txt b/third_party/git/Documentation/RelNotes/1.8.5.5.txt
deleted file mode 100644
index 9191ce948fc8..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.5.5.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-Git v1.8.5.5 Release Notes
-==========================
-
-Fixes since v1.8.5.4
---------------------
-
- * The pathspec matching code, while comparing two trees (e.g. "git
-   diff A B -- path1 path2") was too aggressive and failed to match
-   some paths when multiple pathspecs were involved.
-
- * "git repack --max-pack-size=8g" stopped being parsed correctly when
-   the command was reimplemented in C.
-
- * A recent update to "git send-email" broke platforms where
-   /etc/ssl/certs/ directory exists but cannot be used as SSL_ca_path
-   (e.g. Fedora rawhide).
-
- * A handful of bugs around interpreting $branch@{upstream} notation
-   and its lookalike, when $branch part has interesting characters,
-   e.g. "@", and ":", have been fixed.
-
- * "git clone" would fail to clone from a repository that has a ref
-   directly under "refs/", e.g. "refs/stash", because different
-   validation paths do different things on such a refname.  Loosen the
-   client side's validation to allow such a ref.
-
- * "git log --left-right A...B" lost the "leftness" of commits
-   reachable from A when A is a tag as a side effect of a recent
-   bugfix.  This is a regression in 1.8.4.x series.
-
- * "git merge-base --octopus" used to leave cleaning up suboptimal
-   result to the caller, but now it does the clean-up itself.
-
- * "git mv A B/", when B does not exist as a directory, should error
-   out, but it didn't.
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/1.8.5.6.txt b/third_party/git/Documentation/RelNotes/1.8.5.6.txt
deleted file mode 100644
index 92ff92b1e6e2..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.5.6.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Git v1.8.5.6 Release Notes
-==========================
-
-Fixes since v1.8.5.5
---------------------
-
- * We used to allow committing a path ".Git/config" with Git that is
-   running on a case sensitive filesystem, but an attempt to check out
-   such a path with Git that runs on a case insensitive filesystem
-   would have clobbered ".git/config", which is definitely not what
-   the user would have expected.  Git now prevents you from tracking
-   a path with ".Git" (in any case combination) as a path component.
-
- * On Windows, certain path components that are different from ".git"
-   are mapped to ".git", e.g. "git~1/config" is treated as if it were
-   ".git/config".  HFS+ has a similar issue, where certain unicode
-   codepoints are ignored, e.g. ".g\u200cit/config" is treated as if
-   it were ".git/config".  Pathnames with these potential issues are
-   rejected on the affected systems.  Git on systems that are not
-   affected by this issue (e.g. Linux) can also be configured to
-   reject them to ensure cross platform interoperability of the hosted
-   projects.
-
- * "git fsck" notices a tree object that records such a path that can
-   be confused with ".git", and with receive.fsckObjects configuration
-   set to true, an attempt to "git push" such a tree object will be
-   rejected.  Such a path may not be a problem on a well behaving
-   filesystem but in order to protect those on HFS+ and on case
-   insensitive filesystems, this check is enabled on all platforms.
-
-A big "thanks!" for bringing this issue to us goes to our friends in
-the Mercurial land, namely, Matt Mackall and Augie Fackler.
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/1.8.5.txt b/third_party/git/Documentation/RelNotes/1.8.5.txt
deleted file mode 100644
index 602df0cac2de..000000000000
--- a/third_party/git/Documentation/RelNotes/1.8.5.txt
+++ /dev/null
@@ -1,456 +0,0 @@
-Git v1.8.5 Release Notes
-========================
-
-Backward compatibility notes (for Git 2.0)
-------------------------------------------
-
-When "git push [$there]" does not say what to push, we have used the
-traditional "matching" semantics so far (all your branches were sent
-to the remote as long as there already are branches of the same name
-over there).  In Git 2.0, the default will change to the "simple"
-semantics, which pushes:
-
- - only the current branch to the branch with the same name, and only
-   when the current branch is set to integrate with that remote
-   branch, if you are pushing to the same remote as you fetch from; or
-
- - only the current branch to the branch with the same name, if you
-   are pushing to a remote that is not where you usually fetch from.
-
-Use the user preference configuration variable "push.default" to
-change this.  If you are an old-timer who is used to the "matching"
-semantics, you can set the variable to "matching" to keep the
-traditional behaviour.  If you want to live in the future early, you
-can set it to "simple" today without waiting for Git 2.0.
-
-When "git add -u" (and "git add -A") is run inside a subdirectory and
-does not specify which paths to add on the command line, it
-will operate on the entire tree in Git 2.0 for consistency
-with "git commit -a" and other commands.  There will be no
-mechanism to make plain "git add -u" behave like "git add -u .".
-Current users of "git add -u" (without a pathspec) should start
-training their fingers to explicitly say "git add -u ."
-before Git 2.0 comes.  A warning is issued when these commands are
-run without a pathspec and when you have local changes outside the
-current directory, because the behaviour in Git 2.0 will be different
-from today's version in such a situation.
-
-In Git 2.0, "git add <path>" will behave as "git add -A <path>", so
-that "git add dir/" will notice paths you removed from the directory
-and record the removal.  Versions before Git 2.0, including this
-release, will keep ignoring removals, but the users who rely on this
-behaviour are encouraged to start using "git add --ignore-removal <path>"
-now before 2.0 is released.
-
-The default prefix for "git svn" will change in Git 2.0.  For a long
-time, "git svn" created its remote-tracking branches directly under
-refs/remotes, but it will place them under refs/remotes/origin/ unless
-it is told otherwise with its --prefix option.
-
-
-Updates since v1.8.4
---------------------
-
-Foreign interfaces, subsystems and ports.
-
- * "git-svn" has been taught to use the serf library, which is the
-   only option SVN 1.8.0 offers us when talking the HTTP protocol.
-
- * "git-svn" talking over an https:// connection using the serf library
-   dumped core due to a bug in the serf library that SVN uses.  Work
-   around it on our side, even though the SVN side is being fixed.
-
- * On MacOS X, we detected if the filesystem needs the "pre-composed
-   unicode strings" workaround, but did not automatically enable it.
-   Now we do.
-
- * remote-hg remote helper misbehaved when interacting with a local Hg
-   repository relative to the home directory, e.g. "clone hg::~/there".
-
- * imap-send ported to OS X uses Apple's security framework instead of
-   OpenSSL's.
-
- * "git fast-import" treats an empty path given to "ls" as the root of
-   the tree.
-
-
-UI, Workflows & Features
-
- * xdg-open can be used as a browser backend for "git web-browse"
-   (hence to show "git help -w" output), when available.
-
- * "git grep" and "git show" pay attention to the "--textconv" option
-   when these commands are told to operate on blob objects (e.g. "git
-   grep -e pattern --textconv HEAD:Makefile").
-
- * "git replace" helper no longer allows an object to be replaced with
-   another object of a different type to avoid confusion (you can
-   still manually craft such a replacement using "git update-ref", as an
-   escape hatch).
-
- * "git status" no longer prints the dirty status information of
-   submodules for which submodule.$name.ignore is set to "all".
-
- * "git rebase -i" honours core.abbrev when preparing the insn sheet
-   for editing.
-
- * "git status" during a cherry-pick shows which original commit is
-   being picked.
-
- * Instead of typing four capital letters "HEAD", you can say "@" now,
-   e.g. "git log @".
-
- * "git check-ignore" follows the same rule as "git add" and "git
-   status" in that the ignore/exclude mechanism does not take effect
-   on paths that are already tracked.  With the "--no-index" option, it
-   can be used to diagnose which paths that should have been ignored
-   have been mistakenly added to the index.
-
- * Some irrelevant "advice" messages that are shared with "git status"
-   output have been removed from the commit log template.
-
- * "update-refs" learned a "--stdin" option to read multiple update
-   requests and perform them in an all-or-none fashion.
-
- * Just like "make -C <directory>", "git -C <directory> ..." tells Git
-   to go there before doing anything else.
-
- * Just like "git checkout -" knows to check out, and "git merge -"
-   knows to merge, the branch you were previously on, "git cherry-pick"
-   now understands "git cherry-pick -" to pick from the previous
-   branch.
-
- * "git status" now omits the prefix to make its output a comment in a
-   commit log editor, which is not necessary for human consumption.
-   Scripts that parse the output of "git status" are advised to use
-   "git status --porcelain" instead, as its format is stable and easier
-   to parse.
-
- * The ref syntax "foo^{tag}" (with the literal string "{tag}") peels a
-   tag ref to itself, i.e. it's a no-op., and fails if
-   "foo" is not a tag.  "git rev-parse --verify v1.0^{tag}" is
-   a more convenient way than "test $(git cat-file -t v1.0) = tag" to
-   check if v1.0 is a tag.
-
- * "git branch -v -v" (and "git status") did not distinguish among a
-   branch that is not based on any other branch, a branch that is in
-   sync with its upstream branch, and a branch that is configured with an
-   upstream branch that no longer exists.
-
- * Earlier we started rejecting any attempt to add the 0{40} object name to
-   the index and to tree objects, but it sometimes is necessary to
-   allow this to be able to use tools like filter-branch to correct such
-   broken tree objects.  "filter-branch" can again be used to do this.
-
- * "git config" did not provide a way to set or access numbers larger
-   than a native "int" on the platform; it now provides 64-bit signed
-   integers on all platforms.
-
- * "git pull --rebase" always chose to do the bog-standard flattening
-   rebase.  You can tell it to run "rebase --preserve-merges" with
-   "git pull --rebase=preserve" or by
-   setting "pull.rebase" configuration to "preserve".
-
- * "git push --no-thin" actually disables the "thin pack transfer"
-   optimization.
-
- * Magic pathspecs like ":(icase)makefile" (matches both Makefile
-   and makefile) and ":(glob)foo/**/bar" (matches "bar" in "foo"
-   and any subdirectory of "foo") can be used in more places.
-
- * The "http.*" variables can now be specified for individual URLs.
-   For example,
-
-   [http]
-       sslVerify = true
-   [http "https://weak.example.com/"]
-       sslVerify = false
-
-   would flip http.sslVerify off only when talking to that specific
-   site.
-
- * "git mv A B" when moving a submodule has been taught to
-   relocate the submodule's working tree and to adjust the paths in the
-   .gitmodules file.
-
- * "git blame" can now take more than one -L option to discover the
-   origin of multiple blocks of lines.
-
- * The http transport clients can optionally ask to save cookies
-   with the http.savecookies configuration variable.
-
- * "git push" learned a more fine grained control over a blunt
-   "--force" when requesting a non-fast-forward update with the
-   "--force-with-lease=<refname>:<expected object name>" option.
-
- * "git diff --diff-filter=<classes of changes>" can now take
-   lowercase letters (e.g. "--diff-filter=d") to mean "show
-   everything but these classes".  "git diff-files -q" is now a
-   deprecated synonym for "git diff-files --diff-filter=d".
-
- * "git fetch" (hence "git pull" as well) learned to check
-   "fetch.prune" and "remote.*.prune" configuration variables and
-   to behave as if the "--prune" command line option was given.
-
- * "git check-ignore -z" applied the NUL termination to both its input
-   (with --stdin) and its output, but "git check-attr -z" ignored the
-   option on the output side. Make both honor -z on the input and
-   output side the same way.
-
- * "git whatchanged" may still be used by old timers, but mention of
-   it in documents meant for new users will only waste readers' time
-   wondering what the difference is between it and "git log".  Make it
-   less prominent in the general part of the documentation and explain
-   that it is merely a "git log" with different default behaviour in
-   its own document.
-
-
-Performance, Internal Implementation, etc.
-
- * "git for-each-ref" when asking for merely the object name does not
-   have to parse the object pointed at by the refs; the codepath has
-   been optimized.
-
- * The HTTP transport will try to use TCP keepalive when able.
-
- * "git repack" is now written in C.
-
- * Build procedure for MSVC has been updated.
-
- * If a build-time fallback is set to "cat" instead of "less", we
-   should apply the same "no subprocess or pipe" optimization as we
-   apply to user-supplied GIT_PAGER=cat.
-
- * Many commands use a --dashed-option as an operation mode selector
-   (e.g. "git tag --delete") that excludes other operation modes
-   (e.g. "git tag --delete --verify" is nonsense) and that cannot be
-   negated (e.g. "git tag --no-delete" is nonsense).  The parse-options
-   API learned a new OPT_CMDMODE macro to make it easier to implement
-   such a set of options.
-
- * OPT_BOOLEAN() in the parse-options API was misdesigned to be "counting
-   up" but many subcommands expect it to behave as "on/off". Update
-   them to use OPT_BOOL() which is a proper boolean.
-
- * "git gc" exits early without doing any work when it detects
-   that another instance of itself is already running.
-
- * Under memory pressure and/or file descriptor pressure, we used to
-   close pack windows that are not used and also closed filehandles to
-   open but unused packfiles. These are now controlled separately
-   to better cope with the load.
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v1.8.4
-------------------
-
-Unless otherwise noted, all the fixes since v1.8.4 in the maintenance
-track are contained in this release (see the maintenance releases' notes for
-details).
-
- * An ancient How-To on serving Git repositories on an HTTP server
-   lacked a warning that it has been mostly superseded with a more
-   modern way.
-   (merge 6d52bc3 sc/doc-howto-dumb-http later to maint).
-
- * The interaction between the use of Perl in our test suite and NO_PERL
-   has been clarified a bit.
-   (merge f8fc0ee jn/test-prereq-perl-doc later to maint).
-
- * The synopsis section of the "git unpack-objects" documentation has been
-   clarified a bit.
-   (merge 61e2e22 vd/doc-unpack-objects later to maint).
-
- * We did not generate the HTML version of the documentation to "git subtree"
-   in contrib/.
-   (merge 95c62fb jk/subtree-install-fix later to maint).
-
- * A fast-import stream expresses a pathname with funny characters by
-   quoting them in C style; the remote-hg remote helper forgot to unquote
-   such a path.
-   (merge 1136265 ap/remote-hg-unquote-cquote later to maint).
-
- * "git reset -p HEAD" has a codepath to special-case it to behave
-   differently from resetting to contents of other commits, but a
-   recent change broke it.
-
- * Coloring around octopus merges in "log --graph" output was screwy.
-   (merge 339c17b hn/log-graph-color-octopus later to maint).
-
- * "git checkout topic", when there is not yet a local "topic" branch
-   but there is a unique remote-tracking branch for a remote "topic"
-   branch, pretended as if "git checkout -t -b topic remote/$r/topic"
-   (for that unique remote $r) was run. This hack however was not
-   implemented for "git checkout topic --".
-   (merge bca3969 mm/checkout-auto-track-fix later to maint).
-
- * One long-standing flaw in the pack transfer protocol used by "git
-   clone" was that there was no way to tell the other end which branch
-   "HEAD" points at, and the receiving end needed to guess.  A new
-   capability has been defined in the pack protocol to convey this
-   information so that cloning from a repository with more than one
-   branch pointing at the same commit where the HEAD is at now
-   reliably sets the initial branch in the resulting repository.
-   (merge 360a326 jc/upload-pack-send-symref later to maint).
-
- * We did not handle cases where the http transport gets redirected during
-   the authorization request (e.g. from http:// to https://).
-   (merge 70900ed jk/http-auth-redirects later to maint).
-
- * Bash prompting code to deal with an SVN remote as an upstream
-   was coded in a way unsupported by older Bash versions (3.x).
-   (merge 52ec889 sg/prompt-svn-remote-fix later to maint).
-
- * The fall-back parsing of commit objects with broken author or
-   committer lines was less robust than ideal in picking up the
-   timestamps.
-   (merge 03818a4 jk/split-broken-ident later to maint).
-
- * "git rev-list --objects ^v1.0^ v1.0" gave the v1.0 tag itself in the
-   output, but "git rev-list --objects v1.0^..v1.0" did not.
-   (merge 895c5ba jc/revision-range-unpeel later to maint).
-
- * "git clone" wrote some progress messages to standard output, not
-   to standard error, and did not suppress them with the
-   --no-progress option.
-   (merge 643f918 jk/clone-progress-to-stderr later to maint).
-
- * "format-patch --from=<whom>" forgot to omit an unnecessary in-body
-   from line, i.e. when <whom> is the same as the real author.
-   (merge 662cc30 jk/format-patch-from later to maint).
-
- * "git shortlog" used to choke and die when there is a malformed
-   commit (e.g. missing authors); it now simply ignores such a commit
-   and keeps going.
-   (merge cd4f09e jk/shortlog-tolerate-broken-commit later to maint).
-
- * "git merge-recursive" did not parse its "--diff-algorithm=" command
-   line option correctly.
-   (merge 6562928 jk/diff-algo later to maint).
-
- * When running "fetch -q", a long silence while the sender side
-   computes the set of objects to send can be mistaken by proxies as
-   dropped connection.  The server side has been taught to send a
-   small empty messages to keep the connection alive.
-   (merge 115dedd jk/upload-pack-keepalive later to maint).
-
- * "git rebase" had a portability regression in v1.8.4 that triggered a
-   bug in some BSD shell implementations.
-   (merge 99855dd mm/rebase-continue-freebsd-WB later to maint).
-
- * "git branch --track" had a minor regression in v1.8.3.2 and later
-   that made it impossible to base your local work on anything but a
-   local branch of the upstream repository you are tracking.
-   (merge b0f49ff jh/checkout-auto-tracking later to maint).
-
- * When the web server responds with "405 Method Not Allowed", "git
-   http-backend" should tell the client what methods are allowed with
-   the "Allow" header.
-   (merge 9247be0 bc/http-backend-allow-405 later to maint).
-
- * When there is no sufficient overlap between old and new history
-   during a "git fetch" into a shallow repository, objects that the
-   sending side knows the receiving end has were unnecessarily sent.
-   (merge f21d2a7 nd/fetch-into-shallow later to maint).
-
- * "git cvsserver" computed the permission mode bits incorrectly for
-   executable files.
-   (merge 1b48d56 jc/cvsserver-perm-bit-fix later to maint).
-
- * When send-email obtains an error message to die with upon
-   failure to start an SSL session, it tried to read the error string
-   from a wrong place.
-   (merge 6cb0c88 bc/send-email-ssl-die-message-fix later to maint).
-
- * The implementation of "add -i" has some crippling code to work around an
-   ActiveState Perl limitation but it by mistake also triggered on Git
-   for Windows where MSYS perl is used.
-   (merge df17e77 js/add-i-mingw later to maint).
-
- * We made sure that we notice when the user-supplied GIT_DIR is actually a
-   gitfile, but did not do the same when the default ".git" is a
-   gitfile.
-   (merge 487a2b7 nd/git-dir-pointing-at-gitfile later to maint).
-
- * When an object is not found after checking the packfiles and the
-   loose object directory, read_sha1_file() re-checks the packfiles to
-   prevent racing with a concurrent repacker; teach the same logic to
-   has_sha1_file().
-   (merge 45e8a74 jk/has-sha1-file-retry-packed later to maint).
-
- * "git commit --author=$name", when $name is not in the canonical
-   "A. U. Thor <au.thor@example.xz>" format, looks for a matching name
-   from existing history, but did not consult mailmap to grab the
-   preferred author name.
-   (merge ea16794 ap/commit-author-mailmap later to maint).
-
- * "git ls-files -k" needs to crawl only the part of the working tree
-   that may overlap the paths in the index to find killed files, but
-   shared code with the logic to find all the untracked files, which
-   made it unnecessarily inefficient.
-   (merge 680be04 jc/ls-files-killed-optim later to maint).
-
- * The shortened commit object names in the insn sheet that is prepared at the
-   beginning of a "rebase -i" session can become ambiguous as the
-   rebasing progresses and the repository gains more commits. Make
-   sure the internal record is kept with full 40-hex object names.
-   (merge 75c6976 es/rebase-i-no-abbrev later to maint).
-
- * "git rebase --preserve-merges" internally used the merge machinery
-   and as a side effect left the merge summary message in the log, but
-   when rebasing there is no need for the merge summary.
-   (merge a9f739c rt/rebase-p-no-merge-summary later to maint).
-
- * A call to xread() was used without a loop around it to cope with short
-   reads in the codepath to stream new contents to a pack.
-   (merge e92527c js/xread-in-full later to maint).
-
- * "git rebase -i" forgot that the comment character is
-   configurable while reading its insn sheet.
-   (merge 7bca7af es/rebase-i-respect-core-commentchar later to maint).
-
- * The mailmap support code read past the allocated buffer when the
-   mailmap file ended with an incomplete line.
-   (merge f972a16 jk/mailmap-incomplete-line later to maint).
-
- * We used to send a large request to read(2)/write(2) as a single
-   system call, which was bad from the latency point of view when
-   the operation needs to be killed, and also triggered an error on
-   broken 64-bit systems that refuse to read or write more than 2GB
-   in one go.
-   (merge a487916 sp/clip-read-write-to-8mb later to maint).
-
- * "git fetch" that auto-followed tags incorrectly reused the
-   connection with Git-aware transport helper (like the sample "ext::"
-   helper shipped with Git).
-   (merge 0f73f8b jc/transport-do-not-use-connect-twice-in-fetch later to maint).
-
- * "git log --full-diff -- <pathspec>" showed a huge diff for paths
-   outside the given <pathspec> for each commit, instead of showing
-   the change relative to the parent of the commit.  "git reflog -p"
-   had a similar problem.
-   (merge 838f9a1 tr/log-full-diff-keep-true-parents later to maint).
-
- * Setting a submodule.*.path configuration variable to true (without
-   giving "= value") caused Git to segfault.
-   (merge 4b05440 jl/some-submodule-config-are-not-boolean later to maint).
-
- * "git rebase -i" (there could be others, as the root cause is pretty
-   generic) fed a random, data dependent string to 'echo' and
-   expected it to come out literally, corrupting its error message.
-   (merge 89b0230 mm/no-shell-escape-in-die-message later to maint).
-
- * Some people still use rather old versions of bash, which cannot
-   grok some constructs like 'printf -v varname' which the prompt and
-   completion code started to use recently.
-   (merge a44aa69 bc/completion-for-bash-3.0 later to maint).
-
- * Code to read configuration from a blob object did not compile on
-   platforms with fgetc() etc. implemented as macros.
-   (merge 49d6cfa hv/config-from-blob later to maint-1.8.3).
-
- * The recent "short-cut clone connectivity check" topic broke a
-   shallow repository when a fetch operation tries to auto-follow tags.
-   (merge 6da8bdc nd/fetch-pack-shallow-fix later to maint-1.8.3).
diff --git a/third_party/git/Documentation/RelNotes/1.9.0.txt b/third_party/git/Documentation/RelNotes/1.9.0.txt
deleted file mode 100644
index 4e4b88aa5c89..000000000000
--- a/third_party/git/Documentation/RelNotes/1.9.0.txt
+++ /dev/null
@@ -1,345 +0,0 @@
-Git v1.9.0 Release Notes
-========================
-
-Backward compatibility notes
-----------------------------
-
-"git submodule foreach $cmd $args" used to treat "$cmd $args" the same
-way "ssh" did, concatenating them into a single string and letting the
-shell unquote. Careless users who forget to sufficiently quote $args
-get their argument split at $IFS whitespaces by the shell, and got
-unexpected results due to this. Starting from this release, the
-command line is passed directly to the shell, if it has an argument.
-
-Read-only support for experimental loose-object format, in which users
-could optionally choose to write their loose objects for a short
-while between v1.4.3 and v1.5.3 era, has been dropped.
-
-The meanings of the "--tags" option to "git fetch" has changed; the
-command fetches tags _in addition to_ what is fetched by the same
-command line without the option.
-
-The way "git push $there $what" interprets the $what part given on the
-command line, when it does not have a colon that explicitly tells us
-what ref at the $there repository is to be updated, has been enhanced.
-
-A handful of ancient commands that have long been deprecated are
-finally gone (repo-config, tar-tree, lost-found, and peek-remote).
-
-
-Backward compatibility notes (for Git 2.0.0)
---------------------------------------------
-
-When "git push [$there]" does not say what to push, we have used the
-traditional "matching" semantics so far (all your branches were sent
-to the remote as long as there already are branches of the same name
-over there).  In Git 2.0, the default will change to the "simple"
-semantics, which pushes:
-
- - only the current branch to the branch with the same name, and only
-   when the current branch is set to integrate with that remote
-   branch, if you are pushing to the same remote as you fetch from; or
-
- - only the current branch to the branch with the same name, if you
-   are pushing to a remote that is not where you usually fetch from.
-
-Use the user preference configuration variable "push.default" to
-change this.  If you are an old-timer who is used to the "matching"
-semantics, you can set the variable to "matching" to keep the
-traditional behaviour.  If you want to live in the future early, you
-can set it to "simple" today without waiting for Git 2.0.
-
-When "git add -u" (and "git add -A") is run inside a subdirectory and
-does not specify which paths to add on the command line, it
-will operate on the entire tree in Git 2.0 for consistency
-with "git commit -a" and other commands.  There will be no
-mechanism to make plain "git add -u" behave like "git add -u .".
-Current users of "git add -u" (without a pathspec) should start
-training their fingers to explicitly say "git add -u ."
-before Git 2.0 comes.  A warning is issued when these commands are
-run without a pathspec and when you have local changes outside the
-current directory, because the behaviour in Git 2.0 will be different
-from today's version in such a situation.
-
-In Git 2.0, "git add <path>" will behave as "git add -A <path>", so
-that "git add dir/" will notice paths you removed from the directory
-and record the removal.  Versions before Git 2.0, including this
-release, will keep ignoring removals, but the users who rely on this
-behaviour are encouraged to start using "git add --ignore-removal <path>"
-now before 2.0 is released.
-
-The default prefix for "git svn" will change in Git 2.0.  For a long
-time, "git svn" created its remote-tracking branches directly under
-refs/remotes, but it will place them under refs/remotes/origin/ unless
-it is told otherwise with its --prefix option.
-
-
-Updates since v1.8.5
---------------------
-
-Foreign interfaces, subsystems and ports.
-
- * The HTTP transport, when talking GSS-Negotiate, uses "100
-   Continue" response to avoid having to rewind and resend a large
-   payload, which may not be always doable.
-
- * Various bugfixes to remote-bzr and remote-hg (in contrib/).
-
- * The build procedure is aware of MirBSD now.
-
- * Various "git p4", "git svn" and "gitk" updates.
-
-
-UI, Workflows & Features
-
- * Fetching from a shallowly-cloned repository used to be forbidden,
-   primarily because the codepaths involved were not carefully vetted
-   and we did not bother supporting such usage. This release attempts
-   to allow object transfer out of a shallowly-cloned repository in a
-   more controlled way (i.e. the receiver becomes a shallow repository
-   with a truncated history).
-
- * Just like we give a reasonable default for "less" via the LESS
-   environment variable, we now specify a reasonable default for "lv"
-   via the "LV" environment variable when spawning the pager.
-
- * Two-level configuration variable names in "branch.*" and "remote.*"
-   hierarchies, whose variables are predominantly three-level, were
-   not completed by hitting a <TAB> in bash and zsh completions.
-
- * Fetching a 'frotz' branch with "git fetch", while a 'frotz/nitfol'
-   remote-tracking branch from an earlier fetch was still there, would
-   error out, primarily because the command was not told that it is
-   allowed to lose any information on our side.  "git fetch --prune"
-   now can be used to remove 'frotz/nitfol' to make room for fetching and
-   storing the 'frotz' remote-tracking branch.
-
- * "diff.orderfile=<file>" configuration variable can be used to
-   pretend as if the "-O<file>" option were given from the command
-   line of "git diff", etc.
-
- * The negative pathspec syntax allows "git log -- . ':!dir'" to tell
-   us "I am interested in everything but 'dir' directory".
-
- * "git difftool" shows how many different paths there are in total,
-   and how many of them have been shown so far, to indicate progress.
-
- * "git push origin master" used to push our 'master' branch to update
-   the 'master' branch at the 'origin' repository.  This has been
-   enhanced to use the same ref mapping "git push origin" would use to
-   determine what ref at the 'origin' to be updated with our 'master'.
-   For example, with this configuration
-
-   [remote "origin"]
-      push = refs/heads/*:refs/review/*
-
-   that would cause "git push origin" to push out our local branches
-   to corresponding refs under refs/review/ hierarchy at 'origin',
-   "git push origin master" would update 'refs/review/master' over
-   there.  Alternatively, if push.default is set to 'upstream' and our
-   'master' is set to integrate with 'topic' from the 'origin' branch,
-   running "git push origin" while on our 'master' would update their
-   'topic' branch, and running "git push origin master" while on any
-   of our branches does the same.
-
- * "gitweb" learned to treat ref hierarchies other than refs/heads as
-   if they are additional branch namespaces (e.g. refs/changes/ in
-   Gerrit).
-
- * "git for-each-ref --format=..." learned a few formatting directives;
-   e.g. "%(color:red)%(HEAD)%(color:reset) %(refname:short) %(subject)".
-
- * The command string given to "git submodule foreach" is passed
-   directly to the shell, without being eval'ed.  This is a backward
-   incompatible change that may break existing users.
-
- * "git log" and friends learned the "--exclude=<glob>" option, to
-   allow people to say "list history of all branches except those that
-   match this pattern" with "git log --exclude='*/*' --branches".
-
- * "git rev-parse --parseopt" learned a new "--stuck-long" option to
-   help scripts parse options with an optional parameter.
-
- * The "--tags" option to "git fetch" no longer tells the command to
-   fetch _only_ the tags. It instead fetches tags _in addition to_
-   what are fetched by the same command line without the option.
-
-
-Performance, Internal Implementation, etc.
-
- * When parsing a 40-hex string into the object name, the string is
-   checked to see if it can be interpreted as a ref so that a warning
-   can be given for ambiguity. The code kicked in even when the
-   core.warnambiguousrefs is set to false to squelch this warning, in
-   which case the cycles spent to look at the ref namespace were an
-   expensive no-op, as the result was discarded without being used.
-
- * The naming convention of the packfiles has been updated; it used to
-   be based on the enumeration of names of the objects that are
-   contained in the pack, but now it also depends on how the packed
-   result is represented--packing the same set of objects using
-   different settings (or delta order) would produce a pack with
-   different name.
-
- * "git diff --no-index" mode used to unnecessarily attempt to read
-   the index when there is one.
-
- * The deprecated parse-options macro OPT_BOOLEAN has been removed;
-   use OPT_BOOL or OPT_COUNTUP in new code.
-
- * A few duplicate implementations of prefix/suffix string comparison
-   functions have been unified to starts_with() and ends_with().
-
- * The new PERLLIB_EXTRA makefile variable can be used to specify
-   additional directories Perl modules (e.g. the ones necessary to run
-   git-svn) are installed on the platform when building.
-
- * "git merge-base" learned the "--fork-point" mode, that implements
-   the same logic used in "git pull --rebase" to find a suitable fork
-   point out of the reflog entries for the remote-tracking branch the
-   work has been based on.  "git rebase" has the same logic that can be
-   triggered with the "--fork-point" option.
-
- * A third-party "receive-pack" (the responder to "git push") can
-   advertise the "no-thin" capability to tell "git push" not to use
-   the thin-pack optimization. Our receive-pack has always been
-   capable of accepting and fattening a thin-pack, and will continue
-   not to ask "git push" to use a non-thin pack.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v1.8.5
-------------------
-
-Unless otherwise noted, all the fixes since v1.8.5 in the maintenance
-track are contained in this release (see the maintenance releases' notes
-for details).
-
- * The pathspec matching code, while comparing two trees (e.g. "git
-   diff A B -- path1 path2") was too aggressive and failed to match
-   some paths when multiple pathspecs were involved.
-
- * "git repack --max-pack-size=8g" stopped being parsed correctly when
-   the command was reimplemented in C.
-
- * An earlier update in v1.8.4.x to "git rev-list --objects" with
-   negative ref had a performance regression.
-   (merge 200abe7 jk/mark-edges-uninteresting later to maint).
-
- * A recent update to "git send-email" broke platforms where
-   /etc/ssl/certs/ directory exists but cannot be used as SSL_ca_path
-   (e.g. Fedora rawhide).
-
- * A handful of bugs around interpreting $branch@{upstream} notation
-   and its lookalike, when $branch part has interesting characters,
-   e.g. "@", and ":", have been fixed.
-
- * "git clone" would fail to clone from a repository that has a ref
-   directly under "refs/", e.g. "refs/stash", because different
-   validation paths do different things on such a refname.  Loosen the
-   client side's validation to allow such a ref.
-
- * "git log --left-right A...B" lost the "leftness" of commits
-   reachable from A when A is a tag as a side effect of a recent
-   bugfix.  This is a regression in 1.8.4.x series.
-
- * documentations to "git pull" hinted there is an "-m" option because
-   it incorrectly shared the documentation with "git merge".
-
- * "git diff A B submod" and "git diff A B submod/" ought to have done
-   the same for a submodule "submod", but didn't.
-
- * "git clone $origin foo\bar\baz" on Windows failed to create the
-   leading directories (i.e. a moral-equivalent of "mkdir -p").
-
- * "submodule.*.update=checkout", when propagated from .gitmodules to
-   .git/config, turned into a "submodule.*.update=none", which did not
-   make much sense.
-   (merge efa8fd7 fp/submodule-checkout-mode later to maint).
-
- * The implementation of 'git stash $cmd "stash@{...}"' did not quote
-   the stash argument properly and left it split at IFS whitespace.
-
- * The "--[no-]informative-errors" options to "git daemon" were parsed
-   a bit too loosely, allowing any other string after these option
-   names.
-
- * There is no reason to have a hardcoded upper limit for the number of
-   parents of an octopus merge, created via the graft mechanism, but
-   there was.
-
- * The basic test used to leave unnecessary trash directories in the
-   t/ directory.
-   (merge 738a8be jk/test-framework-updates later to maint).
-
- * "git merge-base --octopus" used to leave cleaning up suboptimal
-   result to the caller, but now it does the clean-up itself.
-
- * A "gc" process running as a different user should be able to stop a
-   new "gc" process from starting, but it didn't.
-
- * An earlier "clean-up" introduced an unnecessary memory leak.
-
- * "git add -A" (no other arguments) in a totally empty working tree
-   used to emit an error.
-
- * "git log --decorate" did not handle a tag pointed by another tag
-   nicely.
-
- * When we figure out how many file descriptors to allocate for
-   keeping packfiles open, a system with non-working getrlimit() could
-   cause us to die(), but because we make this call only to get a
-   rough estimate of how many are available and we do not even attempt
-   to use up all available file descriptors ourselves, it is nicer to
-   fall back to a reasonable low value rather than dying.
-
- * read_sha1_file(), that is the workhorse to read the contents given
-   an object name, honoured object replacements, but there was no
-   corresponding mechanism to sha1_object_info() that was used to
-   obtain the metainfo (e.g. type & size) about the object.  This led
-   callers to weird inconsistencies.
-   (merge 663a856 cc/replace-object-info later to maint).
-
- * "git cat-file --batch=", an admittedly useless command, did not
-   behave very well.
-
- * "git rev-parse <revs> -- <paths>" did not implement the usual
-   disambiguation rules the commands in the "git log" family used in
-   the same way.
-
- * "git mv A B/", when B does not exist as a directory, should error
-   out, but it didn't.
-
- * A workaround to an old bug in glibc prior to glibc 2.17 has been
-   retired; this would remove a side effect of the workaround that
-   corrupts system error messages in non-C locales.
-
- * SSL-related options were not passed correctly to underlying socket
-   layer in "git send-email".
-
- * "git commit -v" appends the patch to the log message before
-   editing, and then removes the patch when the editor returned
-   control. However, the patch was not stripped correctly when the
-   first modified path was a submodule.
-
- * "git fetch --depth=0" was a no-op, and was silently ignored.
-   Diagnose it as an error.
-
- * Remote repository URLs expressed in scp-style host:path notation are
-   parsed more carefully (e.g. "foo/bar:baz" is local, "[::1]:/~user" asks
-   to connect to user's home directory on host at address ::1.
-
- * "git diff -- ':(icase)makefile'" was unnecessarily rejected at the
-   command line parser.
-
- * "git cat-file --batch-check=ok" did not check the existence of
-   the named object.
-
- * "git am --abort" sometimes complained about not being able to write
-   a tree with an 0{40} object in it.
-
- * Two processes creating loose objects at the same time could have
-   failed unnecessarily when the name of their new objects started
-   with the same byte value, due to a race condition.
diff --git a/third_party/git/Documentation/RelNotes/1.9.1.txt b/third_party/git/Documentation/RelNotes/1.9.1.txt
deleted file mode 100644
index 5b0602053caf..000000000000
--- a/third_party/git/Documentation/RelNotes/1.9.1.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-Git v1.9.1 Release Notes
-========================
-
-Fixes since v1.9.0
-------------------
-
- * "git clean -d pathspec" did not use the given pathspec correctly
-   and ended up cleaning too much.
-
- * "git difftool" misbehaved when the repository is bound to the
-   working tree with the ".git file" mechanism, where a textual file
-   ".git" tells us where it is.
-
- * "git push" did not pay attention to branch.*.pushremote if it is
-   defined earlier than remote.pushdefault; the order of these two
-   variables in the configuration file should not matter, but it did
-   by mistake.
-
- * Codepaths that parse timestamps in commit objects have been
-   tightened.
-
- * "git diff --external-diff" incorrectly fed the submodule directory
-   in the working tree to the external diff driver when it knew it is
-   the same as one of the versions being compared.
-
- * "git reset" needs to refresh the index when working in a working
-   tree (it can also be used to match the index to the HEAD in an
-   otherwise bare repository), but it failed to set up the working
-   tree properly, causing GIT_WORK_TREE to be ignored.
-
- * "git check-attr" when working on a repository with a working tree
-   did not work well when the working tree was specified via the
-   --work-tree (and obviously with --git-dir) option.
-
- * "merge-recursive" was broken in 1.7.7 era and stopped working in
-   an empty (temporary) working tree, when there are renames
-   involved.  This has been corrected.
-
- * "git rev-parse" was loose in rejecting command line arguments
-   that do not make sense, e.g. "--default" without the required
-   value for that option.
-
- * include.path variable (or any variable that expects a path that
-   can use ~username expansion) in the configuration file is not a
-   boolean, but the code failed to check it.
-
- * "git diff --quiet -- pathspec1 pathspec2" sometimes did not return
-   correct status value.
-
- * Attempting to deepen a shallow repository by fetching over smart
-   HTTP transport failed in the protocol exchange, when no-done
-   extension was used.  The fetching side waited for the list of
-   shallow boundary commits after the sending end stopped talking to
-   it.
-
- * Allow "git cmd path/", when the 'path' is where a submodule is
-   bound to the top-level working tree, to match 'path', despite the
-   extra and unnecessary trailing slash (such a slash is often
-   given by command line completion).
diff --git a/third_party/git/Documentation/RelNotes/1.9.2.txt b/third_party/git/Documentation/RelNotes/1.9.2.txt
deleted file mode 100644
index 47a34ca964da..000000000000
--- a/third_party/git/Documentation/RelNotes/1.9.2.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-Git v1.9.2 Release Notes
-========================
-
-Fixes since v1.9.1
-------------------
-
- * Documentation and in-code comments had many instances of mistaken
-   use of "nor", which have been corrected.
-
- * "git fetch --prune", when the right-hand-side of multiple fetch
-   refspecs overlap (e.g. storing "refs/heads/*" to
-   "refs/remotes/origin/*", while storing "refs/frotz/*" to
-   "refs/remotes/origin/fr/*"), aggressively thought that lack of
-   "refs/heads/fr/otz" on the origin site meant we should remove
-   "refs/remotes/origin/fr/otz" from us, without checking their
-   "refs/frotz/otz" first.
-
-   Note that such a configuration is inherently unsafe (think what
-   should happen when "refs/heads/fr/otz" does appear on the origin
-   site), but that is not a reason not to be extra careful.
-
- * "git update-ref --stdin" did not fail a request to create a ref
-   when the ref already existed.
-
- * "git diff --no-index -Mq a b" fell into an infinite loop.
-
- * When it is not necessary to edit a commit log message (e.g. "git
-   commit -m" is given a message without specifying "-e"), we used to
-   disable the spawning of the editor by overriding GIT_EDITOR, but
-   this means all the uses of the editor, other than to edit the
-   commit log message, are also affected.
-
- * "git status --porcelain --branch" showed its output with labels
-   "ahead/behind/gone" translated to the user's locale.
-
- * "git mv" that moves a submodule forgot to adjust the array that
-   uses to keep track of which submodules were to be moved to update
-   its configuration.
-
- * Length limit for the pathname used when removing a path in a deep
-   subdirectory has been removed to avoid buffer overflows.
-
- * The test helper lib-terminal always run an actual test_expect_*
-   when included, which screwed up with the use of skil-all that may
-   have to be done later.
-
- * "git index-pack" used a wrong variable to name the keep-file in an
-   error message when the file cannot be written or closed.
-
- * "rebase -i" produced a broken insn sheet when the title of a commit
-   happened to contain '\n' (or ended with '\c') due to a careless use
-   of 'echo'.
-
- * There were a few instances of 'git-foo' remaining in the
-   documentation that should have been spelled 'git foo'.
-
- * Serving objects from a shallow repository needs to write a
-   new file to hold the temporary shallow boundaries but it was not
-   cleaned when we exit due to die() or a signal.
-
- * When "git stash pop" stops after failing to apply the stash
-   (e.g. due to conflicting changes), the stash is not dropped. State
-   that explicitly in the output to let the users know.
-
- * The labels in "git status" output that describe the nature of
-   conflicts (e.g. "both deleted") were limited to 20 bytes, which was
-   too short for some l10n (e.g. fr).
diff --git a/third_party/git/Documentation/RelNotes/1.9.3.txt b/third_party/git/Documentation/RelNotes/1.9.3.txt
deleted file mode 100644
index 17b05ca7b546..000000000000
--- a/third_party/git/Documentation/RelNotes/1.9.3.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Git v1.9.3 Release Notes
-========================
-
-Fixes since v1.9.2
-------------------
-
- * "git p4" dealing with changes in binary files were broken by a
-   change in 1.9 release.
-
- * The shell prompt script (in contrib/), when using the PROMPT_COMMAND
-   interface, used an unsafe construct when showing the branch name in
-   $PS1.
-
- * "git rebase" used a POSIX shell construct FreeBSD /bin/sh does not
-   work well with.
-
- * Some more Unicode codepoints defined in Unicode 6.3 as having
-   zero width have been taught to our display column counting logic.
-
- * Some tests used shell constructs that did not work well on
-   FreeBSD.
diff --git a/third_party/git/Documentation/RelNotes/1.9.4.txt b/third_party/git/Documentation/RelNotes/1.9.4.txt
deleted file mode 100644
index e1d183543684..000000000000
--- a/third_party/git/Documentation/RelNotes/1.9.4.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Git v1.9.4 Release Notes
-========================
-
-Fixes since v1.9.3
-------------------
-
- * Commands that take pathspecs on the command line misbehaved when
-   the pathspec is given as an absolute pathname (which is a
-   practice not particularly encouraged) that points at a symbolic
-   link in the working tree.
-
- * An earlier fix to the shell prompt script (in contrib/) for using
-   the PROMPT_COMMAND interface did not correctly check if the extra
-   code path needs to trigger, causing the branch name not to appear
-   when 'promptvars' option is disabled in bash or PROMPT_SUBST is
-   unset in zsh.
diff --git a/third_party/git/Documentation/RelNotes/1.9.5.txt b/third_party/git/Documentation/RelNotes/1.9.5.txt
deleted file mode 100644
index 8d6ac0cf5357..000000000000
--- a/third_party/git/Documentation/RelNotes/1.9.5.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Git v1.9.5 Release Notes
-========================
-
-Fixes since v1.9.4
-------------------
-
- * We used to allow committing a path ".Git/config" with Git that is
-   running on a case sensitive filesystem, but an attempt to check out
-   such a path with Git that runs on a case insensitive filesystem
-   would have clobbered ".git/config", which is definitely not what
-   the user would have expected.  Git now prevents you from tracking
-   a path with ".Git" (in any case combination) as a path component.
-
- * On Windows, certain path components that are different from ".git"
-   are mapped to ".git", e.g. "git~1/config" is treated as if it were
-   ".git/config".  HFS+ has a similar issue, where certain unicode
-   codepoints are ignored, e.g. ".g\u200cit/config" is treated as if
-   it were ".git/config".  Pathnames with these potential issues are
-   rejected on the affected systems.  Git on systems that are not
-   affected by this issue (e.g. Linux) can also be configured to
-   reject them to ensure cross platform interoperability of the hosted
-   projects.
-
- * "git fsck" notices a tree object that records such a path that can
-   be confused with ".git", and with receive.fsckObjects configuration
-   set to true, an attempt to "git push" such a tree object will be
-   rejected.  Such a path may not be a problem on a well behaving
-   filesystem but in order to protect those on HFS+ and on case
-   insensitive filesystems, this check is enabled on all platforms.
-
-A big "thanks!" for bringing this issue to us goes to our friends in
-the Mercurial land, namely, Matt Mackall and Augie Fackler.
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.0.0.txt b/third_party/git/Documentation/RelNotes/2.0.0.txt
deleted file mode 100644
index 2617372a0c50..000000000000
--- a/third_party/git/Documentation/RelNotes/2.0.0.txt
+++ /dev/null
@@ -1,364 +0,0 @@
-Git v2.0 Release Notes
-======================
-
-Backward compatibility notes
-----------------------------
-
-When "git push [$there]" does not say what to push, we have used the
-traditional "matching" semantics so far (all your branches were sent
-to the remote as long as there already are branches of the same name
-over there).  In Git 2.0, the default is now the "simple" semantics,
-which pushes:
-
- - only the current branch to the branch with the same name, and only
-   when the current branch is set to integrate with that remote
-   branch, if you are pushing to the same remote as you fetch from; or
-
- - only the current branch to the branch with the same name, if you
-   are pushing to a remote that is not where you usually fetch from.
-
-You can use the configuration variable "push.default" to change
-this.  If you are an old-timer who wants to keep using the
-"matching" semantics, you can set the variable to "matching", for
-example.  Read the documentation for other possibilities.
-
-When "git add -u" and "git add -A" are run inside a subdirectory
-without specifying which paths to add on the command line, they
-operate on the entire tree for consistency with "git commit -a" and
-other commands (these commands used to operate only on the current
-subdirectory).  Say "git add -u ." or "git add -A ." if you want to
-limit the operation to the current directory.
-
-"git add <path>" is the same as "git add -A <path>" now, so that
-"git add dir/" will notice paths you removed from the directory and
-record the removal.  In older versions of Git, "git add <path>" used
-to ignore removals.  You can say "git add --ignore-removal <path>" to
-add only added or modified paths in <path>, if you really want to.
-
-The "-q" option to "git diff-files", which does *NOT* mean "quiet",
-has been removed (it told Git to ignore deletion, which you can do
-with "git diff-files --diff-filter=d").
-
-"git request-pull" lost a few "heuristics" that often led to mistakes.
-
-The default prefix for "git svn" has changed in Git 2.0.  For a long
-time, "git svn" created its remote-tracking branches directly under
-refs/remotes, but it now places them under refs/remotes/origin/ unless
-it is told otherwise with its "--prefix" option.
-
-
-Updates since v1.9 series
--------------------------
-
-UI, Workflows & Features
-
- * The "multi-mail" post-receive hook (in contrib/) has been updated
-   to a more recent version from upstream.
-
- * The "remote-hg/bzr" remote-helper interfaces (used to be in
-   contrib/) are no more.  They are now maintained separately as
-   third-party plug-ins in their own repositories.
-
- * "git gc --aggressive" learned "--depth" option and
-   "gc.aggressiveDepth" configuration variable to allow use of a less
-   insane depth than the built-in default value of 250.
-
- * "git log" learned the "--show-linear-break" option to show where a
-   single strand-of-pearls is broken in its output.
-
- * The "rev-parse --parseopt" mechanism used by scripted Porcelains to
-   parse command-line options and to give help text learned to take
-   the argv-help (the placeholder string for an option parameter,
-   e.g. "key-id" in "--gpg-sign=<key-id>").
-
- * The pattern to find where the function begins in C/C++ used in
-   "diff" and "grep -p" has been updated to improve viewing C++
-   sources.
-
- * "git rebase" learned to interpret a lone "-" as "@{-1}", the
-   branch that we were previously on.
-
- * "git commit --cleanup=<mode>" learned a new mode, scissors.
-
- * "git tag --list" output can be sorted using "version sort" with
-   "--sort=version:refname".
-
- * Discard the accumulated "heuristics" to guess from which branch the
-   result wants to be pulled from and make sure that what the end user
-   specified is not second-guessed by "git request-pull", to avoid
-   mistakes.  When you pushed out your 'master' branch to your public
-   repository as 'for-linus', use the new "master:for-linus" syntax to
-   denote the branch to be pulled.
-
- * "git grep" learned to behave in a way similar to native grep when
-   "-h" (no header) and "-c" (count) options are given.
-
- * "git push" via transport-helper interface has been updated to
-   allow forced ref updates in a way similar to the natively
-   supported transports.
-
- * The "simple" mode is the default for "git push".
-
- * "git add -u" and "git add -A", when run without any pathspec, is a
-   tree-wide operation even when run inside a subdirectory of a
-   working tree.
-
- * "git add <path>" is the same as "git add -A <path>" now.
-
- * "core.statinfo" configuration variable, which is a
-   never-advertised synonym to "core.checkstat", has been removed.
-
- * The "-q" option to "git diff-files", which does *NOT* mean
-   "quiet", has been removed (it told Git to ignore deletion, which
-   you can do with "git diff-files --diff-filter=d").
-
- * Server operators can loosen the "tips of refs only" restriction for
-   the remote archive service with the uploadarchive.allowUnreachable
-   configuration option.
-
- * The progress indicators from various time-consuming commands have
-   been marked for i18n/l10n.
-
- * "git notes -C <blob>" diagnoses as an error an attempt to use an
-   object that is not a blob.
-
- * "git config" learned to read from the standard input when "-" is
-   given as the value to its "--file" parameter (attempting an
-   operation to update the configuration in the standard input is
-   rejected, of course).
-
- * Trailing whitespaces in .gitignore files, unless they are quoted
-   for fnmatch(3), e.g. "path\ ", are warned and ignored.  Strictly
-   speaking, this is a backward-incompatible change, but very unlikely
-   to bite any sane user and adjusting should be obvious and easy.
-
- * Many commands that create commits, e.g. "pull" and "rebase",
-   learned to take the "--gpg-sign" option on the command line.
-
- * "git commit" can be told to always GPG sign the resulting commit
-   by setting the "commit.gpgsign" configuration variable to "true"
-   (the command-line option "--no-gpg-sign" should override it).
-
- * "git pull" can be told to only accept fast-forward by setting the
-   new "pull.ff" configuration variable.
-
- * "git reset" learned the "-N" option, which does not reset the index
-   fully for paths the index knows about but the tree-ish the command
-   resets to does not (these paths are kept as intend-to-add entries).
-
-
-Performance, Internal Implementation, etc.
-
- * The compilation options to port to AIX and to MSVC have been
-   updated.
-
- * We started using wildmatch() in place of fnmatch(3) a few releases
-   ago; complete the process and stop using fnmatch(3).
-
- * Uses of curl's "multi" interface and "easy" interface do not mix
-   well when we attempt to reuse outgoing connections.  Teach the RPC
-   over HTTP code, used in the smart HTTP transport, not to use the
-   "easy" interface.
-
- * The bitmap-index feature from JGit has been ported, which should
-   significantly improve performance when serving objects from a
-   repository that uses it.
-
- * The way "git log --cc" shows a combined diff against multiple
-   parents has been optimized.
-
- * The prefixcmp() and suffixcmp() functions are gone.  Use
-   starts_with() and ends_with(), and also consider if skip_prefix()
-   suits your needs better when using the former.
-
-
-Also contains various documentation updates and code clean-ups.  Many
-of them came from flurry of activities as GSoC candidate microproject
-exercises.
-
-
-Fixes since v1.9 series
------------------------
-
-Unless otherwise noted, all the fixes since v1.9 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * "git p4" was broken in 1.9 release to deal with changes in binary
-   files.
-   (merge 749b668 cl/p4-use-diff-tree later to maint).
-
- * The shell prompt script (in contrib/), when using the PROMPT_COMMAND
-   interface, used an unsafe construct when showing the branch name in
-   $PS1.
-   (merge 1e4119c8 rh/prompt-pcmode-avoid-eval-on-refname later to maint).
-
- * "git rebase" used a POSIX shell construct FreeBSD's /bin/sh does not
-   work well with.
-   (merge 8cd6596 km/avoid-non-function-return-in-rebase later to maint).
-
- * zsh prompt (in contrib/) leaked unnecessary error messages.
-
- * Bash completion (in contrib/) did not complete the refs and remotes
-   correctly given "git pu<TAB>" when "pu" is aliased to "push".
-
- * Some more Unicode code points, defined in Unicode 6.3 as having zero
-   width, have been taught to our display column counting logic.
-   (merge d813ab9 tb/unicode-6.3-zero-width later to maint).
-
- * Some tests used shell constructs that did not work well on FreeBSD
-   (merge ff7a1c6 km/avoid-bs-in-shell-glob later to maint).
-   (merge 00764ca km/avoid-cp-a later to maint).
-
- * "git update-ref --stdin" did not fail a request to create a ref
-   when the ref already existed.
-   (merge b9d56b5 mh/update-ref-batch-create-fix later to maint).
-
- * "git diff --no-index -Mq a b" fell into an infinite loop.
-   (merge ad1c3fb jc/fix-diff-no-index-diff-opt-parse later to maint).
-
- * "git fetch --prune", when the right-hand side of multiple fetch
-   refspecs overlap (e.g. storing "refs/heads/*" to
-   "refs/remotes/origin/*", while storing "refs/frotz/*" to
-   "refs/remotes/origin/fr/*"), aggressively thought that lack of
-   "refs/heads/fr/otz" on the origin site meant we should remove
-   "refs/remotes/origin/fr/otz" from us, without checking their
-   "refs/frotz/otz" first.
-
-   Note that such a configuration is inherently unsafe (think what
-   should happen when "refs/heads/fr/otz" does appear on the origin
-   site), but that is not a reason not to be extra careful.
-   (merge e6f6371 cn/fetch-prune-overlapping-destination later to maint).
-
- * "git status --porcelain --branch" showed its output with labels
-   "ahead/behind/gone" translated to the user's locale.
-   (merge 7a76c28 mm/status-porcelain-format-i18n-fix later to maint).
-
- * A stray environment variable $prefix could have leaked into and
-   affected the behaviour of the "subtree" script (in contrib/).
-
- * When it is not necessary to edit a commit log message (e.g. "git
-   commit -m" is given a message without specifying "-e"), we used to
-   disable the spawning of the editor by overriding GIT_EDITOR, but
-   this means all the uses of the editor, other than to edit the
-   commit log message, are also affected.
-   (merge b549be0 bp/commit-p-editor later to maint).
-
- * "git mv" that moves a submodule forgot to adjust the array that
-   uses to keep track of which submodules were to be moved to update
-   its configuration.
-   (merge fb8a4e8 jk/mv-submodules-fix later to maint).
-
- * Length limit for the pathname used when removing a path in a deep
-   subdirectory has been removed to avoid buffer overflows.
-   (merge 2f29e0c mh/remove-subtree-long-pathname-fix later to maint).
-
- * The test helper lib-terminal always run an actual test_expect_*
-   when included, which screwed up with the use of skil-all that may
-   have to be done later.
-   (merge 7e27173 jk/lib-terminal-lazy later to maint).
-
- * "git index-pack" used a wrong variable to name the keep-file in an
-   error message when the file cannot be written or closed.
-   (merge de983a0 nd/index-pack-error-message later to maint).
-
- * "rebase -i" produced a broken insn sheet when the title of a commit
-   happened to contain '\n' (or ended with '\c') due to a careless use
-   of 'echo'.
-   (merge cb1aefd us/printf-not-echo later to maint).
-
- * There were a few instances of 'git-foo' remaining in the
-   documentation that should have been spelled 'git foo'.
-   (merge 3c3e6f5 rr/doc-merge-strategies later to maint).
-
- * Serving objects from a shallow repository needs to write a
-   new file to hold the temporary shallow boundaries, but it was not
-   cleaned when we exit due to die() or a signal.
-   (merge 7839632 jk/shallow-update-fix later to maint).
-
- * When "git stash pop" stops after failing to apply the stash
-   (e.g. due to conflicting changes), the stash is not dropped. State
-   that explicitly in the output to let the users know.
-   (merge 2d4c993 jc/stash-pop-not-popped later to maint).
-
- * The labels in "git status" output that describe the nature of
-   conflicts (e.g. "both deleted") were limited to 20 bytes, which was
-   too short for some l10n (e.g. fr).
-   (merge c7cb333 jn/wt-status later to maint).
-
- * "git clean -d pathspec" did not use the given pathspec correctly
-   and ended up cleaning too much.
-   (merge 1f2e108 jk/clean-d-pathspec later to maint).
-
- * "git difftool" misbehaved when the repository is bound to the
-   working tree with the ".git file" mechanism, where a textual file
-   ".git" tells us where it is.
-   (merge fcfec8b da/difftool-git-files later to maint).
-
- * "git push" did not pay attention to "branch.*.pushremote" if it is
-   defined earlier than "remote.pushdefault"; the order of these two
-   variables in the configuration file should not matter, but it did
-   by mistake.
-   (merge 98b406f jk/remote-pushremote-config-reading later to maint).
-
- * Code paths that parse timestamps in commit objects have been
-   tightened.
-   (merge f80d1f9 jk/commit-dates-parsing-fix later to maint).
-
- * "git diff --external-diff" incorrectly fed the submodule directory
-   in the working tree to the external diff driver when it knew that it
-   is the same as one of the versions being compared.
-   (merge aba4727 tr/diff-submodule-no-reuse-worktree later to maint).
-
- * "git reset" needs to refresh the index when working in a working
-   tree (it can also be used to match the index to the HEAD in an
-   otherwise bare repository), but it failed to set up the working
-   tree properly, causing GIT_WORK_TREE to be ignored.
-   (merge b7756d4 nd/reset-setup-worktree later to maint).
-
- * "git check-attr" when working on a repository with a working tree
-   did not work well when the working tree was specified via the
-   "--work-tree" (and obviously with "--git-dir") option.
-   (merge cdbf623 jc/check-attr-honor-working-tree later to maint).
-
- * "merge-recursive" was broken in 1.7.7 era and stopped working in
-   an empty (temporary) working tree, when there are renames
-   involved.  This has been corrected.
-   (merge 6e2068a bk/refresh-missing-ok-in-merge-recursive later to maint.)
-
- * "git rev-parse" was loose in rejecting command-line arguments
-   that do not make sense, e.g. "--default" without the required
-   value for that option.
-   (merge a43219f ds/rev-parse-required-args later to maint.)
-
- * "include.path" variable (or any variable that expects a path that
-   can use ~username expansion) in the configuration file is not a
-   boolean, but the code failed to check it.
-   (merge 67beb60 jk/config-path-include-fix later to maint.)
-
- * Commands that take pathspecs on the command line misbehaved when
-   the pathspec is given as an absolute pathname (which is a
-   practice not particularly encouraged) that points at a symbolic
-   link in the working tree.
-   (merge 6127ff6 mw/symlinks later to maint.)
-
- * "git diff --quiet -- pathspec1 pathspec2" sometimes did not return
-   the correct status value.
-   (merge f34b205 nd/diff-quiet-stat-dirty later to maint.)
-
- * Attempting to deepen a shallow repository by fetching over smart
-   HTTP transport failed in the protocol exchange, when the no-done
-   extension was used.  The fetching side waited for the list of
-   shallow boundary commits after the sending side stopped talking to
-   it.
-   (merge 0232852 nd/http-fetch-shallow-fix later to maint.)
-
- * Allow "git cmd path/", when the 'path' is where a submodule is
-   bound to the top-level working tree, to match 'path', despite the
-   extra and unnecessary trailing slash (such a slash is often
-   given by command-line completion).
-   (merge 2e70c01 nd/submodule-pathspec-ending-with-slash later to maint.)
-
- * Documentation and in-code comments had many instances of mistaken
-   use of "nor", which have been corrected.
-   (merge 235e8d5 jl/nor-or-nand-and later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.0.1.txt b/third_party/git/Documentation/RelNotes/2.0.1.txt
deleted file mode 100644
index ce5579db3e7c..000000000000
--- a/third_party/git/Documentation/RelNotes/2.0.1.txt
+++ /dev/null
@@ -1,115 +0,0 @@
-Git v2.0.1 Release Notes
-========================
-
- * We used to unconditionally disable the pager in the pager process
-   we spawn to feed out output, but that prevented people who want to
-   run "less" within "less" from doing so.
-
- * Tools that read diagnostic output in our standard error stream do
-   not want to see terminal control sequence (e.g. erase-to-eol).
-   Detect them by checking if the standard error stream is connected
-   to a tty.
- * Reworded the error message given upon a failure to open an existing
-   loose object file due to e.g. permission issues; it was reported as
-   the object being corrupt, but that is not quite true.
-
- * "git log -2master" is a common typo that shows two commits starting
-   from whichever random branch that is not 'master' that happens to
-   be checked out currently.
-
- * The "%<(10,trunc)%s" pretty format specifier in the log family of
-   commands is used to truncate the string to a given length (e.g. 10
-   in the example) with padding to column-align the output, but did
-   not take into account that number of bytes and number of display
-   columns are different.
-
- * The "mailmap.file" configuration option did not support the tilde
-   expansion (i.e. ~user/path and ~/path).
-
- * The completion scripts (in contrib/) did not know about quite a few
-   options that are common between "git merge" and "git pull", and a
-   couple of options unique to "git merge".
-
- * "--ignore-space-change" option of "git apply" ignored the spaces
-   at the beginning of line too aggressively, which is inconsistent
-   with the option of the same name "diff" and "git diff" have.
-
- * "git blame" miscounted number of columns needed to show localized
-   timestamps, resulting in jaggy left-side-edge of the source code
-   lines in its output.
-
- * "git blame" assigned the blame to the copy in the working-tree if
-   the repository is set to core.autocrlf=input and the file used CRLF
-   line endings.
-
- * "git commit --allow-empty-message -C $commit" did not work when the
-   commit did not have any log message.
-
- * "git diff --find-copies-harder" sometimes pretended as if the mode
-   bits have changed for paths that are marked with assume-unchanged
-   bit.
-
- * "git format-patch" did not enforce the rule that the "--follow"
-   option from the log/diff family of commands must be used with
-   exactly one pathspec.
-
- * "git gc --auto" was recently changed to run in the background to
-   give control back early to the end-user sitting in front of the
-   terminal, but it forgot that housekeeping involving reflogs should
-   be done without other processes competing for accesses to the refs.
-
- * "git grep -O" to show the lines that hit in the pager did not work
-   well with case insensitive search.  We now spawn "less" with its
-   "-I" option when it is used as the pager (which is the default).
-
- * We used to disable threaded "git index-pack" on platforms without
-   thread-safe pread(); use a different workaround for such
-   platforms to allow threaded "git index-pack".
-
- * The error reporting from "git index-pack" has been improved to
-   distinguish missing objects from type errors.
-
- * "git mailinfo" used to read beyond the end of header string while
-   parsing an incoming e-mail message to extract the patch.
-
- * On a case insensitive filesystem, merge-recursive incorrectly
-   deleted the file that is to be renamed to a name that is the same
-   except for case differences.
-
- * "git pack-objects" unnecessarily copied the previous contents when
-   extending the hashtable, even though it will populate the table
-   from scratch anyway.
-
- * "git rerere forget" did not work well when merge.conflictstyle
-   was set to a non-default value.
-
- * "git remote rm" and "git remote prune" can involve removing many
-   refs at once, which is not a very efficient thing to do when very
-   many refs exist in the packed-refs file.
-
- * "git log --exclude=<glob> --all | git shortlog" worked as expected,
-   but "git shortlog --exclude=<glob> --all", which is supposed to be
-   identical to the above pipeline, was not accepted at the command
-   line argument parser level.
-
- * The autostash mode of "git rebase -i" did not restore the dirty
-   working tree state if the user aborted the interactive rebase by
-   emptying the insn sheet.
-
- * "git show -s" (i.e. show log message only) used to incorrectly emit
-   an extra blank line after a merge commit.
-
- * "git status", even though it is a read-only operation, tries to
-   update the index with refreshed lstat(2) info to optimize future
-   accesses to the working tree opportunistically, but this could
-   race with a "read-write" operation that modify the index while it
-   is running.  Detect such a race and avoid overwriting the index.
-
- * "git status" (and "git commit") behaved as if changes in a modified
-   submodule are not there if submodule.*.ignore configuration is set,
-   which was misleading.  The configuration is only to unclutter diff
-   output during the course of development, and should not to hide
-   changes in the "status" output to cause the users forget to commit
-   them.
-
- * The mode to run tests with HTTP server tests disabled was broken.
diff --git a/third_party/git/Documentation/RelNotes/2.0.2.txt b/third_party/git/Documentation/RelNotes/2.0.2.txt
deleted file mode 100644
index 8e8321b2ef3b..000000000000
--- a/third_party/git/Documentation/RelNotes/2.0.2.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Git v2.0.2 Release Notes
-========================
-
- * Documentation for "git submodule sync" forgot to say that the subcommand
-   can take the "--recursive" option.
-
- * Mishandling of patterns in .gitignore that has trailing SPs quoted
-   with backslashes (e.g. ones that end with "\ ") have been
-   corrected.
-
- * Recent updates to "git repack" started to duplicate objects that
-   are in packfiles marked with .keep flag into the new packfile by
-   mistake.
-
- * "git clone -b brefs/tags/bar" would have mistakenly thought we were
-   following a single tag, even though it was a name of the branch,
-   because it incorrectly used strstr().
-
- * "%G" (nothing after G) is an invalid pretty format specifier, but
-   the parser did not notice it as garbage.
-
- * Code to avoid adding the same alternate object store twice was
-   subtly broken for a long time, but nobody seems to have noticed.
-
- * A handful of code paths had to read the commit object more than
-   once when showing header fields that are usually not parsed.  The
-   internal data structure to keep track of the contents of the commit
-   object has been updated to reduce the need for this double-reading,
-   and to allow the caller find the length of the object.
-
- * During "git rebase --merge", a conflicted patch could not be
-   skipped with "--skip" if the next one also conflicted.
diff --git a/third_party/git/Documentation/RelNotes/2.0.3.txt b/third_party/git/Documentation/RelNotes/2.0.3.txt
deleted file mode 100644
index 4047b46bbe8d..000000000000
--- a/third_party/git/Documentation/RelNotes/2.0.3.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Git v2.0.3 Release Notes
-========================
-
- * An ancient rewrite passed a wrong pointer to a curl library
-   function in a rarely used code path.
-
- * "filter-branch" left an empty single-parent commit that results when
-   all parents of a merge commit gets mapped to the same commit, even
-   under "--prune-empty".
-
- * "log --show-signature" incorrectly decided the color to paint a
-   mergetag that was and was not correctly validated.
-
- * "log --show-signature" did not pay attention to "--graph" option.
-
-Also a lot of fixes to the tests and some updates to the docs are
-included.
diff --git a/third_party/git/Documentation/RelNotes/2.0.4.txt b/third_party/git/Documentation/RelNotes/2.0.4.txt
deleted file mode 100644
index 7e340921a267..000000000000
--- a/third_party/git/Documentation/RelNotes/2.0.4.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.0.4 Release Notes
-========================
-
- * An earlier update to v2.0.2 broken output from "git diff-tree",
-   which is fixed in this release.
diff --git a/third_party/git/Documentation/RelNotes/2.0.5.txt b/third_party/git/Documentation/RelNotes/2.0.5.txt
deleted file mode 100644
index 3a16f697e818..000000000000
--- a/third_party/git/Documentation/RelNotes/2.0.5.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Git v2.0.5 Release Notes
-========================
-
-Fixes since v2.0.4
-------------------
-
- * We used to allow committing a path ".Git/config" with Git that is
-   running on a case sensitive filesystem, but an attempt to check out
-   such a path with Git that runs on a case insensitive filesystem
-   would have clobbered ".git/config", which is definitely not what
-   the user would have expected.  Git now prevents you from tracking
-   a path with ".Git" (in any case combination) as a path component.
-
- * On Windows, certain path components that are different from ".git"
-   are mapped to ".git", e.g. "git~1/config" is treated as if it were
-   ".git/config".  HFS+ has a similar issue, where certain unicode
-   codepoints are ignored, e.g. ".g\u200cit/config" is treated as if
-   it were ".git/config".  Pathnames with these potential issues are
-   rejected on the affected systems.  Git on systems that are not
-   affected by this issue (e.g. Linux) can also be configured to
-   reject them to ensure cross platform interoperability of the hosted
-   projects.
-
- * "git fsck" notices a tree object that records such a path that can
-   be confused with ".git", and with receive.fsckObjects configuration
-   set to true, an attempt to "git push" such a tree object will be
-   rejected.  Such a path may not be a problem on a well behaving
-   filesystem but in order to protect those on HFS+ and on case
-   insensitive filesystems, this check is enabled on all platforms.
-
-A big "thanks!" for bringing this issue to us goes to our friends in
-the Mercurial land, namely, Matt Mackall and Augie Fackler.
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.1.0.txt b/third_party/git/Documentation/RelNotes/2.1.0.txt
deleted file mode 100644
index ae4753728eff..000000000000
--- a/third_party/git/Documentation/RelNotes/2.1.0.txt
+++ /dev/null
@@ -1,391 +0,0 @@
-Git v2.1 Release Notes
-======================
-
-Backward compatibility notes
-----------------------------
-
- * The default value we give to the environment variable LESS has been
-   changed from "FRSX" to "FRX", losing "S" (chop long lines instead
-   of wrapping).  Existing users who prefer not to see line-wrapped
-   output may want to set
-
-     $ git config core.pager "less -S"
-
-   to restore the traditional behaviour.  It is expected that people
-   find output from most subcommands easier to read with the new
-   default, except for "blame" which tends to produce really long
-   lines.  To override the new default only for "git blame", you can
-   do this:
-
-     $ git config pager.blame "less -S"
-
- * A few disused directories in contrib/ have been retired.
-
-
-Updates since v2.0
-------------------
-
-UI, Workflows & Features
-
- * Since the very beginning of Git, we gave the LESS environment a
-   default value "FRSX" when we spawn "less" as the pager.  "S" (chop
-   long lines instead of wrapping) has been removed from this default
-   set of options, because it is more or less a personal taste thing,
-   as opposed to the others that have good justifications (i.e. "R" is
-   very much justified because many kinds of output we produce are
-   colored and "FX" is justified because output we produce is often
-   shorter than a page).
-
- * The logic and data used to compute the display width needed for
-   UTF-8 strings have been updated to match Unicode 7.0 better.
-
- * HTTP-based transports learned to better propagate the error messages from
-   the webserver to the client coming over the HTTP transport.
-
- * The completion script for bash (in contrib/) has been updated to
-   better handle aliases that define a complex sequence of commands.
-
- * The "core.preloadindex" configuration variable is enabled by default,
-   allowing modern platforms to take advantage of their
-   multiple cores.
-
- * "git clone" applies the "if cloning from a local disk, physically
-   copy the repository using hardlinks, unless otherwise told not to with
-   --no-local" optimization when the url.*.insteadOf mechanism rewrites a
-   remote-repository "git clone $URL" into a
-   clone from a local disk.
-
- * "git commit --date=<date>" option learned more
-   timestamp formats, including "--date=now".
-
- * The `core.commentChar` configuration variable is used to specify a
-   custom comment character (other than the default "#") for
-   the commit message editor.  This can be set to `auto` to attempt to
-   choose a different character that does not conflict with any that
-   already starts a line in the message being edited, for cases like
-   "git commit --amend".
-
- * "git format-patch" learned --signature-file=<file> to add the contents
-   of a file as a signature to the mail message it produces.
-
- * "git grep" learned the grep.fullname configuration variable to force
-   "--full-name" to be the default.  This may cause regressions for
-   scripted users who do not expect this new behaviour.
-
- * "git imap-send" learned to ask the credential helper for auth
-   material.
-
- * "git log" and friends now understand the value "auto" for the
-   "log.decorate" configuration variable to enable the "--decorate"
-   option automatically when the output is sent to tty.
-
- * "git merge" without an argument, even when there is an upstream
-   defined for the current branch, refused to run until
-   merge.defaultToUpstream is set to true.  Flip the default of that
-   configuration variable to true.
-
- * "git mergetool" learned to drive the vimdiff3 backend.
-
- * mergetool.prompt used to default to 'true', always asking "do you
-   really want to run the tool on this path?".  The default has been
-   changed to 'false'.  However, the prompt will still appear if
-   mergetool used its autodetection system to guess which tool to use.
-   Users who explicitly specify or configure a tool will no longer see
-   the prompt by default.
-
-   Strictly speaking, this is a backward incompatible change and
-   users need to explicitly set the variable to 'true' if they want
-   to be prompted to confirm running the tool on each path.
-
- * "git replace" learned the "--edit" subcommand to create a
-   replacement by editing an existing object.
-
- * "git replace" learned a "--graft" option to rewrite the parents of a
-   commit.
-
- * "git send-email" learned "--to-cover" and "--cc-cover" options, to
-   tell it to copy To: and Cc: headers found in the first input file
-   when emitting later input files.
-
- * "git svn" learned to cope with malformed timestamps with only one
-   digit in the hour part, e.g. 2014-01-07T5:01:02.048176Z, emitted
-   by some broken subversion server implementations.
-
- * "git tag" when editing the tag message shows the name of the tag
-   being edited as a comment in the editor.
-
- * "git tag" learned to pay attention to "tag.sort" configuration, to
-   be used as the default sort order when no --sort=<value> option
-   is given.
-
- * A new "git verify-commit" command, to check GPG signatures in signed
-   commits, in a way similar to "git verify-tag" is used to check
-   signed tags, was added.
-
-
-Performance, Internal Implementation, etc.
-
- * Build procedure for 'subtree' (in contrib/) has been cleaned up.
-
- * Support for the profile-feedback build, which has
-   bit-rotted for quite a while, has been updated.
-
- * An experimental format to use two files (the base file and
-   incremental changes relative to it) to represent the index has been
-   introduced; this may reduce I/O cost of rewriting a large index
-   when only small part of the working tree changes.
-
- * Effort to shrink the size of patches Windows folks maintain on top
-   by upstreaming them continues.  More tests that are not applicable
-   to the Windows environment are identified and either skipped or
-   made more portable.
-
- * Eradication of "test $condition -a $condition" from our scripts
-   continues.
-
- * The `core.deltabasecachelimit` used to default to 16 MiB , but this
-   proved to be too small, and has been bumped to 96 MiB.
-
- * "git blame" has been optimized greatly by reorganising the data
-   structure that is used to keep track of the work to be done.
-
- * "git diff" that compares 3-or-more trees (e.g. parents and the
-   result of a merge) has been optimized.
-
- * The API to update/delete references are being converted to handle
-   updates to multiple references in a transactional way.  As an
-   example, "update-ref --stdin [-z]" has been updated to use this
-   API.
-
- * skip_prefix() and strip_suffix() API functions are used a lot more
-   widely throughout the codebase now.
-
- * Parts of the test scripts can be skipped by using a range notation,
-   e.g. "sh t1234-test.sh --run='1-4 6 8-'" to omit test piece 5 and 7
-   and run everything else.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.0
-----------------
-
-Unless otherwise noted, all the fixes since v2.0 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * We used to unconditionally disable the pager in the pager process
-   we spawn to feed out output, but that prevented people who want to
-   run "less" within "less" from doing so.
-   (merge c0459ca je/pager-do-not-recurse later to maint).
-
- * Tools that read diagnostic output in our standard error stream do
-   not want to see terminal control sequence (e.g. erase-to-eol).
-   Detect them by checking if the standard error stream is connected
-   to a tty.
-   (merge 38de156 mn/sideband-no-ansi later to maint).
-
- * Mishandling of patterns in .gitignore that have trailing SPs quoted
-   with backslashes (e.g. ones that end with "\ ") has been
-   corrected.
-   (merge 97c1364be6b pb/trim-trailing-spaces later to maint).
-
- * Reworded the error message given upon a failure to open an existing
-   loose object file due to e.g. permission issues; it was reported as
-   the object being corrupt, but that is not quite true.
-   (merge d6c8a05 jk/report-fail-to-read-objects-better later to maint).
-
- * "git log -2master" is a common typo that shows two commits starting
-   from whichever random branch that is not 'master' that happens to
-   be checked out currently.
-   (merge e3fa568 jc/revision-dash-count-parsing later to maint).
-
- * Code to avoid adding the same alternate object store twice was
-   subtly broken for a long time, but nobody seems to have noticed.
-   (merge 80b4785 rs/fix-alt-odb-path-comparison later to maint).
-   (merge 539e750 ek/alt-odb-entry-fix later to maint).
-
- * The "%<(10,trunc)%s" pretty format specifier in the log family of
-   commands is used to truncate the string to a given length (e.g. 10
-   in the example) with padding to column-align the output, but did
-   not take into account that number of bytes and number of display
-   columns are different.
-   (merge 7d50987 as/pretty-truncate later to maint).
-
- * "%G" (nothing after G) is an invalid pretty format specifier, but
-   the parser did not notice it as garbage.
-   (merge 958b2eb jk/pretty-G-format-fixes later to maint).
-
- * A handful of code paths had to read the commit object more than
-   once when showing header fields that are usually not parsed.  The
-   internal data structure to keep track of the contents of the commit
-   object has been updated to reduce the need for this double-reading,
-   and to allow the caller find the length of the object.
-   (merge 218aa3a jk/commit-buffer-length later to maint).
-
- * The "mailmap.file" configuration option did not support tilde
-   expansion (i.e. ~user/path and ~/path).
-   (merge 9352fd5 ow/config-mailmap-pathname later to maint).
-
- * The completion scripts (in contrib/) did not know about quite a few
-   options that are common between "git merge" and "git pull", and a
-   couple of options unique to "git merge".
-   (merge 8fee872 jk/complete-merge-pull later to maint).
-
- * The unix-domain socket used by the sample credential cache daemon
-   tried to unlink an existing stale one at a wrong path, if the path
-   to the socket was given as an overlong path that does not fit in
-   the sun_path member of the sockaddr_un structure.
-   (merge 2869b3e rs/fix-unlink-unix-socket later to maint).
-
- * An ancient rewrite passed a wrong pointer to a curl library
-   function in a rarely used code path.
-   (merge 479eaa8 ah/fix-http-push later to maint).
-
- * "--ignore-space-change" option of "git apply" ignored the spaces
-   at the beginning of lines too aggressively, which is inconsistent
-   with the option of the same name that "diff" and "git diff" have.
-   (merge 14d3bb4 jc/apply-ignore-whitespace later to maint).
-
- * "git blame" miscounted the number of columns needed to show localized
-   timestamps, resulting in a jaggy left-side-edge for the source code
-   lines in its output.
-   (merge dd75553 jx/blame-align-relative-time later to maint).
-
- * "git blame" assigned the blame to the copy in the working-tree if
-   the repository is set to core.autocrlf=input and the file used CRLF
-   line endings.
-   (merge 4d4813a bc/blame-crlf-test later to maint).
-
- * "git clone -b brefs/tags/bar" would have mistakenly thought we were
-   following a single tag, even though it was a name of the branch,
-   because it incorrectly used strstr().
-   (merge 60a5f5f jc/fix-clone-single-starting-at-a-tag later to maint).
-
- * "git commit --allow-empty-message -C $commit" did not work when the
-   commit did not have any log message.
-   (merge 076cbd6 jk/commit-C-pick-empty later to maint).
-
- * "git diff --find-copies-harder" sometimes pretended as if the mode
-   bits have changed for paths that are marked with the assume-unchanged
-   bit.
-   (merge 5304810 jk/diff-files-assume-unchanged later to maint).
-
- * "filter-branch" left an empty single-parent commit that results when
-   all parents of a merge commit get mapped to the same commit, even
-   under "--prune-empty".
-   (merge 79bc4ef cb/filter-branch-prune-empty-degenerate-merges later to maint).
-
- * "git format-patch" did not enforce the rule that the "--follow"
-   option from the log/diff family of commands must be used with
-   exactly one pathspec.
-   (merge dd63f16 jk/diff-follow-must-take-one-pathspec later to maint).
-
- * "git gc --auto" was recently changed to run in the background to
-   give control back early to the end-user sitting in front of the
-   terminal, but it forgot that housekeeping involving reflogs should
-   be done without other processes competing for accesses to the refs.
-   (merge 62aad18 nd/daemonize-gc later to maint).
-
- * "git grep -O" to show the lines that hit in the pager did not work
-   well with case insensitive search.  We now spawn "less" with its
-   "-I" option when it is used as the pager (which is the default).
-   (merge f7febbe sk/spawn-less-case-insensitively-from-grep-O-i later to maint).
-
- * We used to disable threaded "git index-pack" on platforms without
-   thread-safe pread(); use a different workaround for such
-   platforms to allow threaded "git index-pack".
-   (merge 3953949 nd/index-pack-one-fd-per-thread later to maint).
-
- * The error reporting from "git index-pack" has been improved to
-   distinguish missing objects from type errors.
-   (merge 77583e7 jk/index-pack-report-missing later to maint).
-
- * "log --show-signature" incorrectly decided the color to paint a
-   mergetag that was and was not correctly validated.
-   (merge 42c55ce mg/fix-log-mergetag-color later to maint).
-
- * "log --show-signature" did not pay attention to the "--graph" option.
-   (merge cf3983d zk/log-graph-showsig later to maint).
-
- * "git mailinfo" used to read beyond the ends of header strings while
-   parsing an incoming e-mail message to extract the patch.
-   (merge b1a013d rs/mailinfo-header-cmp later to maint).
-
- * On a case insensitive filesystem, merge-recursive incorrectly
-   deleted the file that is to be renamed to a name that is the same
-   except for case differences.
-   (merge baa37bf dt/merge-recursive-case-insensitive later to maint).
-
- * Merging changes into a file that ends in an incomplete line made the
-   last line into a complete one, even when the other branch did not
-   change anything around the end of file.
-   (merge ba31180 mk/merge-incomplete-files later to maint).
-
- * "git pack-objects" unnecessarily copied the previous contents when
-   extending the hashtable, even though it will populate the table
-   from scratch anyway.
-   (merge fb79947 rs/pack-objects-no-unnecessary-realloc later to maint).
-
- * Recent updates to "git repack" started to duplicate objects that
-   are in packfiles marked with the .keep flag into the new packfile by
-   mistake.
-   (merge d078d85 jk/repack-pack-keep-objects later to maint).
-
- * "git rerere forget" did not work well when merge.conflictstyle
-   was set to a non-default value.
-   (merge de3d8bb fc/rerere-conflict-style later to maint).
-
- * "git remote rm" and "git remote prune" can involve removing many
-   refs at once, which is not a very efficient thing to do when very
-   many refs exist in the packed-refs file.
-   (merge e6bea66 jl/remote-rm-prune later to maint).
-
- * "git log --exclude=<glob> --all | git shortlog" worked as expected,
-   but "git shortlog --exclude=<glob> --all", which is supposed to be
-   identical to the above pipeline, was not accepted at the command
-   line argument parser level.
-   (merge eb07774 jc/shortlog-ref-exclude later to maint).
-
- * The autostash mode of "git rebase -i" did not restore the dirty
-   working tree state if the user aborted the interactive rebase by
-   emptying the insn sheet.
-   (merge ddb5432 rr/rebase-autostash-fix later to maint).
-
- * "git rebase --fork-point" did not filter out patch-identical
-   commits correctly.
-
- * During "git rebase --merge", a conflicted patch could not be
-   skipped with "--skip" if the next one also conflicted.
-   (merge 95104c7 bc/fix-rebase-merge-skip later to maint).
-
- * "git show -s" (i.e. show log message only) used to incorrectly emit
-   an extra blank line after a merge commit.
-   (merge ad2f725 mk/show-s-no-extra-blank-line-for-merges later to maint).
-
- * "git status", even though it is a read-only operation, tries to
-   update the index with refreshed lstat(2) info to optimize future
-   accesses to the working tree opportunistically, but this could
-   race with a "read-write" operation that modifies the index while it
-   is running.  Detect such a race and avoid overwriting the index.
-   (merge 426ddee ym/fix-opportunistic-index-update-race later to maint).
-
- * "git status" (and "git commit") behaved as if changes in a modified
-   submodule are not there if submodule.*.ignore configuration is set,
-   which was misleading.  The configuration is only to unclutter diff
-   output during the course of development, and not to hide
-   changes in the "status" output to cause the users forget to commit
-   them.
-   (merge c215d3d jl/status-added-submodule-is-never-ignored later to maint).
-
- * Documentation for "git submodule sync" forgot to say that the subcommand
-   can take the "--recursive" option.
-   (merge 9393ae7 mc/doc-submodule-sync-recurse later to maint).
-
- * "git update-index --cacheinfo" in 2.0 release crashed on a
-   malformed command line.
-   (merge c8e1ee4 jc/rev-parse-argh-dashed-multi-words later to maint).
-
- * The mode to run tests with HTTP server tests disabled was broken.
-   (merge afa53fe na/no-http-test-in-the-middle later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.1.1.txt b/third_party/git/Documentation/RelNotes/2.1.1.txt
deleted file mode 100644
index 830fc3cc6dd7..000000000000
--- a/third_party/git/Documentation/RelNotes/2.1.1.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-Git v2.1.1 Release Notes
-========================
-
- * Git 2.0 had a regression where "git fetch" into a shallowly
-   cloned repository from a repository with bitmap object index
-   enabled did not work correctly.  This has been corrected.
-
- * Git 2.0 had a regression which broke (rarely used) "git diff-tree
-   -t".  This has been corrected.
-
- * "git log --pretty/format=" with an empty format string did not
-   mean the more obvious "No output whatsoever" but "Use default
-   format", which was counterintuitive.  Now it means "nothing shown
-   for the log message part".
-
- * "git -c section.var command" and "git -c section.var= command"
-   should pass the configuration differently (the former should be a
-   boolean true, the latter should be an empty string), but they
-   didn't work that way.  Now it does.
-
- * Applying a patch not generated by Git in a subdirectory used to
-   check the whitespace breakage using the attributes for incorrect
-   paths. Also whitespace checks were performed even for paths
-   excluded via "git apply --exclude=<path>" mechanism.
-
- * "git bundle create" with date-range specification were meant to
-   exclude tags outside the range, but it did not work correctly.
-
- * "git add x" where x that used to be a directory has become a
-   symbolic link to a directory misbehaved.
-
- * The prompt script checked $GIT_DIR/ref/stash file to see if there
-   is a stash, which was a no-no.
-
- * "git checkout -m" did not switch to another branch while carrying
-   the local changes forward when a path was deleted from the index.
-
- * With sufficiently long refnames, fast-import could have overflown
-   an on-stack buffer.
-
- * After "pack-refs --prune" packed refs at the top-level, it failed
-   to prune them.
-
- * "git gc --auto" triggered from "git fetch --quiet" was not quiet.
diff --git a/third_party/git/Documentation/RelNotes/2.1.2.txt b/third_party/git/Documentation/RelNotes/2.1.2.txt
deleted file mode 100644
index abc3b8928a00..000000000000
--- a/third_party/git/Documentation/RelNotes/2.1.2.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Git v2.1.2 Release Notes
-========================
-
- * "git push" over HTTP transport had an artificial limit on number of
-   refs that can be pushed imposed by the command line length.
-
- * When receiving an invalid pack stream that records the same object
-   twice, multiple threads got confused due to a race.
-
- * An attempt to remove the entire tree in the "git fast-import" input
-   stream caused it to misbehave.
-
- * Reachability check (used in "git prune" and friends) did not add a
-   detached HEAD as a starting point to traverse objects still in use.
-
- * "git config --add section.var val" used to lose existing
-   section.var whose value was an empty string.
-
- * "git fsck" failed to report that it found corrupt objects via its
-   exit status in some cases.
diff --git a/third_party/git/Documentation/RelNotes/2.1.3.txt b/third_party/git/Documentation/RelNotes/2.1.3.txt
deleted file mode 100644
index 0dfb17c4fc6f..000000000000
--- a/third_party/git/Documentation/RelNotes/2.1.3.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-Git v2.1.3 Release Notes
-========================
-
- * Some MUAs mangled a line in a message that begins with "From " to
-   ">From " when writing to a mailbox file and feeding such an input to
-   "git am" used to lose such a line.
-
- * "git daemon" (with NO_IPV6 build configuration) used to incorrectly
-   use the hostname even when gethostbyname() reported that the given
-   hostname is not found.
-
- * Newer versions of 'meld' breaks the auto-detection we use to see if
-   they are new enough to support the `--output` option.
-
- * "git pack-objects" forgot to disable the codepath to generate
-   object reachability bitmap when it needs to split the resulting
-   pack.
-
- * "gitweb" used deprecated CGI::startfrom, which was removed from
-   CGI.pm as of 4.04; use CGI::start_from instead.
-
- * "git log" documentation had an example section marked up not
-   quite correctly, which passed AsciiDoc but failed with
-   AsciiDoctor.
-
-Also contains some documentation updates.
diff --git a/third_party/git/Documentation/RelNotes/2.1.4.txt b/third_party/git/Documentation/RelNotes/2.1.4.txt
deleted file mode 100644
index d16e5f041f5d..000000000000
--- a/third_party/git/Documentation/RelNotes/2.1.4.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Git v2.1.4 Release Notes
-========================
-
-Fixes since v2.1.3
-------------------
-
- * We used to allow committing a path ".Git/config" with Git that is
-   running on a case sensitive filesystem, but an attempt to check out
-   such a path with Git that runs on a case insensitive filesystem
-   would have clobbered ".git/config", which is definitely not what
-   the user would have expected.  Git now prevents you from tracking
-   a path with ".Git" (in any case combination) as a path component.
-
- * On Windows, certain path components that are different from ".git"
-   are mapped to ".git", e.g. "git~1/config" is treated as if it were
-   ".git/config".  HFS+ has a similar issue, where certain unicode
-   codepoints are ignored, e.g. ".g\u200cit/config" is treated as if
-   it were ".git/config".  Pathnames with these potential issues are
-   rejected on the affected systems.  Git on systems that are not
-   affected by this issue (e.g. Linux) can also be configured to
-   reject them to ensure cross platform interoperability of the hosted
-   projects.
-
- * "git fsck" notices a tree object that records such a path that can
-   be confused with ".git", and with receive.fsckObjects configuration
-   set to true, an attempt to "git push" such a tree object will be
-   rejected.  Such a path may not be a problem on a well behaving
-   filesystem but in order to protect those on HFS+ and on case
-   insensitive filesystems, this check is enabled on all platforms.
-
-A big "thanks!" for bringing this issue to us goes to our friends in
-the Mercurial land, namely, Matt Mackall and Augie Fackler.
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.10.0.txt b/third_party/git/Documentation/RelNotes/2.10.0.txt
deleted file mode 100644
index 3792b7d03d5f..000000000000
--- a/third_party/git/Documentation/RelNotes/2.10.0.txt
+++ /dev/null
@@ -1,675 +0,0 @@
-Git 2.10 Release Notes
-======================
-
-Backward compatibility notes
-----------------------------
-
-Updates since v2.9
-------------------
-
-UI, Workflows & Features
-
- * "git pull --rebase --verify-signature" learned to warn the user
-   that "--verify-signature" is a no-op when rebasing.
-
- * An upstream project can make a recommendation to shallowly clone
-   some submodules in the .gitmodules file it ships.
-
- * "git worktree add" learned that '-' can be used as a short-hand for
-   "@{-1}", the previous branch.
-
- * Update the funcname definition to support css files.
-
- * The completion script (in contrib/) learned to complete "git
-   status" options.
-
- * Messages that are generated by auto gc during "git push" on the
-   receiving end are now passed back to the sending end in such a way
-   that they are shown with "remote: " prefix to avoid confusing the
-   users.
-
- * "git add -i/-p" learned to honor diff.compactionHeuristic
-   experimental knob, so that the user can work on the same hunk split
-   as "git diff" output.
-
- * "upload-pack" allows a custom "git pack-objects" replacement when
-   responding to "fetch/clone" via the uploadpack.packObjectsHook.
-   (merge b738396 jk/upload-pack-hook later to maint).
-
- * Teach format-patch and mailsplit (hence "am") how a line that
-   happens to begin with "From " in the e-mail message is quoted with
-   ">", so that these lines can be restored to their original shape.
-   (merge d9925d1 ew/mboxrd-format-am later to maint).
-
- * "git repack" learned the "--keep-unreachable" option, which sends
-   loose unreachable objects to a pack instead of leaving them loose.
-   This helps heuristics based on the number of loose objects
-   (e.g. "gc --auto").
-   (merge e26a8c4 jk/repack-keep-unreachable later to maint).
-
- * "log --graph --format=" learned that "%>|(N)" specifies the width
-   relative to the terminal's left edge, not relative to the area to
-   draw text that is to the right of the ancestry-graph section.  It
-   also now accepts negative N that means the column limit is relative
-   to the right border.
-
- * A careless invocation of "git send-email directory/" after editing
-   0001-change.patch with an editor often ends up sending both
-   0001-change.patch and its backup file, 0001-change.patch~, causing
-   embarrassment and a minor confusion.  Detect such an input and
-   offer to skip the backup files when sending the patches out.
-   (merge 531220b jc/send-email-skip-backup later to maint).
-
- * "git submodule update" that drives many "git clone" could
-   eventually hit flaky servers/network conditions on one of the
-   submodules; the command learned to retry the attempt.
-
- * The output coloring scheme learned two new attributes, italic and
-   strike, in addition to existing bold, reverse, etc.
-
- * "git log" learns log.showSignature configuration variable, and a
-   command line option "--no-show-signature" to countermand it.
-   (merge fce04c3 mj/log-show-signature-conf later to maint).
-
- * More markings of messages for i18n, with updates to various tests
-   to pass GETTEXT_POISON tests.
-
- * "git archive" learned to handle files that are larger than 8GB and
-   commits far in the future than expressible by the traditional US-TAR
-   format.
-   (merge 560b0e8 jk/big-and-future-archive-tar later to maint).
-
-
- * A new configuration variable core.sshCommand has been added to
-   specify what value for GIT_SSH_COMMAND to use per repository.
-
- * "git worktree prune" protected worktrees that are marked as
-   "locked" by creating a file in a known location.  "git worktree"
-   command learned a dedicated command pair to create and remove such
-   a file, so that the users do not have to do this with editor.
-
- * A handful of "git svn" updates.
-
- * "git push" learned to accept and pass extra options to the
-   receiving end so that hooks can read and react to them.
-
- * "git status" learned to suggest "merge --abort" during a conflicted
-   merge, just like it already suggests "rebase --abort" during a
-   conflicted rebase.
-
- * "git jump" script (in contrib/) has been updated a bit.
-   (merge a91e692 jk/git-jump later to maint).
-
- * "git push" and "git clone" learned to give better progress meters
-   to the end user who is waiting on the terminal.
-
- * An entry "git log --decorate" for the tip of the current branch is
-   shown as "HEAD -> name" (where "name" is the name of the branch);
-   the arrow is now painted in the same color as "HEAD", not in the
-   color for commits.
-
- * "git format-patch" learned format.from configuration variable to
-   specify the default settings for its "--from" option.
-
- * "git am -3" calls "git merge-recursive" when it needs to fall back
-   to a three-way merge; this call has been turned into an internal
-   subroutine call instead of spawning a separate subprocess.
-
- * The command line completion scripts (in contrib/) now knows about
-   "git branch --delete/--move [--remote]".
-   (merge 2703c22 vs/completion-branch-fully-spelled-d-m-r later to maint).
-
- * "git rev-parse --git-path hooks/<hook>" learned to take
-   core.hooksPath configuration variable (introduced during 2.9 cycle)
-   into account.
-   (merge 9445b49 ab/hooks later to maint).
-
- * "git log --show-signature" and other commands that display the
-   verification status of PGP signature now shows the longer key-id,
-   as 32-bit key-id is so last century.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * "git fast-import" learned the same performance trick to avoid
-   creating too small a packfile as "git fetch" and "git push" have,
-   using *.unpackLimit configuration.
-
- * When "git daemon" is run without --[init-]timeout specified, a
-   connection from a client that silently goes offline can hang around
-   for a long time, wasting resources.  The socket-level KEEPALIVE has
-   been enabled to allow the OS to notice such failed connections.
-
- * "git upload-pack" command has been updated to use the parse-options
-   API.
-
- * The "git apply" standalone program is being libified; the first
-   step to move many state variables into a structure that can be
-   explicitly (re)initialized to make the machinery callable more
-   than once has been merged.
-
- * HTTP transport gained an option to produce more detailed debugging
-   trace.
-   (merge 73e57aa ep/http-curl-trace later to maint).
-
- * Instead of taking advantage of the fact that a struct string_list
-   that is allocated with all NULs happens to be the INIT_NODUP kind,
-   the users of string_list structures are taught to initialize them
-   explicitly as such, to document their behaviour better.
-   (merge 2721ce2 jk/string-list-static-init later to maint).
-
- * HTTPd tests learned to show the server error log to help diagnosing
-   a failing tests.
-   (merge 44f243d nd/test-lib-httpd-show-error-log-in-verbose later to maint).
-
- * The ownership rule for the piece of memory that hold references to
-   be fetched in "git fetch" was screwy, which has been cleaned up.
-
- * "git bisect" makes an internal call to "git diff-tree" when
-   bisection finds the culprit, but this call did not initialize the
-   data structure to pass to the diff-tree API correctly.
-
- * Further preparatory clean-up for "worktree" feature continues.
-   (merge 0409e0b nd/worktree-cleanup-post-head-protection later to maint).
-
- * Formats of the various data (and how to validate them) where we use
-   GPG signature have been documented.
-
- * A new run-command API function pipe_command() is introduced to
-   sanely feed data to the standard input while capturing data from
-   the standard output and the standard error of an external process,
-   which is cumbersome to hand-roll correctly without deadlocking.
-
- * The codepath to sign data in a prepared buffer with GPG has been
-   updated to use this API to read from the status-fd to check for
-   errors (instead of relying on GPG's exit status).
-   (merge efee955 jk/gpg-interface-cleanup later to maint).
-
- * Allow t/perf framework to use the features from the most recent
-   version of Git even when testing an older installed version.
-
- * The commands in the "log/diff" family have had an FILE* pointer in the
-   data structure they pass around for a long time, but some codepaths
-   used to always write to the standard output.  As a preparatory step
-   to make "git format-patch" available to the internal callers, these
-   codepaths have been updated to consistently write into that FILE*
-   instead.
-
- * Conversion from unsigned char sha1[20] to struct object_id
-   continues.
-
- * Improve the look of the way "git fetch" reports what happened to
-   each ref that was fetched.
-
- * The .c/.h sources are marked as such in our .gitattributes file so
-   that "git diff -W" and friends would work better.
-
- * Code clean-up to avoid using a variable string that compilers may
-   feel untrustable as printf-style format given to write_file()
-   helper function.
-
- * "git p4" used a location outside $GIT_DIR/refs/ to place its
-   temporary branches, which has been moved to refs/git-p4-tmp/.
-
- * Existing autoconf generated test for the need to link with pthread
-   library did not check all the functions from pthread libraries;
-   recent FreeBSD has some functions in libc but not others, and we
-   mistakenly thought linking with libc is enough when it is not.
-
- * When "git fsck" reports a broken link (e.g. a tree object contains
-   a blob that does not exist), both containing object and the object
-   that is referred to were reported with their 40-hex object names.
-   The command learned the "--name-objects" option to show the path to
-   the containing object from existing refs (e.g. "HEAD~24^2:file.txt").
-
- * Allow http daemon tests in Travis CI tests.
-
- * Makefile assumed that -lrt is always available on platforms that
-   want to use clock_gettime() and CLOCK_MONOTONIC, which is not a
-   case for recent Mac OS X.  The necessary symbols are often found in
-   libc on many modern systems and having -lrt on the command line, as
-   long as the library exists, had no effect, but when the platform
-   removes librt.a that is a different matter--having -lrt will break
-   the linkage.
-
-   This change could be seen as a regression for those who do need to
-   specify -lrt, as they now specifically ask for NEEDS_LIBRT when
-   building. Hopefully they are in the minority these days.
-
- * Further preparatory work on the refs API before the pluggable
-   backend series can land.
-
- * Error handling in the codepaths that updates refs has been
-   improved.
-
- * The API to iterate over all the refs (i.e. for_each_ref(), etc.)
-   has been revamped.
-
- * The handling of the "text=auto" attribute has been corrected.
-   $ echo "* text=auto eol=crlf" >.gitattributes
-   used to have the same effect as
-   $ echo "* text eol=crlf" >.gitattributes
-   i.e. declaring all files are text (ignoring "auto").  The
-   combination has been fixed to be equivalent to doing
-   $ git config core.autocrlf true
-
- * Documentation has been updated to show better example usage
-   of the updated "text=auto" attribute.
-
- * A few tests that specifically target "git rebase -i" have been
-   added.
-
- * Dumb http transport on the client side has been optimized.
-   (merge ecba195 ew/http-walker later to maint).
-
- * Users of the parse_options_concat() API function need to allocate
-   extra slots in advance and fill them with OPT_END() when they want
-   to decide the set of supported options dynamically, which makes the
-   code error-prone and hard to read.  This has been corrected by tweaking
-   the API to allocate and return a new copy of "struct option" array.
-
- * "git fetch" exchanges batched have/ack messages between the sender
-   and the receiver, initially doubling every time and then falling
-   back to enlarge the window size linearly.  The "smart http"
-   transport, being an half-duplex protocol, outgrows the preset limit
-   too quickly and becomes inefficient when interacting with a large
-   repository.  The internal mechanism learned to grow the window size
-   more aggressively when working with the "smart http" transport.
-
- * Tests for "git svn" have been taught to reuse the lib-httpd test
-   infrastructure when testing the subversion integration that
-   interacts with subversion repositories served over the http://
-   protocol.
-   (merge a8a5d25 ew/git-svn-http-tests later to maint).
-
- * "git pack-objects" has a few options that tell it not to pack
-   objects found in certain packfiles, which require it to scan .idx
-   files of all available packs.  The codepaths involved in these
-   operations have been optimized for a common case of not having any
-   non-local pack and/or any .kept pack.
-
- * The t3700 test about "add --chmod=-x" have been made a bit more
-   robust and generally cleaned up.
-   (merge 766cdc4 ib/t3700-add-chmod-x-updates later to maint).
-
- * The build procedure learned PAGER_ENV knob that lists what default
-   environment variable settings to export for popular pagers.  This
-   mechanism is used to tweak the default settings to MORE on FreeBSD.
-   (merge 995bc22 ew/build-time-pager-tweaks later to maint).
-
- * The http-backend (the server-side component of smart-http
-   transport) used to trickle the HTTP header one at a time.  Now
-   these write(2)s are batched.
-   (merge b36045c ew/http-backend-batch-headers later to maint).
-
- * When "git rebase" tries to compare set of changes on the updated
-   upstream and our own branch, it computes patch-id for all of these
-   changes and attempts to find matches. This has been optimized by
-   lazily computing the full patch-id (which is expensive) to be
-   compared only for changes that touch the same set of paths.
-   (merge ba67504 kw/patch-ids-optim later to maint).
-
- * A handful of tests that were broken under gettext-poison build have
-   been fixed.
-
- * The recent i18n patch we added during this cycle did a bit too much
-   refactoring of the messages to avoid word-legos; the repetition has
-   been reduced to help translators.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.9
-----------------
-
-Unless otherwise noted, all the fixes since v2.8 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * The commands in `git log` family take %C(auto) in a custom format
-   string.  This unconditionally turned the color on, ignoring
-   --no-color or with --color=auto when the output is not connected to
-   a tty; this was corrected to make the format truly behave as
-   "auto".
-
- * "git rev-list --count" whose walk-length is limited with "-n"
-   option did not work well with the counting optimized to look at the
-   bitmap index.
-
- * "git show -W" (extend hunks to cover the entire function, delimited
-   by lines that match the "funcname" pattern) used to show the entire
-   file when a change added an entire function at the end of the file,
-   which has been fixed.
-
- * The documentation set has been updated so that literal commands,
-   configuration variables and environment variables are consistently
-   typeset in fixed-width font and bold in manpages.
-
- * "git svn propset" subcommand that was added in 2.3 days is
-   documented now.
-
- * The documentation tries to consistently spell "GPG"; when
-   referring to the specific program name, "gpg" is used.
-
- * "git reflog" stopped upon seeing an entry that denotes a branch
-   creation event (aka "unborn"), which made it appear as if the
-   reflog was truncated.
-
- * The git-prompt scriptlet (in contrib/) was not friendly with those
-   who uses "set -u", which has been fixed.
-
- * compat/regex code did not cleanly compile.
-
- * A codepath that used alloca(3) to place an unbounded amount of data
-   on the stack has been updated to avoid doing so.
-
- * "git update-index --add --chmod=+x file" may be usable as an escape
-   hatch, but not a friendly thing to force for people who do need to
-   use it regularly.  "git add --chmod=+x file" can be used instead.
-
- * Build improvements for gnome-keyring (in contrib/)
-
- * "git status" used to say "working directory" when it meant "working
-   tree".
-
- * Comments about misbehaving FreeBSD shells have been clarified with
-   the version number (9.x and before are broken, newer ones are OK).
-
- * "git cherry-pick A" worked on an unborn branch, but "git
-   cherry-pick A..B" didn't.
-
- * Fix an unintended regression in v2.9 that breaks "clone --depth"
-   that recurses down to submodules by forcing the submodules to also
-   be cloned shallowly, which many server instances that host upstream
-   of the submodules are not prepared for.
-
- * Fix unnecessarily waste in the idiomatic use of ': ${VAR=default}'
-   to set the default value, without enclosing it in double quotes.
-
- * Some platform-specific code had non-ANSI strict declarations of C
-   functions that do not take any parameters, which has been
-   corrected.
-
- * The internal code used to show local timezone offset is not
-   prepared to handle timestamps beyond year 2100, and gave a
-   bogus offset value to the caller.  Use a more benign looking
-   +0000 instead and let "git log" going in such a case, instead
-   of aborting.
-
- * One among four invocations of readlink(1) in our test suite has
-   been rewritten so that the test can run on systems without the
-   command (others are in valgrind test framework and t9802).
-
- * t/perf needs /usr/bin/time with GNU extension; the invocation of it
-   is updated to "gtime" on Darwin.
-
- * A bug, which caused "git p4" while running under verbose mode to
-   report paths that are omitted due to branch prefix incorrectly, has
-   been fixed; the command said "Ignoring file outside of prefix" for
-   paths that are _inside_.
-
- * The top level documentation "git help git" still pointed at the
-   documentation set hosted at now-defunct google-code repository.
-   Update it to point to https://git.github.io/htmldocs/git.html
-   instead.
-
- * A helper function that takes the contents of a commit object and
-   finds its subject line did not ignore leading blank lines, as is
-   commonly done by other codepaths.  Make it ignore leading blank
-   lines to match.
-
- * For a long time, we carried an in-code comment that said our
-   colored output would work only when we use fprintf/fputs on
-   Windows, which no longer is the case for the past few years.
-
- * "gc.autoPackLimit" when set to 1 should not trigger a repacking
-   when there is only one pack, but the code counted poorly and did
-   so.
-
- * Add a test to specify the desired behaviour that currently is not
-   available in "git rebase -Xsubtree=...".
-
- * More mark-up updates to typeset strings that are expected to
-   literally typed by the end user in fixed-width font.
-
- * "git commit --amend --allow-empty-message -S" for a commit without
-   any message body could have misidentified where the header of the
-   commit object ends.
-
- * "git rebase -i --autostash" did not restore the auto-stashed change
-   when the operation was aborted.
-
- * Git does not know what the contents in the index should be for a
-   path added with "git add -N" yet, so "git grep --cached" should not
-   show hits (or show lack of hits, with -L) in such a path, but that
-   logic does not apply to "git grep", i.e. searching in the working
-   tree files.  But we did so by mistake, which has been corrected.
-
- * "git blame -M" missed a single line that was moved within the file.
-
- * Fix recently introduced codepaths that are involved in parallel
-   submodule operations, which gave up on reading too early, and
-   could have wasted CPU while attempting to write under a corner
-   case condition.
-
- * "git grep -i" has been taught to fold case in non-ascii locales
-   correctly.
-
- * A test that unconditionally used "mktemp" learned that the command
-   is not necessarily available everywhere.
-
- * There are certain house-keeping tasks that need to be performed at
-   the very beginning of any Git program, and programs that are not
-   built-in commands had to do them exactly the same way as "git"
-   potty does.  It was easy to make mistakes in one-off standalone
-   programs (like test helpers).  A common "main()" function that
-   calls cmd_main() of individual program has been introduced to
-   make it harder to make mistakes.
-   (merge de61ceb jk/common-main later to maint).
-
- * The test framework learned a new helper test_match_signal to
-   check an exit code from getting killed by an expected signal.
-
- * General code clean-up around a helper function to write a
-   single-liner to a file.
-   (merge 7eb6e10 jk/write-file later to maint).
-
- * One part of "git am" had an oddball helper function that called
-   stuff from outside "his" as opposed to calling what we have "ours",
-   which was not gender-neutral and also inconsistent with the rest of
-   the system where outside stuff is usually called "theirs" in
-   contrast to "ours".
-
- * "git blame file" allowed the lineage of lines in the uncommitted,
-   unadded contents of "file" to be inspected, but it refused when
-   "file" did not appear in the current commit.  When "file" was
-   created by renaming an existing file (but the change has not been
-   committed), this restriction was unnecessarily tight.
-
- * "git add -N dir/file && git write-tree" produced an incorrect tree
-   when there are other paths in the same directory that sorts after
-   "file".
-
- * "git fetch http://user:pass@host/repo..." scrubbed the userinfo
-   part, but "git push" didn't.
-
- * "git merge" with renormalization did not work well with
-   merge-recursive, due to "safer crlf" conversion kicking in when it
-   shouldn't.
-   (merge 1335d76 jc/renormalize-merge-kill-safer-crlf later to maint).
-
- * The use of strbuf in "git rm" to build filename to remove was a bit
-   suboptimal, which has been fixed.
-
- * An age old bug that caused "git diff --ignore-space-at-eol"
-   misbehave has been fixed.
-
- * "git notes merge" had a code to see if a path exists (and fails if
-   it does) and then open the path for writing (when it doesn't).
-   Replace it with open with O_EXCL.
-
- * "git pack-objects" and "git index-pack" mostly operate with off_t
-   when talking about the offset of objects in a packfile, but there
-   were a handful of places that used "unsigned long" to hold that
-   value, leading to an unintended truncation.
-
- * Recent update to "git daemon" tries to enable the socket-level
-   KEEPALIVE, but when it is spawned via inetd, the standard input
-   file descriptor may not necessarily be connected to a socket.
-   Suppress an ENOTSOCK error from setsockopt().
-
- * Recent FreeBSD stopped making perl available at /usr/bin/perl;
-   switch the default the built-in path to /usr/local/bin/perl on not
-   too ancient FreeBSD releases.
-
- * "git commit --help" said "--no-verify" is only about skipping the
-   pre-commit hook, and failed to say that it also skipped the
-   commit-msg hook.
-
- * "git merge" in Git v2.9 was taught to forbid merging an unrelated
-   lines of history by default, but that is exactly the kind of thing
-   the "--rejoin" mode of "git subtree" (in contrib/) wants to do.
-   "git subtree" has been taught to use the "--allow-unrelated-histories"
-   option to override the default.
-
- * The build procedure for "git persistent-https" helper (in contrib/)
-   has been updated so that it can be built with more recent versions
-   of Go.
-
- * There is an optimization used in "git diff $treeA $treeB" to borrow
-   an already checked-out copy in the working tree when it is known to
-   be the same as the blob being compared, expecting that open/mmap of
-   such a file is faster than reading it from the object store, which
-   involves inflating and applying delta.  This however kicked in even
-   when the checked-out copy needs to go through the convert-to-git
-   conversion (including the clean filter), which defeats the whole
-   point of the optimization.  The optimization has been disabled when
-   the conversion is necessary.
-
- * "git -c grep.patternType=extended log --basic-regexp" misbehaved
-   because the internal API to access the grep machinery was not
-   designed well.
-
- * Windows port was failing some tests in t4130, due to the lack of
-   inum in the returned values by its lstat(2) emulation.
-
- * The reflog output format is documented better, and a new format
-   --date=unix to report the seconds-since-epoch (without timezone)
-   has been added.
-   (merge 442f6fd jk/reflog-date later to maint).
-
- * "git difftool <paths>..." started in a subdirectory failed to
-   interpret the paths relative to that directory, which has been
-   fixed.
-
- * The characters in the label shown for tags/refs for commits in
-   "gitweb" output are now properly escaped for proper HTML output.
-
- * FreeBSD can lie when asked mtime of a directory, which made the
-   untracked cache code to fall back to a slow-path, which in turn
-   caused tests in t7063 to fail because it wanted to verify the
-   behaviour of the fast-path.
-
- * Squelch compiler warnings for nedmalloc (in compat/) library.
-
- * A small memory leak in the command line parsing of "git blame"
-   has been plugged.
-
- * The API documentation for hashmap was unclear if hashmap_entry
-   can be safely discarded without any other consideration.  State
-   that it is safe to do so.
-
- * Not-so-recent rewrite of "git am" that started making internal
-   calls into the commit machinery had an unintended regression, in
-   that no matter how many seconds it took to apply many patches, the
-   resulting committer timestamp for the resulting commits were all
-   the same.
-
- * "git push --force-with-lease" already had enough logic to allow
-   ensuring that such a push results in creation of a ref (i.e. the
-   receiving end did not have another push from sideways that would be
-   discarded by our force-pushing), but didn't expose this possibility
-   to the users.  It does so now.
-   (merge 9eed4f3 jk/push-force-with-lease-creation later to maint).
-
- * The mechanism to limit the pack window memory size, when packing is
-   done using multiple threads (which is the default), is per-thread,
-   but this was not documented clearly.
-   (merge 954176c ms/document-pack-window-memory-is-per-thread later to maint).
-
- * "import-tars" fast-import script (in contrib/) used to ignore a
-   hardlink target and replaced it with an empty file, which has been
-   corrected to record the same blob as the other file the hardlink is
-   shared with.
-   (merge 04e0869 js/import-tars-hardlinks later to maint).
-
- * "git mv dir non-existing-dir/" did not work in some environments
-   the same way as existing mainstream platforms.  The code now moves
-   "dir" to "non-existing-dir", without relying on rename("A", "B/")
-   that strips the trailing slash of '/'.
-   (merge 189d035 js/mv-dir-to-new-directory later to maint).
-
- * The "t/" hierarchy is prone to get an unusual pathname; "make test"
-   has been taught to make sure they do not contain paths that cannot
-   be checked out on Windows (and the mechanism can be reusable to
-   catch pathnames that are not portable to other platforms as need
-   arises).
-   (merge c2cafd3 js/test-lint-pathname later to maint).
-
- * When "git merge-recursive" works on history with many criss-cross
-   merges in "verbose" mode, the names the command assigns to the
-   virtual merge bases could have overwritten each other by unintended
-   reuse of the same piece of memory.
-   (merge 5447a76 rs/pull-signed-tag later to maint).
-
- * "git checkout --detach <branch>" used to give the same advice
-   message as that is issued when "git checkout <tag>" (or anything
-   that is not a branch name) is given, but asking with "--detach" is
-   an explicit enough sign that the user knows what is going on.  The
-   advice message has been squelched in this case.
-   (merge 779b88a sb/checkout-explit-detach-no-advice later to maint).
-
- * "git difftool" by default ignores the error exit from the backend
-   commands it spawns, because often they signal that they found
-   differences by exiting with a non-zero status code just like "diff"
-   does; the exit status codes 126 and above however are special in
-   that they are used to signal that the command is not executable,
-   does not exist, or killed by a signal.  "git difftool" has been
-   taught to notice these exit status codes.
-   (merge 45a4f5d jk/difftool-command-not-found later to maint).
-
- * On Windows, help.browser configuration variable used to be ignored,
-   which has been corrected.
-   (merge 6db5967 js/no-html-bypass-on-windows later to maint).
-
- * The "git -c var[=val] cmd" facility to append a configuration
-   variable definition at the end of the search order was described in
-   git(1) manual page, but not in git-config(1), which was more likely
-   place for people to look for when they ask "can I make a one-shot
-   override, and if so how?"
-   (merge ae1f709 dg/document-git-c-in-git-config-doc later to maint).
-
- * The tempfile (hence its user lockfile) API lets the caller to open
-   a file descriptor to a temporary file, write into it and then
-   finalize it by first closing the filehandle and then either
-   removing or renaming the temporary file.  When the process spawns a
-   subprocess after obtaining the file descriptor, and if the
-   subprocess has not exited when the attempt to remove or rename is
-   made, the last step fails on Windows, because the subprocess has
-   the file descriptor still open.  Open tempfile with O_CLOEXEC flag
-   to avoid this (on Windows, this is mapped to O_NOINHERIT).
-   (merge 05d1ed6 bw/mingw-avoid-inheriting-fd-to-lockfile later to maint).
-
- * Correct an age-old calco (is that a typo-like word for calc)
-   in the documentation.
-   (merge 7841c48 ls/packet-line-protocol-doc-fix later to maint).
-
- * Other minor clean-ups and documentation updates
-   (merge 02a8cfa rs/merge-add-strategies-simplification later to maint).
-   (merge af4941d rs/merge-recursive-string-list-init later to maint).
-   (merge 1eb47f1 rs/use-strbuf-add-unique-abbrev later to maint).
-   (merge ddd0bfa jk/tighten-alloc later to maint).
-   (merge ecf30b2 rs/mailinfo-lib later to maint).
-   (merge 0eb75ce sg/reflog-past-root later to maint).
-   (merge 4369523 hv/doc-commit-reference-style later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.10.1.txt b/third_party/git/Documentation/RelNotes/2.10.1.txt
deleted file mode 100644
index 70462f7f7e9b..000000000000
--- a/third_party/git/Documentation/RelNotes/2.10.1.txt
+++ /dev/null
@@ -1,131 +0,0 @@
-Git v2.10.1 Release Notes
-=========================
-
-Fixes since v2.10
------------------
-
- * Clarify various ways to specify the "revision ranges" in the
-   documentation.
-
- * "diff-highlight" script (in contrib/) learned to work better with
-   "git log -p --graph" output.
-
- * The test framework left the number of tests and success/failure
-   count in the t/test-results directory, keyed by the name of the
-   test script plus the process ID.  The latter however turned out not
-   to serve any useful purpose.  The process ID part of the filename
-   has been removed.
-
- * Having a submodule whose ".git" repository is somehow corrupt
-   caused a few commands that recurse into submodules loop forever.
-
- * "git symbolic-ref -d HEAD" happily removes the symbolic ref, but
-   the resulting repository becomes an invalid one.  Teach the command
-   to forbid removal of HEAD.
-
- * A test spawned a short-lived background process, which sometimes
-   prevented the test directory from getting removed at the end of the
-   script on some platforms.
-
- * Update a few tests that used to use GIT_CURL_VERBOSE to use the
-   newer GIT_TRACE_CURL.
-
- * Update Japanese translation for "git-gui".
-
- * "git fetch http::/site/path" did not die correctly and segfaulted
-   instead.
-
- * "git commit-tree" stopped reading commit.gpgsign configuration
-   variable that was meant for Porcelain "git commit" in Git 2.9; we
-   forgot to update "git gui" to look at the configuration to match
-   this change.
-
- * "git log --cherry-pick" used to include merge commits as candidates
-   to be matched up with other commits, resulting a lot of wasted time.
-   The patch-id generation logic has been updated to ignore merges to
-   avoid the wastage.
-
- * The http transport (with curl-multi option, which is the default
-   these days) failed to remove curl-easy handle from a curlm session,
-   which led to unnecessary API failures.
-
- * "git diff -W" output needs to extend the context backward to
-   include the header line of the current function and also forward to
-   include the body of the entire current function up to the header
-   line of the next one.  This process may have to merge to adjacent
-   hunks, but the code forgot to do so in some cases.
-
- * Performance tests done via "t/perf" did not use the same set of
-   build configuration if the user relied on autoconf generated
-   configuration.
-
- * "git format-patch --base=..." feature that was recently added
-   showed the base commit information after "-- " e-mail signature
-   line, which turned out to be inconvenient.  The base information
-   has been moved above the signature line.
-
- * Even when "git pull --rebase=preserve" (and the underlying "git
-   rebase --preserve") can complete without creating any new commit
-   (i.e. fast-forwards), it still insisted on having a usable ident
-   information (read: user.email is set correctly), which was less
-   than nice.  As the underlying commands used inside "git rebase"
-   would fail with a more meaningful error message and advice text
-   when the bogus ident matters, this extra check was removed.
-
- * "git gc --aggressive" used to limit the delta-chain length to 250,
-   which is way too deep for gaining additional space savings and is
-   detrimental for runtime performance.  The limit has been reduced to
-   50.
-
- * Documentation for individual configuration variables to control use
-   of color (like `color.grep`) said that their default value is
-   'false', instead of saying their default is taken from `color.ui`.
-   When we updated the default value for color.ui from 'false' to
-   'auto' quite a while ago, all of them broke.  This has been
-   corrected.
-
- * A shell script example in check-ref-format documentation has been
-   fixed.
-
- * "git checkout <word>" does not follow the usual disambiguation
-   rules when the <word> can be both a rev and a path, to allow
-   checking out a branch 'foo' in a project that happens to have a
-   file 'foo' in the working tree without having to disambiguate.
-   This was poorly documented and the check was incorrect when the
-   command was run from a subdirectory.
-
- * Some codepaths in "git diff" used regexec(3) on a buffer that was
-   mmap(2)ed, which may not have a terminating NUL, leading to a read
-   beyond the end of the mapped region.  This was fixed by introducing
-   a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND
-   extension.
-
- * The procedure to build Git on Mac OS X for Travis CI hardcoded the
-   internal directory structure we assumed HomeBrew uses, which was a
-   no-no.  The procedure has been updated to ask HomeBrew things we
-   need to know to fix this.
-
- * When "git rebase -i" is given a broken instruction, it told the
-   user to fix it with "--edit-todo", but didn't say what the step
-   after that was (i.e. "--continue").
-
- * "git add --chmod=+x" added recently lacked documentation, which has
-   been corrected.
-
- * "git add --chmod=+x <pathspec>" added recently only toggled the
-   executable bit for paths that are either new or modified. This has
-   been corrected to flip the executable bit for all paths that match
-   the given pathspec.
-
- * "git pack-objects --include-tag" was taught that when we know that
-   we are sending an object C, we want a tag B that directly points at
-   C but also a tag A that points at the tag B.  We used to miss the
-   intermediate tag B in some cases.
-
- * Documentation around tools to import from CVS was fairly outdated.
-
- * In the codepath that comes up with the hostname to be used in an
-   e-mail when the user didn't tell us, we looked at ai_canonname
-   field in struct addrinfo without making sure it is not NULL first.
-
-Also contains minor documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.10.2.txt b/third_party/git/Documentation/RelNotes/2.10.2.txt
deleted file mode 100644
index abbd331508a5..000000000000
--- a/third_party/git/Documentation/RelNotes/2.10.2.txt
+++ /dev/null
@@ -1,111 +0,0 @@
-Git v2.10.2 Release Notes
-=========================
-
-Fixes since v2.10.1
--------------------
-
- * The code that parses the format parameter of for-each-ref command
-   has seen a micro-optimization.
-
- * The "graph" API used in "git log --graph" miscounted the number of
-   output columns consumed so far when drawing a padding line, which
-   has been fixed; this did not affect any existing code as nobody
-   tried to write anything after the padding on such a line, though.
-
- * Almost everybody uses DEFAULT_ABBREV to refer to the default
-   setting for the abbreviation, but "git blame" peeked into
-   underlying variable bypassing the macro for no good reason.
-
- * Doc update to clarify what "log -3 --reverse" does.
-
- * An author name, that spelled a backslash-quoted double quote in the
-   human readable part "My \"double quoted\" name", was not unquoted
-   correctly while applying a patch from a piece of e-mail.
-
- * The original command line syntax for "git merge", which was "git
-   merge <msg> HEAD <parent>...", has been deprecated for quite some
-   time, and "git gui" was the last in-tree user of the syntax.  This
-   is finally fixed, so that we can move forward with the deprecation.
-
- * Codepaths that read from an on-disk loose object were too loose in
-   validating what they are reading is a proper object file and
-   sometimes read past the data they read from the disk, which has
-   been corrected.  H/t to Gustavo Grieco for reporting.
-
- * "git worktree", even though it used the default_abbrev setting that
-   ought to be affected by core.abbrev configuration variable, ignored
-   the variable setting.  The command has been taught to read the
-   default set of configuration variables to correct this.
-
- * A low-level function verify_packfile() was meant to show errors
-   that were detected without dying itself, but under some conditions
-   it didn't and died instead, which has been fixed.
-
- * When "git fetch" tries to find where the history of the repository
-   it runs in has diverged from what the other side has, it has a
-   mechanism to avoid digging too deep into irrelevant side branches.
-   This however did not work well over the "smart-http" transport due
-   to a design bug, which has been fixed.
-
- * When we started cURL to talk to imap server when a new enough
-   version of cURL library is available, we forgot to explicitly add
-   imap(s):// before the destination.  To some folks, that didn't work
-   and the library tried to make HTTP(s) requests instead.
-
- * The ./configure script generated from configure.ac was taught how
-   to detect support of SSL by libcurl better.
-
- * http.emptyauth configuration is a way to allow an empty username to
-   pass when attempting to authenticate using mechanisms like
-   Kerberos.  We took an unspecified (NULL) username and sent ":"
-   (i.e. no username, no password) to CURLOPT_USERPWD, but did not do
-   the same when the username is explicitly set to an empty string.
-
- * "git clone" of a local repository can be done at the filesystem
-   level, but the codepath did not check errors while copying and
-   adjusting the file that lists alternate object stores.
-
- * Documentation for "git commit" was updated to clarify that "commit
-   -p <paths>" adds to the current contents of the index to come up
-   with what to commit.
-
- * A stray symbolic link in $GIT_DIR/refs/ directory could make name
-   resolution loop forever, which has been corrected.
-
- * The "submodule.<name>.path" stored in .gitmodules is never copied
-   to .git/config and such a key in .git/config has no meaning, but
-   the documentation described it and submodule.<name>.url next to
-   each other as if both belong to .git/config.  This has been fixed.
-
- * Recent git allows submodule.<name>.branch to use a special token
-   "." instead of the branch name; the documentation has been updated
-   to describe it.
-
- * In a worktree connected to a repository elsewhere, created via "git
-   worktree", "git checkout" attempts to protect users from confusion
-   by refusing to check out a branch that is already checked out in
-   another worktree.  However, this also prevented checking out a
-   branch, which is designated as the primary branch of a bare
-   repository, in a worktree that is connected to the bare
-   repository.  The check has been corrected to allow it.
-
- * "git rebase" immediately after "git clone" failed to find the fork
-   point from the upstream.
-
- * When fetching from a remote that has many tags that are irrelevant
-   to branches we are following, we used to waste way too many cycles
-   when checking if the object pointed at by a tag (that we are not
-   going to fetch!) exists in our repository too carefully.
-
- * The Travis CI configuration we ship ran the tests with --verbose
-   option but this risks non-TAP output that happens to be "ok" to be
-   misinterpreted as TAP signalling a test that passed.  This resulted
-   in unnecessary failure.  This has been corrected by introducing a
-   new mode to run our tests in the test harness to send the verbose
-   output separately to the log file.
-
- * Some AsciiDoc formatter mishandles a displayed illustration with
-   tabs in it.  Adjust a few of them in merge-base documentation to
-   work around them.
-
-Also contains minor documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.10.3.txt b/third_party/git/Documentation/RelNotes/2.10.3.txt
deleted file mode 100644
index ad6a01bf8351..000000000000
--- a/third_party/git/Documentation/RelNotes/2.10.3.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-Git v2.10.3 Release Notes
-=========================
-
-Fixes since v2.10.2
--------------------
-
- * Extract a small helper out of the function that reads the authors
-   script file "git am" internally uses.
-   This by itself is not useful until a second caller appears in the
-   future for "rebase -i" helper.
-
- * The command-line completion script (in contrib/) learned to
-   complete "git cmd ^mas<HT>" to complete the negative end of
-   reference to "git cmd ^master".
-
- * "git send-email" attempts to pick up valid e-mails from the
-   trailers, but people in real world write non-addresses there, like
-   "Cc: Stable <add@re.ss> # 4.8+", which broke the output depending
-   on the availability and vintage of Mail::Address perl module.
-
- * The code that we have used for the past 10+ years to cycle
-   4-element ring buffers turns out to be not quite portable in
-   theoretical world.
-
- * "git daemon" used fixed-length buffers to turn URL to the
-   repository the client asked for into the server side directory
-   path, using snprintf() to avoid overflowing these buffers, but
-   allowed possibly truncated paths to the directory.  This has been
-   tightened to reject such a request that causes overlong path to be
-   required to serve.
-
- * Recent update to git-sh-setup (a library of shell functions that
-   are used by our in-tree scripted Porcelain commands) included
-   another shell library git-sh-i18n without specifying where it is,
-   relying on the $PATH.  This has been fixed to be more explicit by
-   prefixing $(git --exec-path) output in front.
-
- * Fix for a racy false-positive test failure.
-
- * Portability update and workaround for builds on recent Mac OS X.
-
- * Update to the test framework made in 2.9 timeframe broke running
-   the tests under valgrind, which has been fixed.
-
- * Improve the rule to convert "unsigned char [20]" into "struct
-   object_id *" in contrib/coccinelle/
-
- * "git-shell" rejects a request to serve a repository whose name
-   begins with a dash, which makes it no longer possible to get it
-   confused into spawning service programs like "git-upload-pack" with
-   an option like "--help", which in turn would spawn an interactive
-   pager, instead of working with the repository user asked to access
-   (i.e. the one whose name is "--help").
-
-Also contains minor documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.10.4.txt b/third_party/git/Documentation/RelNotes/2.10.4.txt
deleted file mode 100644
index ee8142ad244d..000000000000
--- a/third_party/git/Documentation/RelNotes/2.10.4.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Git v2.10.4 Release Notes
-=========================
-
-This release forward-ports the fix for "ssh://..." URL from Git v2.7.6
diff --git a/third_party/git/Documentation/RelNotes/2.10.5.txt b/third_party/git/Documentation/RelNotes/2.10.5.txt
deleted file mode 100644
index a498fd6fdc24..000000000000
--- a/third_party/git/Documentation/RelNotes/2.10.5.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Git v2.10.5 Release Notes
-=========================
-
-Fixes since v2.10.4
--------------------
-
- * "git cvsserver" no longer is invoked by "git daemon" by default,
-   as it is old and largely unmaintained.
-
- * Various Perl scripts did not use safe_pipe_capture() instead of
-   backticks, leaving them susceptible to end-user input.  They have
-   been corrected.
-
-Credits go to joernchen <joernchen@phenoelit.de> for finding the
-unsafe constructs in "git cvsserver", and to Jeff King at GitHub for
-finding and fixing instances of the same issue in other scripts.
-
diff --git a/third_party/git/Documentation/RelNotes/2.11.0.txt b/third_party/git/Documentation/RelNotes/2.11.0.txt
deleted file mode 100644
index b7b7dd361ef0..000000000000
--- a/third_party/git/Documentation/RelNotes/2.11.0.txt
+++ /dev/null
@@ -1,593 +0,0 @@
-Git 2.11 Release Notes
-======================
-
-Backward compatibility notes.
-
- * An empty string used as a pathspec element has always meant
-   'everything matches', but it is too easy to write a script that
-   finds a path to remove in $path and run 'git rm "$paht"' by
-   mistake (when the user meant to give "$path"), which ends up
-   removing everything.  This release starts warning about the
-   use of an empty string that is used for 'everything matches' and
-   asks users to use a more explicit '.' for that instead.
-
-   The hope is that existing users will not mind this change, and
-   eventually the warning can be turned into a hard error, upgrading
-   the deprecation into removal of this (mis)feature.
-
- * The historical argument order "git merge <msg> HEAD <commit>..."
-   has been deprecated for quite some time, and will be removed in the
-   next release (not this one).
-
- * The default abbreviation length, which has historically been 7, now
-   scales as the repository grows, using the approximate number of
-   objects in the repository and a bit of math around the birthday
-   paradox.  The logic suggests to use 12 hexdigits for the Linux
-   kernel, and 9 to 10 for Git itself.
-
-
-Updates since v2.10
--------------------
-
-UI, Workflows & Features
-
- * Comes with new version of git-gui, now at its 0.21.0 tag.
-
- * "git format-patch --cover-letter HEAD^" to format a single patch
-   with a separate cover letter now numbers the output as [PATCH 0/1]
-   and [PATCH 1/1] by default.
-
- * An incoming "git push" that attempts to push too many bytes can now
-   be rejected by setting a new configuration variable at the receiving
-   end.
-
- * "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
-   which was not intuitive, given that "git nosuchcommand" said "git:
-   'nosuchcommand' is not a git command".
-
- * "git clone --recurse-submodules --reference $path $URL" is a way to
-   reduce network transfer cost by borrowing objects in an existing
-   $path repository when cloning the superproject from $URL; it
-   learned to also peek into $path for presence of corresponding
-   repositories of submodules and borrow objects from there when able.
-
- * The "git diff --submodule={short,log}" mechanism has been enhanced
-   to allow "--submodule=diff" to show the patch between the submodule
-   commits bound to the superproject.
-
- * Even though "git hash-objects", which is a tool to take an
-   on-filesystem data stream and put it into the Git object store,
-   can perform "outside-world-to-Git" conversions (e.g.
-   end-of-line conversions and application of the clean-filter), and
-   it has had this feature on by default from very early days, its reverse
-   operation "git cat-file", which takes an object from the Git object
-   store and externalizes it for consumption by the outside world,
-   lacked an equivalent mechanism to run the "Git-to-outside-world"
-   conversion.  The command learned the "--filters" option to do so.
-
- * Output from "git diff" can be made easier to read by intelligently selecting
-   which lines are common and which lines are added/deleted
-   when the lines before and after the changed section
-   are the same.  A command line option (--indent-heuristic) and a
-   configuration variable (diff.indentHeuristic) are added to help with the
-   experiment to find good heuristics.
-
- * In some projects, it is common to use "[RFC PATCH]" as the subject
-   prefix for a patch meant for discussion rather than application.  A
-   new format-patch option "--rfc" is a short-hand for "--subject-prefix=RFC PATCH"
-   to help the participants of such projects.
-
- * "git add --chmod={+,-}x <pathspec>" only changed the
-   executable bit for paths that are either new or modified. This has
-   been corrected to change the executable bit for all paths that match
-   the given pathspec.
-
- * When "git format-patch --stdout" output is placed as an in-body
-   header and it uses RFC2822 header folding, "git am" fails to
-   put the header line back into a single logical line.  The
-   underlying "git mailinfo" was taught to handle this properly.
-
- * "gitweb" can spawn "highlight" to show blob contents with
-   (programming) language-specific syntax highlighting, but only
-   when the language is known.  "highlight" can however be told
-   to guess the language itself by giving it "--force" option, which
-   has been enabled.
-
- * "git gui" l10n to Portuguese.
-
- * When given an abbreviated object name that is not (or more
-   realistically, "no longer") unique, we gave a fatal error
-   "ambiguous argument".  This error is now accompanied by a hint that
-   lists the objects beginning with the given prefix.  During the
-   course of development of this new feature, numerous minor bugs were
-   uncovered and corrected, the most notable one of which is that we
-   gave "short SHA1 xxxx is ambiguous." twice without good reason.
-
- * "git log rev^..rev" is an often-used revision range specification
-   to show what was done on a side branch merged at rev.  This has
-   gained a short-hand "rev^-1".  In general "rev^-$n" is the same as
-   "^rev^$n rev", i.e. what has happened on other branches while the
-   history leading to nth parent was looking the other way.
-
- * In recent versions of cURL, GSSAPI credential delegation is
-   disabled by default due to CVE-2011-2192; introduce a http.delegation
-   configuration variable to selectively allow enabling this.
-   (merge 26a7b23429 ps/http-gssapi-cred-delegation later to maint).
-
- * "git mergetool" learned to honor "-O<orderfile>" to control the
-   order of paths to present to the end user.
-
- * "git diff/log --ws-error-highlight=<kind>" lacked the corresponding
-   configuration variable (diff.wsErrorHighlight) to set it by default.
-
- * "git ls-files" learned the "--recurse-submodules" option
-   to get a listing of tracked files across submodules (i.e. this
-   only works with the "--cached" option, not for listing untracked or
-   ignored files).  This would be a useful tool to sit on the upstream
-   side of a pipe that is read with xargs to work on all working tree
-   files from the top-level superproject.
-
- * A new credential helper that talks via "libsecret" with
-   implementations of XDG Secret Service API has been added to
-   contrib/credential/.
-
- * The GPG verification status shown by the "%G?" pretty format specifier
-   was not rich enough to differentiate a signature made by an expired
-   key, a signature made by a revoked key, etc.  New output letters
-   have been assigned to express them.
-
- * In addition to purely abbreviated commit object names, "gitweb"
-   learned to turn "git describe" output (e.g. v2.9.3-599-g2376d31787)
-   into clickable links in its output.
-
- * "git commit" created an empty commit when invoked with an index
-   consisting solely of intend-to-add paths (added with "git add -N").
-   It now requires the "--allow-empty" option to create such a commit.
-   The same logic prevented "git status" from showing such paths as "new files" in the
-   "Changes not staged for commit" section.
-
- * The smudge/clean filter API spawns an external process
-   to filter the contents of each path that has a filter defined.  A
-   new type of "process" filter API has been added to allow the first
-   request to run the filter for a path to spawn a single process, and
-   all filtering is served by this single process for multiple
-   paths, reducing the process creation overhead.
-
- * The user always has to say "stash@{$N}" when naming a single
-   element in the default location of the stash, i.e. reflogs in
-   refs/stash.  The "git stash" command learned to accept "git stash
-   apply 4" as a short-hand for "git stash apply stash@{4}".
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * The delta-base-cache mechanism has been a key to the performance in
-   a repository with a tightly packed packfile, but it did not scale
-   well even with a larger value of core.deltaBaseCacheLimit.
-
- * Enhance "git status --porcelain" output by collecting more data on
-   the state of the index and the working tree files, which may
-   further be used to teach git-prompt (in contrib/) to make fewer
-   calls to git.
-
- * Extract a small helper out of the function that reads the authors
-   script file "git am" internally uses.
-   (merge a77598e jc/am-read-author-file later to maint).
-
- * Lift calls to exit(2) and die() higher in the callchain in
-   sequencer.c files so that more helper functions in it can be used
-   by callers that want to handle error conditions themselves.
-
- * "git am" has been taught to make an internal call to "git apply"'s
-   innards without spawning the latter as a separate process.
-
- * The ref-store abstraction was introduced to the refs API so that we
-   can plug in different backends to store references.
-
- * The "unsigned char sha1[20]" to "struct object_id" conversion
-   continues.  Notable changes in this round includes that ce->sha1,
-   i.e. the object name recorded in the cache_entry, turns into an
-   object_id.
-
- * JGit can show a fake ref "capabilities^{}" to "git fetch" when it
-   does not advertise any refs, but "git fetch" was not prepared to
-   see such an advertisement.  When the other side disconnects without
-   giving any ref advertisement, we used to say "there may not be a
-   repository at that URL", but we may have seen other advertisements
-   like "shallow" and ".have" in which case we definitely know that a
-   repository is there.  The code to detect this case has also been
-   updated.
-
- * Some codepaths in "git pack-objects" were not ready to use an
-   existing pack bitmap; now they are and as a result they have
-   become faster.
-
- * The codepath in "git fsck" to detect malformed tree objects has
-   been updated not to die but keep going after detecting them.
-
- * We call "qsort(array, nelem, sizeof(array[0]), fn)", and most of
-   the time third parameter is redundant.  A new QSORT() macro lets us
-   omit it.
-
- * "git pack-objects" in a repository with many packfiles used to
-   spend a lot of time looking for/at objects in them; the accesses to
-   the packfiles are now optimized by checking the most-recently-used
-   packfile first.
-   (merge c9af708b1a jk/pack-objects-optim-mru later to maint).
-
- * Codepaths involved in interacting alternate object stores have
-   been cleaned up.
-
- * In order for the receiving end of "git push" to inspect the
-   received history and decide to reject the push, the objects sent
-   from the sending end need to be made available to the hook and
-   the mechanism for the connectivity check, and this was done
-   traditionally by storing the objects in the receiving repository
-   and letting "git gc" expire them.  Instead, store the newly
-   received objects in a temporary area, and make them available by
-   reusing the alternate object store mechanism to them only while we
-   decide if we accept the check, and once we decide, either migrate
-   them to the repository or purge them immediately.
-
- * The require_clean_work_tree() helper was recreated in C when "git
-   pull" was rewritten from shell; the helper is now made available to
-   other callers in preparation for upcoming "rebase -i" work.
-
- * "git upload-pack" had its code cleaned-up and performance improved
-   by reducing use of timestamp-ordered commit-list, which was
-   replaced with a priority queue.
-
- * "git diff --no-index" codepath has been updated not to try to peek
-   into a .git/ directory that happens to be under the current
-   directory, when we know we are operating outside any repository.
-
- * Update of the sequencer codebase to make it reusable to reimplement
-   "rebase -i" continues.
-
- * Git generally does not explicitly close file descriptors that were
-   open in the parent process when spawning a child process, but most
-   of the time the child does not want to access them. As Windows does
-   not allow removing or renaming a file that has a file descriptor
-   open, a slow-to-exit child can even break the parent process by
-   holding onto them.  Use O_CLOEXEC flag to open files in various
-   codepaths.
-
- * Update "interpret-trailers" machinery and teach it that people in
-   the real world write all sorts of cruft in the "trailer" that was
-   originally designed to have the neat-o "Mail-Header: like thing"
-   and nothing else.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.10
------------------
-
-Unless otherwise noted, all the fixes since v2.9 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * Clarify various ways to specify the "revision ranges" in the
-   documentation.
-
- * "diff-highlight" script (in contrib/) learned to work better with
-   "git log -p --graph" output.
-
- * The test framework left the number of tests and success/failure
-   count in the t/test-results directory, keyed by the name of the
-   test script plus the process ID.  The latter however turned out not
-   to serve any useful purpose.  The process ID part of the filename
-   has been removed.
-
- * Having a submodule whose ".git" repository is somehow corrupt
-   caused a few commands that recurse into submodules to loop forever.
-
- * "git symbolic-ref -d HEAD" happily removes the symbolic ref, but
-   the resulting repository becomes an invalid one.  Teach the command
-   to forbid removal of HEAD.
-
- * A test spawned a short-lived background process, which sometimes
-   prevented the test directory from getting removed at the end of the
-   script on some platforms.
-
- * Update a few tests that used to use GIT_CURL_VERBOSE to use the
-   newer GIT_TRACE_CURL.
-
- * "git pack-objects --include-tag" was taught that when we know that
-   we are sending an object C, we want a tag B that directly points at
-   C but also a tag A that points at the tag B.  We used to miss the
-   intermediate tag B in some cases.
-
- * Update Japanese translation for "git-gui".
-
- * "git fetch http::/site/path" did not die correctly and segfaulted
-   instead.
-
- * "git commit-tree" stopped reading commit.gpgsign configuration
-   variable that was meant for Porcelain "git commit" in Git 2.9; we
-   forgot to update "git gui" to look at the configuration to match
-   this change.
-
- * "git add --chmod={+,-}x" added recently lacked documentation, which has
-   been corrected.
-
- * "git log --cherry-pick" used to include merge commits as candidates
-   to be matched up with other commits, resulting a lot of wasted time.
-   The patch-id generation logic has been updated to ignore merges and
-   avoid the wastage.
-
- * The http transport (with curl-multi option, which is the default
-   these days) failed to remove curl-easy handle from a curlm session,
-   which led to unnecessary API failures.
-
- * There were numerous corner cases in which the configuration files
-   are read and used or not read at all depending on the directory a
-   Git command was run, leading to inconsistent behaviour.  The code
-   to set-up repository access at the beginning of a Git process has
-   been updated to fix them.
-   (merge 4d0efa1 jk/setup-sequence-update later to maint).
-
- * "git diff -W" output needs to extend the context backward to
-   include the header line of the current function and also forward to
-   include the body of the entire current function up to the header
-   line of the next one.  This process may have to merge two adjacent
-   hunks, but the code forgot to do so in some cases.
-
- * Performance tests done via "t/perf" did not use the right
-   build configuration if the user relied on autoconf generated
-   configuration.
-
- * "git format-patch --base=..." feature that was recently added
-   showed the base commit information after the "-- " e-mail signature
-   line, which turned out to be inconvenient.  The base information
-   has been moved above the signature line.
-
- * More i18n.
-
- * Even when "git pull --rebase=preserve" (and the underlying "git
-   rebase --preserve") can complete without creating any new commits
-   (i.e. fast-forwards), it still insisted on having usable ident
-   information (read: user.email is set correctly), which was less
-   than nice.  As the underlying commands used inside "git rebase"
-   would fail with a more meaningful error message and advice text
-   when the bogus ident matters, this extra check was removed.
-
- * "git gc --aggressive" used to limit the delta-chain length to 250,
-   which is way too deep for gaining additional space savings and is
-   detrimental for runtime performance.  The limit has been reduced to
-   50.
-
- * Documentation for individual configuration variables to control use
-   of color (like `color.grep`) said that their default value is
-   'false', instead of saying their default is taken from `color.ui`.
-   When we updated the default value for color.ui from 'false' to
-   'auto' quite a while ago, all of them broke.  This has been
-   corrected.
-
- * The pretty-format specifier "%C(auto)" used by the "log" family of
-   commands to enable coloring of the output is taught to also issue a
-   color-reset sequence to the output.
-
- * A shell script example in check-ref-format documentation has been
-   fixed.
-
- * "git checkout <word>" does not follow the usual disambiguation
-   rules when the <word> can be both a rev and a path, to allow
-   checking out a branch 'foo' in a project that happens to have a
-   file 'foo' in the working tree without having to disambiguate.
-   This was poorly documented and the check was incorrect when the
-   command was run from a subdirectory.
-
- * Some codepaths in "git diff" used regexec(3) on a buffer that was
-   mmap(2)ed, which may not have a terminating NUL, leading to a read
-   beyond the end of the mapped region.  This was fixed by introducing
-   a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND
-   extension.
-
- * The procedure to build Git on Mac OS X for Travis CI hardcoded the
-   internal directory structure we assumed HomeBrew uses, which was a
-   no-no.  The procedure has been updated to ask HomeBrew things we
-   need to know to fix this.
-
- * When "git rebase -i" is given a broken instruction, it told the
-   user to fix it with "--edit-todo", but didn't say what the step
-   after that was (i.e. "--continue").
-
- * Documentation around tools to import from CVS was fairly outdated.
-
- * "git clone --recurse-submodules" lost the progress eye-candy in
-   a recent update, which has been corrected.
-
- * A low-level function verify_packfile() was meant to show errors
-   that were detected without dying itself, but under some conditions
-   it didn't and died instead, which has been fixed.
-
- * When "git fetch" tries to find where the history of the repository
-   it runs in has diverged from what the other side has, it has a
-   mechanism to avoid digging too deep into irrelevant side branches.
-   This however did not work well over the "smart-http" transport due
-   to a design bug, which has been fixed.
-
- * In the codepath that comes up with the hostname to be used in an
-   e-mail when the user didn't tell us, we looked at the ai_canonname
-   field in struct addrinfo without making sure it is not NULL first.
-
- * "git worktree", even though it used the default_abbrev setting that
-   ought to be affected by the core.abbrev configuration variable, ignored
-   the variable setting.  The command has been taught to read the
-   default set of configuration variables to correct this.
-
- * "git init" tried to record core.worktree in the repository's
-   'config' file when the GIT_WORK_TREE environment variable was set and
-   it was different from where GIT_DIR appears as ".git" at its top,
-   but the logic was faulty when .git is a "gitdir:" file that points
-   at the real place, causing trouble in working trees that are
-   managed by "git worktree".  This has been corrected.
-
- * Codepaths that read from an on-disk loose object were too loose in
-   validating that they are reading a proper object file and
-   sometimes read past the data they read from the disk, which has
-   been corrected.  H/t to Gustavo Grieco for reporting.
-
- * The original command line syntax for "git merge", which was "git
-   merge <msg> HEAD <parent>...", has been deprecated for quite some
-   time, and "git gui" was the last in-tree user of the syntax.  This
-   is finally fixed, so that we can move forward with the deprecation.
-
- * An author name that has a backslash-quoted double quote in the
-   human readable part ("My \"double quoted\" name"), was not unquoted
-   correctly while applying a patch from a piece of e-mail.
-
- * Doc update to clarify what "log -3 --reverse" does.
-
- * Almost everybody uses DEFAULT_ABBREV to refer to the default
-   setting for the abbreviation, but "git blame" peeked into
-   underlying variable bypassing the macro for no good reason.
-
- * The "graph" API used in "git log --graph" miscounted the number of
-   output columns consumed so far when drawing a padding line, which
-   has been fixed; this did not affect any existing code as nobody
-   tried to write anything after the padding on such a line, though.
-
- * The code that parses the format parameter of the for-each-ref command
-   has seen a micro-optimization.
-
- * When we started to use cURL to talk to an imap server, we forgot to explicitly add
-   imap(s):// before the destination.  To some folks, that didn't work
-   and the library tried to make HTTP(s) requests instead.
-
- * The ./configure script generated from configure.ac was taught how
-   to detect support of SSL by libcurl better.
-
- * The command-line completion script (in contrib/) learned to
-   complete "git cmd ^mas<HT>" to complete the negative end of
-   reference to "git cmd ^master".
-   (merge 49416ad22a cp/completion-negative-refs later to maint).
-
- * The existing "git fetch --depth=<n>" option was hard to use
-   correctly when making the history of an existing shallow clone
-   deeper.  A new option, "--deepen=<n>", has been added to make this
-   easier to use.  "git clone" also learned "--shallow-since=<date>"
-   and "--shallow-exclude=<tag>" options to make it easier to specify
-   "I am interested only in the recent N months worth of history" and
-   "Give me only the history since that version".
-   (merge cccf74e2da nd/shallow-deepen later to maint).
-
- * "git blame --reverse OLD path" is now DWIMmed to show how lines
-   in path in an old revision OLD have survived up to the current
-   commit.
-   (merge e1d09701a4 jc/blame-reverse later to maint).
-
- * The http.emptyauth configuration variable is a way to allow an empty username to
-   pass when attempting to authenticate using mechanisms like
-   Kerberos.  We took an unspecified (NULL) username and sent ":"
-   (i.e. no username, no password) to CURLOPT_USERPWD, but did not do
-   the same when the username is explicitly set to an empty string.
-
- * "git clone" of a local repository can be done at the filesystem
-   level, but the codepath did not check errors while copying and
-   adjusting the file that lists alternate object stores.
-
- * Documentation for "git commit" was updated to clarify that "commit
-   -p <paths>" adds to the current contents of the index to come up
-   with what to commit.
-
- * A stray symbolic link in the $GIT_DIR/refs/ directory could make name
-   resolution loop forever, which has been corrected.
-
- * The "submodule.<name>.path" stored in .gitmodules is never copied
-   to .git/config and such a key in .git/config has no meaning, but
-   the documentation described it next to submodule.<name>.url
-   as if both belong to .git/config.  This has been fixed.
-
- * In a worktree created via "git
-   worktree", "git checkout" attempts to protect users from confusion
-   by refusing to check out a branch that is already checked out in
-   another worktree.  However, this also prevented checking out a
-   branch which is designated as the primary branch of a bare
-   repository, in a worktree that is connected to the bare
-   repository.  The check has been corrected to allow it.
-
- * "git rebase" immediately after "git clone" failed to find the fork
-   point from the upstream.
-
- * When fetching from a remote that has many tags that are irrelevant
-   to branches we are following, we used to waste way too many cycles
-   checking if the object pointed at by a tag (that we are not
-   going to fetch!) exists in our repository too carefully.
-
- * Protect our code from over-eager compilers.
-
- * Recent git allows submodule.<name>.branch to use a special token
-   "." instead of the branch name; the documentation has been updated
-   to describe it.
-
- * "git send-email" attempts to pick up valid e-mails from the
-   trailers, but people in the real world write non-addresses there, like
-   "Cc: Stable <add@re.ss> # 4.8+", which broke the output depending
-   on the availability and vintage of the Mail::Address perl module.
-   (merge dcfafc5214 mm/send-email-cc-cruft-after-address later to maint).
-
- * The Travis CI configuration we ship ran the tests with the --verbose
-   option but this risks non-TAP output that happens to be "ok" to be
-   misinterpreted as TAP signalling a test that passed.  This resulted
-   in unnecessary failures.  This has been corrected by introducing a
-   new mode to run our tests in the test harness to send the verbose
-   output separately to the log file.
-
- * Some AsciiDoc formatters mishandle a displayed illustration with
-   tabs in it.  Adjust a few of them in merge-base documentation to
-   work around them.
-
- * Fixed a minor regression in "git submodule" that was introduced
-   when more helper functions were reimplemented in C.
-   (merge 77b63ac31e sb/submodule-ignore-trailing-slash later to maint).
-
- * The code that we have used for the past 10+ years to cycle
-   4-element ring buffers turns out to be not quite portable in
-   theoretical world.
-   (merge bb84735c80 rs/ring-buffer-wraparound later to maint).
-
- * "git daemon" used fixed-length buffers to turn URLs to the
-   repository the client asked for into the server side directory
-   paths, using snprintf() to avoid overflowing these buffers, but
-   allowed possibly truncated paths to the directory.  This has been
-   tightened to reject such a request that causes an overlong path to be
-   served.
-   (merge 6bdb0083be jk/daemon-path-ok-check-truncation later to maint).
-
- * Recent update to git-sh-setup (a library of shell functions that
-   are used by our in-tree scripted Porcelain commands) included
-   another shell library git-sh-i18n without specifying where it is,
-   relying on the $PATH.  This has been fixed to be more explicit by
-   prefixing with $(git --exec-path) output.
-   (merge 1073094f30 ak/sh-setup-dot-source-i18n-fix later to maint).
-
- * Fix for a racy false-positive test failure.
-   (merge fdf4f6c79b as/merge-attr-sleep later to maint).
-
- * Portability update and workaround for builds on recent Mac OS X.
-   (merge a296bc0132 ls/macos-update later to maint).
-
- * Using a %(HEAD) placeholder in "for-each-ref --format=" option
-   caused the command to segfault when on an unborn branch.
-   (merge 84679d470d jc/for-each-ref-head-segfault-fix later to maint).
-
- * "git rebase -i" did not work well with the core.commentchar
-   configuration variable for two reasons, both of which have been
-   fixed.
-   (merge 882cd23777 js/rebase-i-commentchar-fix later to maint).
-
- * Other minor doc, test and build updates and code cleanups.
-   (merge 5c238e29a8 jk/common-main later to maint).
-   (merge 5a5749e45b ak/pre-receive-hook-template-modefix later to maint).
-   (merge 6d834ac8f1 jk/rebase-config-insn-fmt-docfix later to maint).
-   (merge de9f7fa3b0 rs/commit-pptr-simplify later to maint).
-   (merge 4259d693fc sc/fmt-merge-msg-doc-markup-fix later to maint).
-   (merge 28fab7b23d nd/test-helpers later to maint).
-   (merge c2bb0c1d1e rs/cocci later to maint).
-   (merge 3285b7badb ps/common-info-doc later to maint).
-   (merge 2b090822e8 nd/worktree-lock later to maint).
-   (merge 4bd488ea7c jk/create-branch-remove-unused-param later to maint).
-   (merge 974e0044d6 tk/diffcore-delta-remove-unused later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.11.1.txt b/third_party/git/Documentation/RelNotes/2.11.1.txt
deleted file mode 100644
index 7d35cf186dbf..000000000000
--- a/third_party/git/Documentation/RelNotes/2.11.1.txt
+++ /dev/null
@@ -1,168 +0,0 @@
-Git v2.11.1 Release Notes
-=========================
-
-Fixes since v2.11
------------------
-
- * The default Travis-CI configuration specifies newer P4 and GitLFS.
-
- * The character width table has been updated to match Unicode 9.0
-
- * Update the isatty() emulation for Windows by updating the previous
-   hack that depended on internals of (older) MSVC runtime.
-
- * "git rev-parse --symbolic" failed with a more recent notation like
-   "HEAD^-1" and "HEAD^!".
-
- * An empty directory in a working tree that can simply be nuked used
-   to interfere while merging or cherry-picking a change to create a
-   submodule directory there, which has been fixed..
-
- * The code in "git push" to compute if any commit being pushed in the
-   superproject binds a commit in a submodule that hasn't been pushed
-   out was overly inefficient, making it unusable even for a small
-   project that does not have any submodule but have a reasonable
-   number of refs.
-
- * "git push --dry-run --recurse-submodule=on-demand" wasn't
-   "--dry-run" in the submodules.
-
- * The output from "git worktree list" was made in readdir() order,
-   and was unstable.
-
- * mergetool.<tool>.trustExitCode configuration variable did not apply
-   to built-in tools, but now it does.
-
- * "git p4" LFS support was broken when LFS stores an empty blob.
-
- * Fix a corner case in merge-recursive regression that crept in
-   during 2.10 development cycle.
-
- * Update the error messages from the dumb-http client when it fails
-   to obtain loose objects; we used to give sensible error message
-   only upon 404 but we now forbid unexpected redirects that needs to
-   be reported with something sensible.
-
- * When diff.renames configuration is on (and with Git 2.9 and later,
-   it is enabled by default, which made it worse), "git stash"
-   misbehaved if a file is removed and another file with a very
-   similar content is added.
-
- * "git diff --no-index" did not take "--no-abbrev" option.
-
- * "git difftool --dir-diff" had a minor regression when started from
-   a subdirectory, which has been fixed.
-
- * "git commit --allow-empty --only" (no pathspec) with dirty index
-   ought to be an acceptable way to create a new commit that does not
-   change any paths, but it was forbidden, perhaps because nobody
-   needed it so far.
-
- * A pathname that begins with "//" or "\\" on Windows is special but
-   path normalization logic was unaware of it.
-
- * "git pull --rebase", when there is no new commits on our side since
-   we forked from the upstream, should be able to fast-forward without
-   invoking "git rebase", but it didn't.
-
- * The way to specify hotkeys to "xxdiff" that is used by "git
-   mergetool" has been modernized to match recent versions of xxdiff.
-
- * Unlike "git am --abort", "git cherry-pick --abort" moved HEAD back
-   to where cherry-pick started while picking multiple changes, when
-   the cherry-pick stopped to ask for help from the user, and the user
-   did "git reset --hard" to a different commit in order to re-attempt
-   the operation.
-
- * Code cleanup in shallow boundary computation.
-
- * A recent update to receive-pack to make it easier to drop garbage
-   objects made it clear that GIT_ALTERNATE_OBJECT_DIRECTORIES cannot
-   have a pathname with a colon in it (no surprise!), and this in turn
-   made it impossible to push into a repository at such a path.  This
-   has been fixed by introducing a quoting mechanism used when
-   appending such a path to the colon-separated list.
-
- * The function usage_msg_opt() has been updated to say "fatal:"
-   before the custom message programs give, when they want to die
-   with a message about wrong command line options followed by the
-   standard usage string.
-
- * "git index-pack --stdin" needs an access to an existing repository,
-   but "git index-pack file.pack" to generate an .idx file that
-   corresponds to a packfile does not.
-
- * Fix for NDEBUG builds.
-
- * A lazy "git push" without refspec did not internally use a fully
-   specified refspec to perform 'current', 'simple', or 'upstream'
-   push, causing unnecessary "ambiguous ref" errors.
-
- * "git p4" misbehaved when swapping a directory and a symbolic link.
-
- * Even though an fix was attempted in Git 2.9.3 days, but running
-   "git difftool --dir-diff" from a subdirectory never worked. This
-   has been fixed.
-
- * "git p4" that tracks multiple p4 paths imported a single changelist
-   that touches files in these multiple paths as one commit, followed
-   by many empty commits.  This has been fixed.
-
- * A potential but unlikely buffer overflow in Windows port has been
-   fixed.
-
- * When the http server gives an incomplete response to a smart-http
-   rpc call, it could lead to client waiting for a full response that
-   will never come.  Teach the client side to notice this condition
-   and abort the transfer.
-
- * Some platforms no longer understand "latin-1" that is still seen in
-   the wild in e-mail headers; replace them with "iso-8859-1" that is
-   more widely known when conversion fails from/to it.
-
- * Update the procedure to generate "tags" for developer support.
-
- * Update the definition of the MacOSX test environment used by
-   TravisCI.
-
- * A few git-svn updates.
-
- * Compression setting for producing packfiles were spread across
-   three codepaths, one of which did not honor any configuration.
-   Unify these so that all of them honor core.compression and
-   pack.compression variables the same way.
-
- * "git fast-import" sometimes mishandled while rebalancing notes
-   tree, which has been fixed.
-
- * Recent update to the default abbreviation length that auto-scales
-   lacked documentation update, which has been corrected.
-
- * Leakage of lockfiles in the config subsystem has been fixed.
-
- * It is natural that "git gc --auto" may not attempt to pack
-   everything into a single pack, and there is no point in warning
-   when the user has configured the system to use the pack bitmap,
-   leading to disabling further "gc".
-
- * "git archive" did not read the standard configuration files, and
-   failed to notice a file that is marked as binary via the userdiff
-   driver configuration.
-
- * "git blame --porcelain" misidentified the "previous" <commit, path>
-   pair (aka "source") when contents came from two or more files.
-
- * "git rebase -i" with a recent update started showing an incorrect
-   count when squashing more than 10 commits.
-
- * "git <cmd> @{push}" on a detached HEAD used to segfault; it has
-   been corrected to error out with a message.
-
- * Tighten a test to avoid mistaking an extended ERE regexp engine as
-   a PRE regexp engine.
-
- * Typing ^C to pager, which usually does not kill it, killed Git and
-   took the pager down as a collateral damage in certain process-tree
-   structure.  This has been fixed.
-
-Also contains various documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.11.2.txt b/third_party/git/Documentation/RelNotes/2.11.2.txt
deleted file mode 100644
index 74288511686c..000000000000
--- a/third_party/git/Documentation/RelNotes/2.11.2.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Git v2.11.2 Release Notes
-=========================
-
-Fixes since v2.11.1
--------------------
-
- * "git-shell" rejects a request to serve a repository whose name
-   begins with a dash, which makes it no longer possible to get it
-   confused into spawning service programs like "git-upload-pack" with
-   an option like "--help", which in turn would spawn an interactive
-   pager, instead of working with the repository user asked to access
-   (i.e. the one whose name is "--help").
diff --git a/third_party/git/Documentation/RelNotes/2.11.3.txt b/third_party/git/Documentation/RelNotes/2.11.3.txt
deleted file mode 100644
index 4e3b78d0e8f9..000000000000
--- a/third_party/git/Documentation/RelNotes/2.11.3.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Git v2.11.3 Release Notes
-=========================
-
-This release forward-ports the fix for "ssh://..." URL from Git v2.7.6
diff --git a/third_party/git/Documentation/RelNotes/2.11.4.txt b/third_party/git/Documentation/RelNotes/2.11.4.txt
deleted file mode 100644
index ad4da8eb09ef..000000000000
--- a/third_party/git/Documentation/RelNotes/2.11.4.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Git v2.11.4 Release Notes
-=========================
-
-Fixes since v2.11.3
--------------------
-
- * "git cvsserver" no longer is invoked by "git daemon" by default,
-   as it is old and largely unmaintained.
-
- * Various Perl scripts did not use safe_pipe_capture() instead of
-   backticks, leaving them susceptible to end-user input.  They have
-   been corrected.
-
-Credits go to joernchen <joernchen@phenoelit.de> for finding the
-unsafe constructs in "git cvsserver", and to Jeff King at GitHub for
-finding and fixing instances of the same issue in other scripts.
-
diff --git a/third_party/git/Documentation/RelNotes/2.12.0.txt b/third_party/git/Documentation/RelNotes/2.12.0.txt
deleted file mode 100644
index d2f6a836146d..000000000000
--- a/third_party/git/Documentation/RelNotes/2.12.0.txt
+++ /dev/null
@@ -1,500 +0,0 @@
-Git 2.12 Release Notes
-======================
-
-Backward compatibility notes.
-
- * Use of an empty string that is used for 'everything matches' is
-   still warned and Git asks users to use a more explicit '.' for that
-   instead.  The hope is that existing users will not mind this
-   change, and eventually the warning can be turned into a hard error,
-   upgrading the deprecation into removal of this (mis)feature.  That
-   is not scheduled to happen in the upcoming release (yet).
-
- * The historical argument order "git merge <msg> HEAD <commit>..."
-   has been deprecated for quite some time, and will be removed in a
-   future release.
-
- * An ancient script "git relink" has been removed.
-
-
-Updates since v2.11
--------------------
-
-UI, Workflows & Features
-
- * Various updates to "git p4".
-
- * "git p4" didn't interact with the internal of .git directory
-   correctly in the modern "git-worktree"-enabled world.
-
- * "git branch --list" and friends learned "--ignore-case" option to
-   optionally sort branches and tags case insensitively.
-
- * In addition to %(subject), %(body), "log --pretty=format:..."
-   learned a new placeholder %(trailers).
-
- * "git rebase" learned "--quit" option, which allows a user to
-   remove the metadata left by an earlier "git rebase" that was
-   manually aborted without using "git rebase --abort".
-
- * "git clone --reference $there --recurse-submodules $super" has been
-   taught to guess repositories usable as references for submodules of
-   $super that are embedded in $there while making a clone of the
-   superproject borrow objects from $there; extend the mechanism to
-   also allow submodules of these submodules to borrow repositories
-   embedded in these clones of the submodules embedded in the clone of
-   the superproject.
-
- * Porcelain scripts written in Perl are getting internationalized.
-
- * "git merge --continue" has been added as a synonym to "git commit"
-   to conclude a merge that has stopped due to conflicts.
-
- * Finer-grained control of what protocols are allowed for transports
-   during clone/fetch/push have been enabled via a new configuration
-   mechanism.
-
- * "git shortlog" learned "--committer" option to group commits by
-   committer, instead of author.
-
- * GitLFS integration with "git p4" has been updated.
-
- * The isatty() emulation for Windows has been updated to eradicate
-   the previous hack that depended on internals of (older) MSVC
-   runtime.
-
- * Some platforms no longer understand "latin-1" that is still seen in
-   the wild in e-mail headers; replace them with "iso-8859-1" that is
-   more widely known when conversion fails from/to it.
-
- * "git grep" has been taught to optionally recurse into submodules.
-
- * "git rm" used to refuse to remove a submodule when it has its own
-   git repository embedded in its working tree.  It learned to move
-   the repository away to $GIT_DIR/modules/ of the superproject
-   instead, and allow the submodule to be deleted (as long as there
-   will be no loss of local modifications, that is).
-
- * A recent updates to "git p4" was not usable for older p4 but it
-   could be made to work with minimum changes.  Do so.
-
- * "git diff" learned diff.interHunkContext configuration variable
-   that gives the default value for its --inter-hunk-context option.
-
- * The prereleaseSuffix feature of version comparison that is used in
-   "git tag -l" did not correctly when two or more prereleases for the
-   same release were present (e.g. when 2.0, 2.0-beta1, and 2.0-beta2
-   are there and the code needs to compare 2.0-beta1 and 2.0-beta2).
-
- * "git submodule push" learned "--recurse-submodules=only option to
-   push submodules out without pushing the top-level superproject.
-
- * "git tag" and "git verify-tag" learned to put GPG verification
-   status in their "--format=<placeholders>" output format.
-
- * An ancient repository conversion tool left in contrib/ has been
-   removed.
-
- * "git show-ref HEAD" used with "--verify" because the user is not
-   interested in seeing refs/remotes/origin/HEAD, and used with
-   "--head" because the user does not want HEAD to be filtered out,
-   i.e. "git show-ref --head --verify HEAD", did not work as expected.
-
- * "git submodule add" used to be confused and refused to add a
-   locally created repository; users can now use "--force" option
-   to add them.
-   (merge 619acfc78c sb/submodule-add-force later to maint).
-
- * Some people feel the default set of colors used by "git log --graph"
-   rather limiting.  A mechanism to customize the set of colors has
-   been introduced.
-
- * "git read-tree" and its underlying unpack_trees() machinery learned
-   to report problematic paths prefixed with the --super-prefix option.
-
- * When a submodule "A", which has another submodule "B" nested within
-   it, is "absorbed" into the top-level superproject, the inner
-   submodule "B" used to be left in a strange state.  The logic to
-   adjust the .git pointers in these submodules has been corrected.
-
- * The user can specify a custom update method that is run when
-   "submodule update" updates an already checked out submodule.  This
-   was ignored when checking the submodule out for the first time and
-   we instead always just checked out the commit that is bound to the
-   path in the superproject's index.
-
- * The command line completion (in contrib/) learned that
-   "git diff --submodule=" can take "diff" as a recently added option.
-
- * The "core.logAllRefUpdates" that used to be boolean has been
-   enhanced to take 'always' as well, to record ref updates to refs
-   other than the ones that are expected to be updated (i.e. branches,
-   remote-tracking branches and notes).
-
- * Comes with more command line completion (in contrib/) for recently
-   introduced options.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * Commands that operate on a log message and add lines to the trailer
-   blocks, such as "format-patch -s", "cherry-pick (-x|-s)", and
-   "commit -s", have been taught to use the logic of and share the
-   code with "git interpret-trailer".
-
- * The default Travis-CI configuration specifies newer P4 and GitLFS.
-
- * The "fast hash" that had disastrous performance issues in some
-   corner cases has been retired from the internal diff.
-
- * The character width table has been updated to match Unicode 9.0
-
- * Update the procedure to generate "tags" for developer support.
-
- * The codeflow of setting NOATIME and CLOEXEC on file descriptors Git
-   opens has been simplified.
-
- * "git diff" and its family had two experimental heuristics to shift
-   the contents of a hunk to make the patch easier to read.  One of
-   them turns out to be better than the other, so leave only the
-   "--indent-heuristic" option and remove the other one.
-
- * A new submodule helper "git submodule embedgitdirs" to make it
-   easier to move embedded .git/ directory for submodules in a
-   superproject to .git/modules/ (and point the latter with the former
-   that is turned into a "gitdir:" file) has been added.
-
- * "git push \\server\share\dir" has recently regressed and then
-   fixed.  A test has retroactively been added for this breakage.
-
- * Build updates for Cygwin.
-
- * The implementation of "real_path()" was to go there with chdir(2)
-   and call getcwd(3), but this obviously wouldn't be usable in a
-   threaded environment.  Rewrite it to manually resolve relative
-   paths including symbolic links in path components.
-
- * Adjust documentation to help AsciiDoctor render better while not
-   breaking the rendering done by AsciiDoc.
-
- * The sequencer machinery has been further enhanced so that a later
-   set of patches can start using it to reimplement "rebase -i".
-
- * Update the definition of the MacOSX test environment used by
-   TravisCI.
-
- * Rewrite a scripted porcelain "git difftool" in C.
-
- * "make -C t failed" will now run only the tests that failed in the
-   previous run.  This is usable only when prove is not use, and gives
-   a useless error message when run after "make clean", but otherwise
-   is serviceable.
-
- * "uchar [40]" to "struct object_id" conversion continues.
-
-
-Also contains various documentation updates and code clean-ups.
-
-Fixes since v2.10
------------------
-
-Unless otherwise noted, all the fixes since v2.9 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * We often decide if a session is interactive by checking if the
-   standard I/O streams are connected to a TTY, but isatty() that
-   comes with Windows incorrectly returned true if it is used on NUL
-   (i.e. an equivalent to /dev/null).  This has been fixed.
-
- * "git svn" did not work well with path components that are "0", and
-   some configuration variable it uses were not documented.
-
- * "git rev-parse --symbolic" failed with a more recent notation like
-   "HEAD^-1" and "HEAD^!".
-
- * An empty directory in a working tree that can simply be nuked used
-   to interfere while merging or cherry-picking a change to create a
-   submodule directory there, which has been fixed..
-
- * The code in "git push" to compute if any commit being pushed in the
-   superproject binds a commit in a submodule that hasn't been pushed
-   out was overly inefficient, making it unusable even for a small
-   project that does not have any submodule but have a reasonable
-   number of refs.
-
- * "git push --dry-run --recurse-submodule=on-demand" wasn't
-   "--dry-run" in the submodules.
-
- * The output from "git worktree list" was made in readdir() order,
-   and was unstable.
-
- * mergetool.<tool>.trustExitCode configuration variable did not apply
-   to built-in tools, but now it does.
-
- * "git p4" LFS support was broken when LFS stores an empty blob.
-
- * A corner case in merge-recursive regression that crept in
-   during 2.10 development cycle has been fixed.
-
- * Transport with dumb http can be fooled into following foreign URLs
-   that the end user does not intend to, especially with the server
-   side redirects and http-alternates mechanism, which can lead to
-   security issues.  Tighten the redirection and make it more obvious
-   to the end user when it happens.
-
- * Update the error messages from the dumb-http client when it fails
-   to obtain loose objects; we used to give sensible error message
-   only upon 404 but we now forbid unexpected redirects that needs to
-   be reported with something sensible.
-
- * When diff.renames configuration is on (and with Git 2.9 and later,
-   it is enabled by default, which made it worse), "git stash"
-   misbehaved if a file is removed and another file with a very
-   similar content is added.
-
- * "git diff --no-index" did not take "--no-abbrev" option.
-
- * "git difftool --dir-diff" had a minor regression when started from
-   a subdirectory, which has been fixed.
-
- * "git commit --allow-empty --only" (no pathspec) with dirty index
-   ought to be an acceptable way to create a new commit that does not
-   change any paths, but it was forbidden, perhaps because nobody
-   needed it so far.
-
- * Git 2.11 had a minor regression in "merge --ff-only" that competed
-   with another process that simultaneously attempted to update the
-   index. We used to explain what went wrong with an error message,
-   but the new code silently failed.  The error message has been
-   resurrected.
-
- * A pathname that begins with "//" or "\\" on Windows is special but
-   path normalization logic was unaware of it.
-
- * "git pull --rebase", when there is no new commits on our side since
-   we forked from the upstream, should be able to fast-forward without
-   invoking "git rebase", but it didn't.
-
- * The way to specify hotkeys to "xxdiff" that is used by "git
-   mergetool" has been modernized to match recent versions of xxdiff.
-
- * Unlike "git am --abort", "git cherry-pick --abort" moved HEAD back
-   to where cherry-pick started while picking multiple changes, when
-   the cherry-pick stopped to ask for help from the user, and the user
-   did "git reset --hard" to a different commit in order to re-attempt
-   the operation.
-
- * Code cleanup in shallow boundary computation.
-
- * A recent update to receive-pack to make it easier to drop garbage
-   objects made it clear that GIT_ALTERNATE_OBJECT_DIRECTORIES cannot
-   have a pathname with a colon in it (no surprise!), and this in turn
-   made it impossible to push into a repository at such a path.  This
-   has been fixed by introducing a quoting mechanism used when
-   appending such a path to the colon-separated list.
-
- * The function usage_msg_opt() has been updated to say "fatal:"
-   before the custom message programs give, when they want to die
-   with a message about wrong command line options followed by the
-   standard usage string.
-
- * "git index-pack --stdin" needs an access to an existing repository,
-   but "git index-pack file.pack" to generate an .idx file that
-   corresponds to a packfile does not.
-
- * Fix for NDEBUG builds.
-
- * A lazy "git push" without refspec did not internally use a fully
-   specified refspec to perform 'current', 'simple', or 'upstream'
-   push, causing unnecessary "ambiguous ref" errors.
-
- * "git p4" misbehaved when swapping a directory and a symbolic link.
-
- * Even though an fix was attempted in Git 2.9.3 days, but running
-   "git difftool --dir-diff" from a subdirectory never worked. This
-   has been fixed.
-
- * "git p4" that tracks multiple p4 paths imported a single changelist
-   that touches files in these multiple paths as one commit, followed
-   by many empty commits.  This has been fixed.
-
- * A potential but unlikely buffer overflow in Windows port has been
-   fixed.
-
- * When the http server gives an incomplete response to a smart-http
-   rpc call, it could lead to client waiting for a full response that
-   will never come.  Teach the client side to notice this condition
-   and abort the transfer.
-
- * Compression setting for producing packfiles were spread across
-   three codepaths, one of which did not honor any configuration.
-   Unify these so that all of them honor core.compression and
-   pack.compression variables the same way.
-
- * "git fast-import" sometimes mishandled while rebalancing notes
-   tree, which has been fixed.
-
- * Recent update to the default abbreviation length that auto-scales
-   lacked documentation update, which has been corrected.
-
- * Leakage of lockfiles in the config subsystem has been fixed.
-
- * It is natural that "git gc --auto" may not attempt to pack
-   everything into a single pack, and there is no point in warning
-   when the user has configured the system to use the pack bitmap,
-   leading to disabling further "gc".
-
- * "git archive" did not read the standard configuration files, and
-   failed to notice a file that is marked as binary via the userdiff
-   driver configuration.
-
- * "git blame --porcelain" misidentified the "previous" <commit, path>
-   pair (aka "source") when contents came from two or more files.
-
- * "git rebase -i" with a recent update started showing an incorrect
-   count when squashing more than 10 commits.
-
- * "git <cmd> @{push}" on a detached HEAD used to segfault; it has
-   been corrected to error out with a message.
-
- * Running "git add a/b" when "a" is a submodule correctly errored
-   out, but without a meaningful error message.
-   (merge 2d81c48fa7 sb/pathspec-errors later to maint).
-
- * Typing ^C to pager, which usually does not kill it, killed Git and
-   took the pager down as a collateral damage in certain process-tree
-   structure.  This has been fixed.
-
- * "git mergetool" without any pathspec on the command line that is
-   run from a subdirectory became no-op in Git v2.11 by mistake, which
-   has been fixed.
-
- * Retire long unused/unmaintained gitview from the contrib/ area.
-   (merge 3120925c25 sb/remove-gitview later to maint).
-
- * Tighten a test to avoid mistaking an extended ERE regexp engine as
-   a PRE regexp engine.
-
- * An error message with an ASCII control character like '\r' in it
-   can alter the message to hide its early part, which is problematic
-   when a remote side gives such an error message that the local side
-   will relay with a "remote: " prefix.
-   (merge f290089879 jk/vreport-sanitize later to maint).
-
- * "git fsck" inspects loose objects more carefully now.
-   (merge cce044df7f jk/loose-object-fsck later to maint).
-
- * A crashing bug introduced in v2.11 timeframe has been found (it is
-   triggerable only in fast-import) and fixed.
-   (merge abd5a00268 jk/clear-delta-base-cache-fix later to maint).
-
- * With an anticipatory tweak for remotes defined in ~/.gitconfig
-   (e.g. "remote.origin.prune" set to true, even though there may or
-   may not actually be "origin" remote defined in a particular Git
-   repository), "git remote rename" and other commands misinterpreted
-   and behaved as if such a non-existing remote actually existed.
-   (merge e459b073fb js/remote-rename-with-half-configured-remote later to maint).
-
- * A few codepaths had to rely on a global variable when sorting
-   elements of an array because sort(3) API does not allow extra data
-   to be passed to the comparison function.  Use qsort_s() when
-   natively available, and a fallback implementation of it when not,
-   to eliminate the need, which is a prerequisite for making the
-   codepath reentrant.
-
- * "git fsck --connectivity-check" was not working at all.
-   (merge a2b22854bd jk/fsck-connectivity-check-fix later to maint).
-
- * After starting "git rebase -i", which first opens the user's editor
-   to edit the series of patches to apply, but before saving the
-   contents of that file, "git status" failed to show the current
-   state (i.e. you are in an interactive rebase session, but you have
-   applied no steps yet) correctly.
-   (merge df9ded4984 js/status-pre-rebase-i later to maint).
-
- * Test tweak for FreeBSD where /usr/bin/unzip is unsuitable to run
-   our tests but /usr/local/bin/unzip is usable.
-   (merge d98b2c5fce js/unzip-in-usr-bin-workaround later to maint).
-
- * "git p4" did not work well with multiple git-p4.mapUser entries on
-   Windows.
-   (merge c3c2b05776 gv/mingw-p4-mapuser later to maint).
-
- * "git help" enumerates executable files in $PATH; the implementation
-   of "is this file executable?" on Windows has been optimized.
-   (merge c755015f79 hv/mingw-help-is-executable later to maint).
-
- * Test tweaks for those who have default ACL in their git source tree
-   that interfere with the umask test.
-   (merge d549d21307 mm/reset-facl-before-umask-test later to maint).
-
- * Names of the various hook scripts must be spelled exactly, but on
-   Windows, an .exe binary must be named with .exe suffix; notice
-   $GIT_DIR/hooks/<hookname>.exe as a valid <hookname> hook.
-   (merge 235be51fbe js/mingw-hooks-with-exe-suffix later to maint).
-
- * Asciidoctor, an alternative reimplementation of AsciiDoc, still
-   needs some changes to work with documents meant to be formatted
-   with AsciiDoc.  "make USE_ASCIIDOCTOR=YesPlease" to use it out of
-   the box to document our pages is getting closer to reality.
-
- * Correct command line completion (in contrib/) on "git svn"
-   (merge 2cbad17642 ew/complete-svn-authorship-options later to maint).
-
- * Incorrect usage help message for "git worktree prune" has been fixed.
-   (merge 2488dcab22 ps/worktree-prune-help-fix later to maint).
-
- * Adjust a perf test to new world order where commands that do
-   require a repository are really strict about having a repository.
-   (merge c86000c1a7 rs/p5302-create-repositories-before-tests later to maint).
-
- * "git log --graph" did not work well with "--name-only", even though
-   other forms of "diff" output were handled correctly.
-   (merge f5022b5fed jk/log-graph-name-only later to maint).
-
- * The push-options given via the "--push-options" option were not
-   passed through to external remote helpers such as "smart HTTP" that
-   are invoked via the transport helper.
-
- * The documentation explained what "git stash" does to the working
-   tree (after stashing away the local changes) in terms of "reset
-   --hard", which was exposing an unnecessary implementation detail.
-   (merge 20a7e06172 tg/stash-doc-cleanup later to maint).
-
- * When "git p4" imports changelist that removes paths, it failed to
-   convert pathnames when the p4 used encoding different from the one
-   used on the Git side.  This has been corrected.
-   (merge a8b05162e8 ls/p4-path-encoding later to maint).
-
- * A new coccinelle rule that catches a check of !pointer before the
-   pointer is free(3)d, which most likely is a bug.
-   (merge ec6cd14c7a rs/cocci-check-free-only-null later to maint).
-
- * "ls-files" run with pathspec has been micro-optimized to avoid
-   having to memmove(3) unnecessary bytes.
-   (merge 96f6d3f61a rs/ls-files-partial-optim later to maint).
-
- * A hotfix for a topic already in 'master'.
-   (merge a4d92d579f js/mingw-isatty later to maint).
-
- * Other minor doc, test and build updates and code cleanups.
-   (merge f2627d9b19 sb/submodule-config-cleanup later to maint).
-   (merge 384f1a167b sb/unpack-trees-cleanup later to maint).
-   (merge 874444b704 rh/diff-orderfile-doc later to maint).
-   (merge eafd5d9483 cw/doc-sign-off later to maint).
-   (merge 0aaad415bc rs/absolute-pathdup later to maint).
-   (merge 4432dd6b5b rs/receive-pack-cleanup later to maint).
-   (merge 540a398e9c sg/mailmap-self later to maint).
-   (merge 209df269a6 nd/rev-list-all-includes-HEAD-doc later to maint).
-   (merge 941b9c5270 sb/doc-unify-bottom later to maint).
-   (merge 2aaf37b62c jk/doc-remote-helpers-markup-fix later to maint).
-   (merge e91461b332 jk/doc-submodule-markup-fix later to maint).
-   (merge 8ab9740d9f dp/submodule-doc-markup-fix later to maint).
-   (merge 0838cbc22f jk/tempfile-ferror-fclose-confusion later to maint).
-   (merge 115a40add6 dr/doc-check-ref-format-normalize later to maint).
-   (merge 133f0a299d gp/document-dotfiles-in-templates-are-not-copied later to maint).
-   (merge 2b35a9f4c7 bc/blame-doc-fix later to maint).
-   (merge 7e82388024 ps/doc-gc-aggressive-depth-update later to maint).
-   (merge 9993a7c5f1 bc/worktree-doc-fix-detached later to maint).
-   (merge e519eccdf4 rt/align-add-i-help-text later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.12.1.txt b/third_party/git/Documentation/RelNotes/2.12.1.txt
deleted file mode 100644
index a74f7db74767..000000000000
--- a/third_party/git/Documentation/RelNotes/2.12.1.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-Git v2.12.1 Release Notes
-=========================
-
-Fixes since v2.12
------------------
-
- * Reduce authentication round-trip over HTTP when the server supports
-   just a single authentication method.  This also improves the
-   behaviour when Git is misconfigured to enable http.emptyAuth
-   against a server that does not authenticate without a username
-   (i.e. not using Kerberos etc., which makes http.emptyAuth
-   pointless).
-
- * Windows port wants to use OpenSSL's implementation of SHA-1
-   routines, so let them.
-
- * Add 32-bit Linux variant to the set of platforms to be tested with
-   Travis CI.
-
- * When a redirected http transport gets an error during the
-   redirected request, we ignored the error we got from the server,
-   and ended up giving a not-so-useful error message.
-
- * The patch subcommand of "git add -i" was meant to have paths
-   selection prompt just like other subcommand, unlike "git add -p"
-   directly jumps to hunk selection.  Recently, this was broken and
-   "add -i" lost the paths selection dialog, but it now has been
-   fixed.
-
- * Git v2.12 was shipped with an embarrassing breakage where various
-   operations that verify paths given from the user stopped dying when
-   seeing an issue, and instead later triggering segfault.
-
- * The code to parse "git log -L..." command line was buggy when there
-   are many ranges specified with -L; overrun of the allocated buffer
-   has been fixed.
-
- * The command-line parsing of "git log -L" copied internal data
-   structures using incorrect size on ILP32 systems.
-
-Also contains various documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.12.2.txt b/third_party/git/Documentation/RelNotes/2.12.2.txt
deleted file mode 100644
index 441939709c77..000000000000
--- a/third_party/git/Documentation/RelNotes/2.12.2.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-Git v2.12.2 Release Notes
-=========================
-
-Fixes since v2.12.1
--------------------
-
- * "git status --porcelain" is supposed to give a stable output, but a
-   few strings were left as translatable by mistake.
-
- * "Dumb http" transport used to misparse a nonsense http-alternates
-   response, which has been fixed.
-
- * "git diff --quiet" relies on the size field in diff_filespec to be
-   correctly populated, but diff_populate_filespec() helper function
-   made an incorrect short-cut when asked only to populate the size
-   field for paths that need to go through convert_to_git() (e.g. CRLF
-   conversion).
-
- * There is no need for Python only to give a few messages to the
-   standard error stream, but we somehow did.
-
- * A leak in a codepath to read from a packed object in (rare) cases
-   has been plugged.
-
- * "git upload-pack", which is a counter-part of "git fetch", did not
-   report a request for a ref that was not advertised as invalid.
-   This is generally not a problem (because "git fetch" will stop
-   before making such a request), but is the right thing to do.
-
- * A "gc.log" file left by a backgrounded "gc --auto" disables further
-   automatic gc; it has been taught to run at least once a day (by
-   default) by ignoring a stale "gc.log" file that is too old.
-
- * "git remote rm X", when a branch has remote X configured as the
-   value of its branch.*.remote, tried to remove branch.*.remote and
-   branch.*.merge and failed if either is unset.
-
- * A caller of tempfile API that uses stdio interface to write to
-   files may ignore errors while writing, which is detected when
-   tempfile is closed (with a call to ferror()).  By that time, the
-   original errno that may have told us what went wrong is likely to
-   be long gone and was overwritten by an irrelevant value.
-   close_tempfile() now resets errno to EIO to make errno at least
-   predictable.
-
- * "git show-branch" expected there were only very short branch names
-   in the repository and used a fixed-length buffer to hold them
-   without checking for overflow.
-
- * The code that parses header fields in the commit object has been
-   updated for (micro)performance and code hygiene.
-
- * A test that creates a confusing branch whose name is HEAD has been
-   corrected not to do so.
-
- * "Cc:" on the trailer part does not have to conform to RFC strictly,
-   unlike in the e-mail header.  "git send-email" has been updated to
-   ignore anything after '>' when picking addresses, to allow non-address
-   cruft like " # stable 4.4" after the address.
-
- * "git push" had a handful of codepaths that could lead to a deadlock
-   when unexpected error happened, which has been fixed.
-
- * Code to read submodule.<name>.ignore config did not state the
-   variable name correctly when giving an error message diagnosing
-   misconfiguration.
-
- * "git ls-remote" and "git archive --remote" are designed to work
-   without being in a directory under Git's control.  However, recent
-   updates revealed that we randomly look into a directory called
-   .git/ without actually doing necessary set-up when working in a
-   repository.  Stop doing so.
-
- * The code to parse the command line "git grep <patterns>... <rev>
-   [[--] <pathspec>...]" has been cleaned up, and a handful of bugs
-   have been fixed (e.g. we used to check "--" if it is a rev).
-
- * The code to parse "git -c VAR=VAL cmd" and set configuration
-   variable for the duration of cmd had two small bugs, which have
-   been fixed.
-   This supersedes jc/config-case-cmdline topic that has been discarded.
-
-Also contains various documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.12.3.txt b/third_party/git/Documentation/RelNotes/2.12.3.txt
deleted file mode 100644
index ebca846d5d80..000000000000
--- a/third_party/git/Documentation/RelNotes/2.12.3.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-Git v2.12.3 Release Notes
-=========================
-
-Fixes since v2.12.2
--------------------
-
- * The "parse_config_key()" API function has been cleaned up.
-
- * An helper function to make it easier to append the result from
-   real_path() to a strbuf has been added.
-
- * The t/perf performance test suite was not prepared to test not so
-   old versions of Git, but now it covers versions of Git that are not
-   so ancient.
-
- * Picking two versions of Git and running tests to make sure the
-   older one and the newer one interoperate happily has now become
-   possible.
-
- * Teach the "debug" helper used in the test framework that allows a
-   command to run under "gdb" to make the session interactive.
-
- * "git repack --depth=<n>" for a long time busted the specified depth
-   when reusing delta from existing packs.  This has been corrected.
-
- * user.email that consists of only cruft chars should consistently
-   error out, but didn't.
-
- * A few tests were run conditionally under (rare) conditions where
-   they cannot be run (like running cvs tests under 'root' account).
-
- * "git branch @" created refs/heads/@ as a branch, and in general the
-   code that handled @{-1} and @{upstream} was a bit too loose in
-   disambiguating.
-
- * "git fetch" that requests a commit by object name, when the other
-   side does not allow such an request, failed without much
-   explanation.
-
- * "git filter-branch --prune-empty" drops a single-parent commit that
-   becomes a no-op, but did not drop a root commit whose tree is empty.
-
- * Recent versions of Git treats http alternates (used in dumb http
-   transport) just like HTTP redirects and requires the client to
-   enable following it, due to security concerns.  But we forgot to
-   give a warning when we decide not to honor the alternates.
-
- * NO_PTHREADS build has been broken for some time; now fixed.
-
- * Fix for potential segv introduced in v2.11.0 and later (also
-   v2.10.2).
-
- * A few unterminated here documents in tests were fixed, which in
-   turn revealed incorrect expectations the tests make. These tests
-   have been updated.
-
- * "git-shell" rejects a request to serve a repository whose name
-   begins with a dash, which makes it no longer possible to get it
-   confused into spawning service programs like "git-upload-pack" with
-   an option like "--help", which in turn would spawn an interactive
-   pager, instead of working with the repository user asked to access
-   (i.e. the one whose name is "--help").
-
-Also contains various documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.12.4.txt b/third_party/git/Documentation/RelNotes/2.12.4.txt
deleted file mode 100644
index 3f569382211d..000000000000
--- a/third_party/git/Documentation/RelNotes/2.12.4.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Git v2.12.4 Release Notes
-=========================
-
-This release forward-ports the fix for "ssh://..." URL from Git v2.7.6
diff --git a/third_party/git/Documentation/RelNotes/2.12.5.txt b/third_party/git/Documentation/RelNotes/2.12.5.txt
deleted file mode 100644
index 8fa73cfce7fa..000000000000
--- a/third_party/git/Documentation/RelNotes/2.12.5.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Git v2.12.5 Release Notes
-=========================
-
-Fixes since v2.12.4
--------------------
-
- * "git cvsserver" no longer is invoked by "git daemon" by default,
-   as it is old and largely unmaintained.
-
- * Various Perl scripts did not use safe_pipe_capture() instead of
-   backticks, leaving them susceptible to end-user input.  They have
-   been corrected.
-
-Credits go to joernchen <joernchen@phenoelit.de> for finding the
-unsafe constructs in "git cvsserver", and to Jeff King at GitHub for
-finding and fixing instances of the same issue in other scripts.
-
diff --git a/third_party/git/Documentation/RelNotes/2.13.0.txt b/third_party/git/Documentation/RelNotes/2.13.0.txt
deleted file mode 100644
index 2a47b4cb0cd4..000000000000
--- a/third_party/git/Documentation/RelNotes/2.13.0.txt
+++ /dev/null
@@ -1,618 +0,0 @@
-Git 2.13 Release Notes
-======================
-
-Backward compatibility notes.
-
- * Use of an empty string as a pathspec element that is used for
-   'everything matches' is still warned and Git asks users to use a
-   more explicit '.' for that instead.  The hope is that existing
-   users will not mind this change, and eventually the warning can be
-   turned into a hard error, upgrading the deprecation into removal of
-   this (mis)feature.  That is not scheduled to happen in the upcoming
-   release (yet).
-
- * The historical argument order "git merge <msg> HEAD <commit>..."
-   has been deprecated for quite some time, and is now removed.
-
- * The default location "~/.git-credential-cache/socket" for the
-   socket used to communicate with the credential-cache daemon has
-   been moved to "~/.cache/git/credential/socket".
-
- * Git now avoids blindly falling back to ".git" when the setup
-   sequence said we are _not_ in Git repository.  A corner case that
-   happens to work right now may be broken by a call to die("BUG").
-   We've tried hard to locate such cases and fixed them, but there
-   might still be cases that need to be addressed--bug reports are
-   greatly appreciated.
-
-
-Updates since v2.12
--------------------
-
-UI, Workflows & Features
-
- * "git describe" and "git name-rev" have been taught to take more
-   than one refname patterns to restrict the set of refs to base their
-   naming output on, and also learned to take negative patterns to
-   name refs not to be used for naming via their "--exclude" option.
-
- * Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
-   once there no longer is any other branch whose name begins with
-   "foo/", but we didn't do so so far.  Now we do.
-
- * When "git merge" detects a path that is renamed in one history
-   while the other history deleted (or modified) it, it now reports
-   both paths to help the user understand what is going on in the two
-   histories being merged.
-
- * The <url> part in "http.<url>.<variable>" configuration variable
-   can now be spelled with '*' that serves as wildcard.
-   E.g. "http.https://*.example.com.proxy" can be used to specify the
-   proxy used for https://a.example.com, https://b.example.com, etc.,
-   i.e. any host in the example.com domain.
-
- * "git tag" did not leave useful message when adding a new entry to
-   reflog; this was left unnoticed for a long time because refs/tags/*
-   doesn't keep reflog by default.
-
- * The "negative" pathspec feature was somewhat more cumbersome to use
-   than necessary in that its short-hand used "!" which needed to be
-   escaped from shells, and it required "exclude from what?" specified.
-
- * The command line options for ssh invocation needs to be tweaked for
-   some implementations of SSH (e.g. PuTTY plink wants "-P <port>"
-   while OpenSSH wants "-p <port>" to specify port to connect to), and
-   the variant was guessed when GIT_SSH environment variable is used
-   to specify it.  The logic to guess now applies to the command
-   specified by the newer GIT_SSH_COMMAND and also core.sshcommand
-   configuration variable, and comes with an escape hatch for users to
-   deal with misdetected cases.
-
- * The "--git-path", "--git-common-dir", and "--shared-index-path"
-   options of "git rev-parse" did not produce usable output.  They are
-   now updated to show the path to the correct file, relative to where
-   the caller is.
-
- * "git diff -W" has been taught to handle the case where a new
-   function is added at the end of the file better.
-
- * "git update-ref -d" and other operations to delete references did
-   not leave any entry in HEAD's reflog when the reference being
-   deleted was the current branch.  This is not a problem in practice
-   because you do not want to delete the branch you are currently on,
-   but caused renaming of the current branch to something else not to
-   be logged in a useful way.
-
- * "Cc:" on the trailer part does not have to conform to RFC strictly,
-   unlike in the e-mail header.  "git send-email" has been updated to
-   ignore anything after '>' when picking addresses, to allow non-address
-   cruft like " # stable 4.4" after the address.
-
- * When "git submodule init" decides that the submodule in the working
-   tree is its upstream, it now gives a warning as it is not a very
-   common setup.
-
- * "git stash push" takes a pathspec so that the local changes can be
-   stashed away only partially.
-
- * Documentation for "git ls-files" did not refer to core.quotePath.
-
- * The experimental "split index" feature has gained a few
-   configuration variables to make it easier to use.
-
- * From a working tree of a repository, a new option of "rev-parse"
-   lets you ask if the repository is used as a submodule of another
-   project, and where the root level of the working tree of that
-   project (i.e. your superproject) is.
-
- * The pathspec mechanism learned to further limit the paths that
-   match the pattern to those that have specified attributes attached
-   via the gitattributes mechanism.
-
- * Our source code has used the SHA1_HEADER cpp macro after "#include"
-   in the C code to switch among the SHA-1 implementations. Instead,
-   list the exact header file names and switch among implementations
-   using "#ifdef BLK_SHA1/#include "block-sha1/sha1.h"/.../#endif";
-   this helps some IDE tools.
-
- * The start-up sequence of "git" needs to figure out some configured
-   settings before it finds and set itself up in the location of the
-   repository and was quite messy due to its "chicken-and-egg" nature.
-   The code has been restructured.
-
- * The command line prompt (in contrib/) learned a new 'tag' style
-   that can be specified with GIT_PS1_DESCRIBE_STYLE, to describe a
-   detached HEAD with "git describe --tags".
-
- * The configuration file learned a new "includeIf.<condition>.path"
-   that includes the contents of the given path only when the
-   condition holds.  This allows you to say "include this work-related
-   bit only in the repositories under my ~/work/ directory".
-
- * Recent update to "rebase -i" started showing a message that is not
-   a warning with "warning:" prefix by mistake.  This has been fixed.
-
- * Recently we started passing the "--push-options" through the
-   external remote helper interface; now the "smart HTTP" remote
-   helper understands what to do with the passed information.
-
- * "git describe --dirty" dies when it cannot be determined if the
-   state in the working tree matches that of HEAD (e.g. broken
-   repository or broken submodule).  The command learned a new option
-   "git describe --broken" to give "$name-broken" (where $name is the
-   description of HEAD) in such a case.
-
- * "git checkout" is taught the "--recurse-submodules" option.
-
- * Recent enhancement to "git stash push" command to support pathspec
-   to allow only a subset of working tree changes to be stashed away
-   was found to be too chatty and exposed the internal implementation
-   detail (e.g. when it uses reset to match the index to HEAD before
-   doing other things, output from reset seeped out).  These, and
-   other chattyness has been fixed.
-
- * "git merge <message> HEAD <commit>" syntax that has been deprecated
-   since October 2007 has been removed.
-
- * The refs completion for large number of refs has been sped up,
-   partly by giving up disambiguating ambiguous refs and partly by
-   eliminating most of the shell processing between 'git for-each-ref'
-   and 'ls-remote' and Bash's completion facility.
-
- * On many keyboards, typing "@{" involves holding down SHIFT key and
-   one can easily end up with "@{Up..." when typing "@{upstream}".  As
-   the upstream/push keywords do not appear anywhere else in the syntax,
-   we can safely accept them case insensitively without introducing
-   ambiguity or confusion to solve this.
-
- * "git tag/branch/for-each-ref" family of commands long allowed to
-   filter the refs by "--contains X" (show only the refs that are
-   descendants of X), "--merged X" (show only the refs that are
-   ancestors of X), "--no-merged X" (show only the refs that are not
-   ancestors of X).  One curious omission, "--no-contains X" (show
-   only the refs that are not descendants of X) has been added to
-   them.
-
- * The default behaviour of "git log" in an interactive session has
-   been changed to enable "--decorate".
-
- * The output from "git status --short" has been extended to show
-   various kinds of dirtiness in submodules differently; instead of to
-   "M" for modified, 'm' and '?' can be shown to signal changes only
-   to the working tree of the submodule but not the commit that is
-   checked out.
-
- * Allow the http.postbuffer configuration variable to be set to a
-   size that can be expressed in size_t, which can be larger than
-   ulong on some platforms.
-
- * "git rebase" learns "--signoff" option.
-
- * The completion script (in contrib/) learned to complete "git push
-   --delete b<TAB>" to complete branch name to be deleted.
-
- * "git worktree add --lock" allows to lock a worktree immediately
-   after it's created. This helps prevent a race between "git worktree
-   add; git worktree lock" and "git worktree prune".
-
- * Completion for "git checkout <branch>" that auto-creates the branch
-   out of a remote tracking branch can now be disabled, as this
-   completion often gets in the way when completing to checkout an
-   existing local branch that happens to share the same prefix with
-   bunch of remote tracking branches.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * The code to list branches in "git branch" has been consolidated
-   with the more generic ref-filter API.
-
- * Resource usage while enumerating refs from alternate object store
-   has been optimized to help receiving end of "push" that hosts a
-   repository with many "forks".
-
- * The gitattributes machinery is being taught to work better in a
-   multi-threaded environment.
-
- * "git rebase -i" starts using the recently updated "sequencer" code.
-
- * Code and design clean-up for the refs API.
-
- * The preload-index code has been taught not to bother with the index
-   entries that are paths that are not checked out by "sparse checkout".
-
- * Some warning() messages from "git clean" were updated to show the
-   errno from failed system calls.
-
- * The "parse_config_key()" API function has been cleaned up.
-
- * A test that creates a confusing branch whose name is HEAD has been
-   corrected not to do so.
-
- * The code that parses header fields in the commit object has been
-   updated for (micro)performance and code hygiene.
-
- * An helper function to make it easier to append the result from
-   real_path() to a strbuf has been added.
-
- * Reduce authentication round-trip over HTTP when the server supports
-   just a single authentication method.  This also improves the
-   behaviour when Git is misconfigured to enable http.emptyAuth
-   against a server that does not authenticate without a username
-   (i.e. not using Kerberos etc., which makes http.emptyAuth
-   pointless).
-
- * Windows port wants to use OpenSSL's implementation of SHA-1
-   routines, so let them.
-
- * The t/perf performance test suite was not prepared to test not so
-   old versions of Git, but now it covers versions of Git that are not
-   so ancient.
-
- * Add 32-bit Linux variant to the set of platforms to be tested with
-   Travis CI.
-
- * "git branch --list" takes the "--abbrev" and "--no-abbrev" options
-   to control the output of the object name in its "-v"(erbose)
-   output, but a recent update started ignoring them; fix it before
-   the breakage reaches to any released version.
-
- * Picking two versions of Git and running tests to make sure the
-   older one and the newer one interoperate happily has now become
-   possible.
-
- * "git tag --contains" used to (ab)use the object bits to keep track
-   of the state of object reachability without clearing them after
-   use; this has been cleaned up and made to use the newer commit-slab
-   facility.
-
- * The "debug" helper used in the test framework learned to run
-   a command under "gdb" interactively.
-
- * The "detect attempt to create collisions" variant of SHA-1
-   implementation by Marc Stevens (CWI) and Dan Shumow (Microsoft)
-   has been integrated and made the default.
-
- * The test framework learned to detect unterminated here documents.
-
- * The name-hash used for detecting paths that are different only in
-   cases (which matter on case insensitive filesystems) has been
-   optimized to take advantage of multi-threading when it makes sense.
-
- * An earlier version of sha1dc/sha1.c that was merged to 'master'
-   compiled incorrectly on Windows, which has been fixed.
-
- * "what URL do we want to update this submodule?" and "are we
-   interested in this submodule?" are split into two distinct
-   concepts, and then the way used to express the latter got extended,
-   paving a way to make it easier to manage a project with many
-   submodules and make it possible to later extend use of multiple
-   worktrees for a project with submodules.
-
- * Some debugging output from "git describe" were marked for l10n,
-   but some weren't.  Mark missing ones for l10n.
-
- * Define a new task in .travis.yml that triggers a test session on
-   Windows run elsewhere.
-
- * Conversion from uchar[20] to struct object_id continues.
-
- * The "submodule" specific field in the ref_store structure is
-   replaced with a more generic "gitdir" that can later be used also
-   when dealing with ref_store that represents the set of refs visible
-   from the other worktrees.
-
- * The string-list API used a custom reallocation strategy that was
-   very inefficient, instead of using the usual ALLOC_GROW() macro,
-   which has been fixed.
-   (merge 950a234cbd jh/string-list-micro-optim later to maint).
-
- * In a 2- and 3-way merge of trees, more than one source trees often
-   end up sharing an identical subtree; optimize by not reading the
-   same tree multiple times in such a case.
-   (merge d12a8cf0af jh/unpack-trees-micro-optim later to maint).
-
- * The index file has a trailing SHA-1 checksum to detect file
-   corruption, and historically we checked it every time the index
-   file is used.  Omit the validation during normal use, and instead
-   verify only in "git fsck".
-
- * Having a git command on the upstream side of a pipe in a test
-   script will hide the exit status from the command, which may cause
-   us to fail to notice a breakage; rewrite tests in a script to avoid
-   this issue.
-
- * Travis CI learns to run coccicheck.
-
- * "git checkout" that handles a lot of paths has been optimized by
-   reducing the number of unnecessary checks of paths in the
-   has_dir_name() function.
-
- * The internals of the refs API around the cached refs has been
-   streamlined.
-
- * Output from perf tests have been updated to align their titles.
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.12
------------------
-
-Unless otherwise noted, all the fixes since v2.12 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * "git repack --depth=<n>" for a long time busted the specified depth
-   when reusing delta from existing packs.  This has been corrected.
-
- * The code to parse the command line "git grep <patterns>... <rev>
-   [[--] <pathspec>...]" has been cleaned up, and a handful of bugs
-   have been fixed (e.g. we used to check "--" if it is a rev).
-
- * "git ls-remote" and "git archive --remote" are designed to work
-   without being in a directory under Git's control.  However, recent
-   updates revealed that we randomly look into a directory called
-   .git/ without actually doing necessary set-up when working in a
-   repository.  Stop doing so.
-
- * "git show-branch" expected there were only very short branch names
-   in the repository and used a fixed-length buffer to hold them
-   without checking for overflow.
-
- * A caller of tempfile API that uses stdio interface to write to
-   files may ignore errors while writing, which is detected when
-   tempfile is closed (with a call to ferror()).  By that time, the
-   original errno that may have told us what went wrong is likely to
-   be long gone and was overwritten by an irrelevant value.
-   close_tempfile() now resets errno to EIO to make errno at least
-   predictable.
-
- * "git remote rm X", when a branch has remote X configured as the
-   value of its branch.*.remote, tried to remove branch.*.remote and
-   branch.*.merge and failed if either is unset.
-
- * A "gc.log" file left by a backgrounded "gc --auto" disables further
-   automatic gc; it has been taught to run at least once a day (by
-   default) by ignoring a stale "gc.log" file that is too old.
-
- * The code to parse "git -c VAR=VAL cmd" and set configuration
-   variable for the duration of cmd had two small bugs, which have
-   been fixed.
-
- * user.email that consists of only cruft chars should consistently
-   error out, but didn't.
-
- * "git upload-pack", which is a counter-part of "git fetch", did not
-   report a request for a ref that was not advertised as invalid.
-   This is generally not a problem (because "git fetch" will stop
-   before making such a request), but is the right thing to do.
-
- * A leak in a codepath to read from a packed object in (rare) cases
-   has been plugged.
-
- * When a redirected http transport gets an error during the
-   redirected request, we ignored the error we got from the server,
-   and ended up giving a not-so-useful error message.
-
- * The patch subcommand of "git add -i" was meant to have paths
-   selection prompt just like other subcommand, unlike "git add -p"
-   directly jumps to hunk selection.  Recently, this was broken and
-   "add -i" lost the paths selection dialog, but it now has been
-   fixed.
-
- * Git v2.12 was shipped with an embarrassing breakage where various
-   operations that verify paths given from the user stopped dying when
-   seeing an issue, and instead later triggering segfault.
-
- * There is no need for Python only to give a few messages to the
-   standard error stream, but we somehow did.
-
- * The code to parse "git log -L..." command line was buggy when there
-   are many ranges specified with -L; overrun of the allocated buffer
-   has been fixed.
-
- * The command-line parsing of "git log -L" copied internal data
-   structures using incorrect size on ILP32 systems.
-
- * "git diff --quiet" relies on the size field in diff_filespec to be
-   correctly populated, but diff_populate_filespec() helper function
-   made an incorrect short-cut when asked only to populate the size
-   field for paths that need to go through convert_to_git() (e.g. CRLF
-   conversion).
-
- * A few tests were run conditionally under (rare) conditions where
-   they cannot be run (like running cvs tests under 'root' account).
-
- * "git branch @" created refs/heads/@ as a branch, and in general the
-   code that handled @{-1} and @{upstream} was a bit too loose in
-   disambiguating.
-
- * "git fetch" that requests a commit by object name, when the other
-   side does not allow such an request, failed without much
-   explanation.
-
- * "git filter-branch --prune-empty" drops a single-parent commit that
-   becomes a no-op, but did not drop a root commit whose tree is empty.
-
- * Recent versions of Git treats http alternates (used in dumb http
-   transport) just like HTTP redirects and requires the client to
-   enable following it, due to security concerns.  But we forgot to
-   give a warning when we decide not to honor the alternates.
-
- * "git push" had a handful of codepaths that could lead to a deadlock
-   when unexpected error happened, which has been fixed.
-
- * "Dumb http" transport used to misparse a nonsense http-alternates
-   response, which has been fixed.
-
- * "git add -p <pathspec>" unnecessarily expanded the pathspec to a
-   list of individual files that matches the pathspec by running "git
-   ls-files <pathspec>", before feeding it to "git diff-index" to see
-   which paths have changes, because historically the pathspec
-   language supported by "diff-index" was weaker.  These days they are
-   equivalent and there is no reason to internally expand it.  This
-   helps both performance and avoids command line argument limit on
-   some platforms.
-   (merge 7288e12cce jk/add-i-use-pathspecs later to maint).
-
- * "git status --porcelain" is supposed to give a stable output, but a
-   few strings were left as translatable by mistake.
-
- * "git revert -m 0 $merge_commit" complained that reverting a merge
-   needs to say relative to which parent the reversion needs to
-   happen, as if "-m 0" weren't given.  The correct diagnosis is that
-   "-m 0" does not refer to the first parent ("-m 1" does).  This has
-   been fixed.
-
- * Code to read submodule.<name>.ignore config did not state the
-   variable name correctly when giving an error message diagnosing
-   misconfiguration.
-
- * Fix for NO_PTHREADS build.
-
- * Fix for potential segv introduced in v2.11.0 and later (also
-   v2.10.2) to "git log --pickaxe-regex -S".
-
- * A few unterminated here documents in tests were fixed, which in
-   turn revealed incorrect expectations the tests make. These tests
-   have been updated.
-
- * Fix for NO_PTHREADS option.
-   (merge 2225e1ea20 bw/grep-recurse-submodules later to maint).
-
- * Git now avoids blindly falling back to ".git" when the setup
-   sequence said we are _not_ in Git repository.  A corner case that
-   happens to work right now may be broken by a call to die("BUG").
-   (merge b1ef400eec jk/no-looking-at-dotgit-outside-repo-final later to maint).
-
- * A few commands that recently learned the "--recurse-submodule"
-   option misbehaved when started from a subdirectory of the
-   superproject.
-   (merge b2dfeb7c00 bw/recurse-submodules-relative-fix later to maint).
-
- * FreeBSD implementation of getcwd(3) behaved differently when an
-   intermediate directory is unreadable/unsearchable depending on the
-   length of the buffer provided, which our strbuf_getcwd() was not
-   aware of.  strbuf_getcwd() has been taught to cope with it better.
-   (merge a54e938e5b rs/freebsd-getcwd-workaround later to maint).
-
- * A recent update to "rebase -i" stopped running hooks for the "git
-   commit" command during "reword" action, which has been fixed.
-
- * Removing an entry from a notes tree and then looking another note
-   entry from the resulting tree using the internal notes API
-   functions did not work as expected.  No in-tree users of the API
-   has such access pattern, but it still is worth fixing.
-
- * "git receive-pack" could have been forced to die by attempting
-   allocate an unreasonably large amount of memory with a crafted push
-   certificate; this has been fixed.
-   (merge f2214dede9 bc/push-cert-receive-fix later to maint).
-
- * Update error handling for codepath that deals with corrupt loose
-   objects.
-   (merge 51054177b3 jk/loose-object-info-report-error later to maint).
-
- * "git diff --submodule=diff" learned to work better in a project
-   with a submodule that in turn has its own submodules.
-   (merge 17b254cda6 sb/show-diff-for-submodule-in-diff-fix later to maint).
-
- * Update the build dependency so that an update to /usr/bin/perl
-   etc. result in recomputation of perl.mak file.
-   (merge c59c4939c2 ab/regen-perl-mak-with-different-perl later to maint).
-
- * "git push --recurse-submodules --push-option=<string>" learned to
-   propagate the push option recursively down to pushes in submodules.
-
- * If a patch e-mail had its first paragraph after an in-body header
-   indented (even after a blank line after the in-body header line),
-   the indented line was mistook as a continuation of the in-body
-   header.  This has been fixed.
-   (merge fd1062e52e lt/mailinfo-in-body-header-continuation later to maint).
-
- * Clean up fallouts from recent tightening of the set-up sequence,
-   where Git barfs when repository information is accessed without
-   first ensuring that it was started in a repository.
-   (merge bccb22cbb1 jk/no-looking-at-dotgit-outside-repo later to maint).
-
- * "git p4" used "name-rev HEAD" when it wants to learn what branch is
-   checked out; it should use "symbolic-ref HEAD".
-   (merge eff451101d ld/p4-current-branch-fix later to maint).
-
- * "http.proxy" set to an empty string is used to disable the usage of
-   proxy.  We broke this early last year.
-   (merge ae51d91105 sr/http-proxy-configuration-fix later to maint).
-
- * $GIT_DIR may in some cases be normalized with all symlinks resolved
-   while "gitdir" path expansion in the pattern does not receive the
-   same treatment, leading to incorrect mismatch.  This has been fixed.
-
- * "git submodule" script does not work well with strange pathnames.
-   Protect it from a path with slashes in them, at least.
-
- * "git fetch-pack" was not prepared to accept ERR packet that the
-   upload-pack can send with a human-readable error message.  It
-   showed the packet contents with ERR prefix, so there was no data
-   loss, but it was redundant to say "ERR" in an error message.
-   (merge 8e2c7bef03 jt/fetch-pack-error-reporting later to maint).
-
- * "ls-files --recurse-submodules" did not quite work well in a
-   project with nested submodules.
-
- * gethostname(2) may not NUL terminate the buffer if hostname does
-   not fit; unfortunately there is no easy way to see if our buffer
-   was too small, but at least this will make sure we will not end up
-   using garbage past the end of the buffer.
-   (merge 5781a9a270 dt/xgethostname-nul-termination later to maint).
-
- * A recent update broke "git add -p ../foo" from a subdirectory.
-
- * While handy, "git_path()" is a dangerous function to use as a
-   callsite that uses it safely one day can be broken by changes
-   to other code that calls it.  Reduction of its use continues.
-   (merge 16d2676c9e jk/war-on-git-path later to maint).
-
- * The split-index code configuration code used an unsafe git_path()
-   function without copying its result out.
-
- * Many stale HTTP(s) links have been updated in our documentation.
-   (merge 613416f0be jk/update-links-in-docs later to maint).
-
- * "git-shell" rejects a request to serve a repository whose name
-   begins with a dash, which makes it no longer possible to get it
-   confused into spawning service programs like "git-upload-pack" with
-   an option like "--help", which in turn would spawn an interactive
-   pager, instead of working with the repository user asked to access
-   (i.e. the one whose name is "--help").
-
- * Other minor doc, test and build updates and code cleanups.
-   (merge df2a6e38b7 jk/pager-in-use later to maint).
-   (merge 75ec4a6cb0 ab/branch-list-doc later to maint).
-   (merge 3e5b36c637 sg/skip-prefix-in-prettify-refname later to maint).
-   (merge 2c5e2865cc jk/fast-import-cleanup later to maint).
-   (merge 4473060bc2 ab/test-readme-updates later to maint).
-   (merge 48a96972fd ab/doc-submitting later to maint).
-   (merge f5c2bc2b96 jk/make-coccicheck-detect-errors later to maint).
-   (merge c105f563d1 cc/untracked later to maint).
-   (merge 8668976b53 jc/unused-symbols later to maint).
-   (merge fba275dc93 jc/bs-t-is-not-a-tab-for-sed later to maint).
-   (merge be6ed145de mm/ls-files-s-doc later to maint).
-   (merge 60b091c679 qp/bisect-docfix later to maint).
-   (merge 47242cd103 ah/diff-files-ours-theirs-doc later to maint).
-   (merge 35ad44cbd8 sb/submodule-rm-absorb later to maint).
-   (merge 0301f1fd92 va/i18n-perl-scripts later to maint).
-   (merge 733e064d98 vn/revision-shorthand-for-side-branch-log later to maint).
-   (merge 85999743e7 tb/doc-eol-normalization later to maint).
-   (merge 0747fb49fd jk/loose-object-fsck later to maint).
-   (merge d8f4481c4f jk/quarantine-received-objects later to maint).
-   (merge 7ba1ceef95 xy/format-patch-base later to maint).
-   (merge fa1912c89a rs/misc-cppcheck-fixes later to maint).
-   (merge f17d642d3b ab/push-cas-doc-n-test later to maint).
-   (merge 61e282425a ss/gitmodules-ignore-doc later to maint).
-   (merge 8d3047cd5b ss/submodule-shallow-doc later to maint).
-   (merge 1f9e18b772 jk/prio-queue-avoid-swap-with-self later to maint).
-   (merge 627fde1025 jk/submodule-init-segv-fix later to maint).
-   (merge d395745d81 rg/doc-pull-typofix later to maint).
-   (merge 01e60a9a22 rg/doc-submittingpatches-wordfix later to maint).
-   (merge 501d3cd7b8 sr/hooks-cwd-doc later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.13.1.txt b/third_party/git/Documentation/RelNotes/2.13.1.txt
deleted file mode 100644
index ed7cd976d923..000000000000
--- a/third_party/git/Documentation/RelNotes/2.13.1.txt
+++ /dev/null
@@ -1,114 +0,0 @@
-Git v2.13.1 Release Notes
-=========================
-
-Fixes since v2.13
------------------
-
- * The Web interface to gmane news archive is long gone, even though
-   the articles are still accessible via NTTP.  Replace the links with
-   ones to public-inbox.org.  Because their message identification is
-   based on the actual message-id, it is likely that it will be easier
-   to migrate away from it if/when necessary.
-
- * Update tests to pass under GETTEXT_POISON (a mechanism to ensure
-   that output strings that should not be translated are not
-   translated by mistake), and tell TravisCI to run them.
-
- * Setting "log.decorate=false" in the configuration file did not take
-   effect in v2.13, which has been corrected.
-
- * An earlier update to test 7400 needed to be skipped on CYGWIN.
-
- * Git sometimes gives an advice in a rhetorical question that does
-   not require an answer, which can confuse new users and non native
-   speakers.  Attempt to rephrase them.
-
- * "git read-tree -m" (no tree-ish) gave a nonsense suggestion "use
-   --empty if you want to clear the index".  With "-m", such a request
-   will still fail anyway, as you'd need to name at least one tree-ish
-   to be merged.
-
- * The codepath in "git am" that is used when running "git rebase"
-   leaked memory held for the log message of the commits being rebased.
-
- * "pack-objects" can stream a slice of an existing packfile out when
-   the pack bitmap can tell that the reachable objects are all needed
-   in the output, without inspecting individual objects.  This
-   strategy however would not work well when "--local" and other
-   options are in use, and need to be disabled.
-
- * Clarify documentation for include.path and includeIf.<condition>.path
-   configuration variables.
-
- * Tag objects, which are not reachable from any ref, that point at
-   missing objects were mishandled by "git gc" and friends (they
-   should silently be ignored instead)
-
- * A few http:// links that are redirected to https:// in the
-   documentation have been updated to https:// links.
-
- * Make sure our tests would pass when the sources are checked out
-   with "platform native" line ending convention by default on
-   Windows.  Some "text" files out tests use and the test scripts
-   themselves that are meant to be run with /bin/sh, ought to be
-   checked out with eol=LF even on Windows.
-
- * Fix memory leaks pointed out by Coverity (and people).
-
- * The receive-pack program now makes sure that the push certificate
-   records the same set of push options used for pushing.
-
- * "git cherry-pick" and other uses of the sequencer machinery
-   mishandled a trailer block whose last line is an incomplete line.
-   This has been fixed so that an additional sign-off etc. are added
-   after completing the existing incomplete line.
-
- * The shell completion script (in contrib/) learned "git stash" has
-   a new "push" subcommand.
-
- * Travis CI gained a task to format the documentation with both
-   AsciiDoc and AsciiDoctor.
-
- * Update the C style recommendation for notes for translators, as
-   recent versions of gettext tools can work with our style of
-   multi-line comments.
-
- * "git clone --config var=val" is a way to populate the
-   per-repository configuration file of the new repository, but it did
-   not work well when val is an empty string.  This has been fixed.
-
- * A few codepaths in "checkout" and "am" working on an unborn branch
-   tried to access an uninitialized piece of memory.
-
- * "git for-each-ref --format=..." with %(HEAD) in the format used to
-   resolve the HEAD symref as many times as it had processed refs,
-   which was wasteful, and "git branch" shared the same problem.
-
- * "git interpret-trailers", when used as GIT_EDITOR for "git commit
-   -v", looked for and appended to a trailer block at the very end,
-   i.e. at the end of the "diff" output.  The command has been
-   corrected to pay attention to the cut-mark line "commit -v" adds to
-   the buffer---the real trailer block should appear just before it.
-
- * A test allowed both "git push" and "git receive-pack" on the other
-   end write their traces into the same file.  This is OK on platforms
-   that allows atomically appending to a file opened with O_APPEND,
-   but on other platforms led to a mangled output, causing
-   intermittent test failures.  This has been fixed by disabling
-   traces from "receive-pack" in the test.
-
- * "foo\bar\baz" in "git fetch foo\bar\baz", even though there is no
-   slashes in it, cannot be a nickname for a remote on Windows, as
-   that is likely to be a pathname on a local filesystem.
-
- * The "collision detecting" SHA-1 implementation shipped with 2.13
-   was quite broken on some big-endian platforms and/or platforms that
-   do not like unaligned fetches.  Update to the upstream code which
-   has already fixed these issues.
-
- * "git am -h" triggered a BUG().
-
- * The interaction of "url.*.insteadOf" and custom URL scheme's
-   whitelisting is now documented better.
-
-Also contains various documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.13.2.txt b/third_party/git/Documentation/RelNotes/2.13.2.txt
deleted file mode 100644
index 8c2b20071ed2..000000000000
--- a/third_party/git/Documentation/RelNotes/2.13.2.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-Git v2.13.2 Release Notes
-=========================
-
-Fixes since v2.13.1
--------------------
-
- * The "collision detecting" SHA-1 implementation shipped with 2.13.1
-   was still broken on some platforms.  Update to the upstream code
-   again to take their fix.
-
- * "git checkout --recurse-submodules" did not quite work with a
-   submodule that itself has submodules.
-
- * Introduce the BUG() macro to improve die("BUG: ...").
-
- * The "run-command" API implementation has been made more robust
-   against dead-locking in a threaded environment.
-
- * A recent update to t5545-push-options.sh started skipping all the
-   tests in the script when a web server testing is disabled or
-   unavailable, not just the ones that require a web server.  Non HTTP
-   tests have been salvaged to always run in this script.
-
- * "git clean -d" used to clean directories that has ignored files,
-   even though the command should not lose ignored ones without "-x".
-   "git status --ignored"  did not list ignored and untracked files
-   without "-uall".  These have been corrected.
-
- * The timestamp of the index file is now taken after the file is
-   closed, to help Windows, on which a stale timestamp is reported by
-   fstat() on a file that is opened for writing and data was written
-   but not yet closed.
-
- * "git pull --rebase --autostash" didn't auto-stash when the local history
-   fast-forwards to the upstream.
-
- * "git describe --contains" penalized light-weight tags so much that
-   they were almost never considered.  Instead, give them about the
-   same chance to be considered as an annotated tag that is the same
-   age as the underlying commit would.
-
- * The result from "git diff" that compares two blobs, e.g. "git diff
-   $commit1:$path $commit2:$path", used to be shown with the full
-   object name as given on the command line, but it is more natural to
-   use the $path in the output and use it to look up .gitattributes.
-
- * A flaky test has been corrected.
-
- * Help contributors that visit us at GitHub.
-
- * "git stash push <pathspec>" did not work from a subdirectory at all.
-   Bugfix for a topic in v2.13
-
-Also contains various documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.13.3.txt b/third_party/git/Documentation/RelNotes/2.13.3.txt
deleted file mode 100644
index 384e4de26526..000000000000
--- a/third_party/git/Documentation/RelNotes/2.13.3.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-Git v2.13.3 Release Notes
-=========================
-
-Fixes since v2.13.2
--------------------
-
- * The "collision detecting" SHA-1 implementation shipped with 2.13.2
-   was still broken on some platforms.  Update to the upstream code
-   again to take their fix.
-
- * The 'diff-highlight' program (in contrib/) has been restructured
-   for easier reuse by an external project 'diff-so-fancy'.
-
- * "git mergetool" learned to work around a wrapper MacOS X adds
-   around underlying meld.
-
- * An example in documentation that does not work in multi worktree
-   configuration has been corrected.
-
- * The pretty-format specifiers like '%h', '%t', etc. had an
-   optimization that no longer works correctly.  In preparation/hope
-   of getting it correctly implemented, first discard the optimization
-   that is broken.
-
- * The code to pick up and execute command alias definition from the
-   configuration used to switch to the top of the working tree and
-   then come back when the expanded alias was executed, which was
-   unnecessarily complex.  Attempt to simplify the logic by using the
-   early-config mechanism that does not chdir around.
-
- * "git add -p" were updated in 2.12 timeframe to cope with custom
-   core.commentchar but the implementation was buggy and a
-   metacharacter like $ and * did not work.
-
- * Fix a recent regression to "git rebase -i" and add tests that would
-   have caught it and others.
-
- * An unaligned 32-bit access in pack-bitmap code has been corrected.
-
- * Tighten error checks for invalid "git apply" input.
-
- * The split index code did not honor core.sharedrepository setting
-   correctly.
-
- * The Makefile rule in contrib/subtree for building documentation
-   learned to honour USE_ASCIIDOCTOR just like the main documentation
-   set does.
-
- * A few tests that tried to verify the contents of push certificates
-   did not use 'git rev-parse' to formulate the line to look for in
-   the certificate correctly.
-
- * After "git branch --move" of the currently checked out branch, the
-   code to walk the reflog of HEAD via "log -g" and friends
-   incorrectly stopped at the reflog entry that records the renaming
-   of the branch.
-
- * The rewrite of "git branch --list" using for-each-ref's internals
-   that happened in v2.13 regressed its handling of color.branch.local;
-   this has been fixed.
-
-Also contains various documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.13.4.txt b/third_party/git/Documentation/RelNotes/2.13.4.txt
deleted file mode 100644
index 9a9f8f9599df..000000000000
--- a/third_party/git/Documentation/RelNotes/2.13.4.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-Git v2.13.4 Release Notes
-=========================
-
-Fixes since v2.13.3
--------------------
-
- * Update the character width tables.
-
- * A recent update broke an alias that contained an uppercase letter,
-   which has been fixed.
-
- * On Cygwin, similar to Windows, "git push //server/share/repository"
-   ought to mean a repository on a network share that can be accessed
-   locally, but this did not work correctly due to stripping the double
-   slashes at the beginning.
-
- * The progress meter did not give a useful output when we haven't had
-   0.5 seconds to measure the throughput during the interval.  Instead
-   show the overall throughput rate at the end, which is a much more
-   useful number.
-
- * We run an early part of "git gc" that deals with refs before
-   daemonising (and not under lock) even when running a background
-   auto-gc, which caused multiple gc processes attempting to run the
-   early part at the same time.  This is now prevented by running the
-   early part also under the GC lock.
-
-Also contains a handful of small code and documentation clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.13.5.txt b/third_party/git/Documentation/RelNotes/2.13.5.txt
deleted file mode 100644
index 6949fcda78df..000000000000
--- a/third_party/git/Documentation/RelNotes/2.13.5.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Git v2.13.5 Release Notes
-=========================
-
-This release forward-ports the fix for "ssh://..." URL from Git v2.7.6
diff --git a/third_party/git/Documentation/RelNotes/2.13.6.txt b/third_party/git/Documentation/RelNotes/2.13.6.txt
deleted file mode 100644
index afcae9c808de..000000000000
--- a/third_party/git/Documentation/RelNotes/2.13.6.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Git v2.13.6 Release Notes
-=========================
-
-Fixes since v2.13.5
--------------------
-
- * "git cvsserver" no longer is invoked by "git daemon" by default,
-   as it is old and largely unmaintained.
-
- * Various Perl scripts did not use safe_pipe_capture() instead of
-   backticks, leaving them susceptible to end-user input.  They have
-   been corrected.
-
-Credits go to joernchen <joernchen@phenoelit.de> for finding the
-unsafe constructs in "git cvsserver", and to Jeff King at GitHub for
-finding and fixing instances of the same issue in other scripts.
-
diff --git a/third_party/git/Documentation/RelNotes/2.13.7.txt b/third_party/git/Documentation/RelNotes/2.13.7.txt
deleted file mode 100644
index 09fc01406c7c..000000000000
--- a/third_party/git/Documentation/RelNotes/2.13.7.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Git v2.13.7 Release Notes
-=========================
-
-Fixes since v2.13.6
--------------------
-
- * Submodule "names" come from the untrusted .gitmodules file, but we
-   blindly append them to $GIT_DIR/modules to create our on-disk repo
-   paths. This means you can do bad things by putting "../" into the
-   name. We now enforce some rules for submodule names which will cause
-   Git to ignore these malicious names (CVE-2018-11235).
-
-   Credit for finding this vulnerability and the proof of concept from
-   which the test script was adapted goes to Etienne Stalmans.
-
- * It was possible to trick the code that sanity-checks paths on NTFS
-   into reading random piece of memory (CVE-2018-11233).
-
-Credit for fixing for these bugs goes to Jeff King, Johannes
-Schindelin and others.
diff --git a/third_party/git/Documentation/RelNotes/2.14.0.txt b/third_party/git/Documentation/RelNotes/2.14.0.txt
deleted file mode 100644
index 2711a2529dad..000000000000
--- a/third_party/git/Documentation/RelNotes/2.14.0.txt
+++ /dev/null
@@ -1,517 +0,0 @@
-Git 2.14 Release Notes
-======================
-
-Backward compatibility notes and other notable changes.
-
- * Use of an empty string as a pathspec element that is used for
-   'everything matches' is still warned and Git asks users to use a
-   more explicit '.' for that instead.  The hope is that existing
-   users will not mind this change, and eventually the warning can be
-   turned into a hard error, upgrading the deprecation into removal of
-   this (mis)feature.  That is not scheduled to happen in the upcoming
-   release (yet).
-
- * Git now avoids blindly falling back to ".git" when the setup
-   sequence said we are _not_ in Git repository.  A corner case that
-   happens to work right now may be broken by a call to die("BUG").
-   We've tried hard to locate such cases and fixed them, but there
-   might still be cases that need to be addressed--bug reports are
-   greatly appreciated.
-
- * The experiment to improve the hunk-boundary selection of textual
-   diff output has finished, and the "indent heuristics" has now
-   become the default.
-
- * Git can now be built with PCRE v2 instead of v1 of the PCRE
-   library. Replace USE_LIBPCRE=YesPlease with USE_LIBPCRE2=YesPlease
-   in existing build scripts to build against the new version.  As the
-   upstream PCRE maintainer has abandoned v1 maintenance for all but
-   the most critical bug fixes, use of v2 is recommended.
-
-
-Updates since v2.13
--------------------
-
-UI, Workflows & Features
-
- * The colors in which "git status --short --branch" showed the names
-   of the current branch and its remote-tracking branch are now
-   configurable.
-
- * "git clone" learned the "--no-tags" option not to fetch all tags
-   initially, and also set up the tagopt not to follow any tags in
-   subsequent fetches.
-
- * "git archive --format=zip" learned to use zip64 extension when
-   necessary to go beyond the 4GB limit.
-
- * "git reset" learned "--recurse-submodules" option.
-
- * "git diff --submodule=diff" now recurses into nested submodules.
-
- * "git repack" learned to accept the --threads=<n> option and pass it
-   to pack-objects.
-
- * "git send-email" learned to run sendemail-validate hook to inspect
-   and reject a message before sending it out.
-
- * There is no good reason why "git fetch $there $sha1" should fail
-   when the $sha1 names an object at the tip of an advertised ref,
-   even when the other side hasn't enabled allowTipSHA1InWant.
-
- * The "[includeIf "gitdir:$dir"] path=..." mechanism introduced in
-   2.13.0 would canonicalize the path of the gitdir being matched,
-   and did not match e.g. "gitdir:~/work/*" against a repo in
-   "~/work/main" if "~/work" was a symlink to "/mnt/storage/work".
-   Now we match both the resolved canonical path and what "pwd" would
-   show. The include will happen if either one matches.
-
- * The "indent" heuristics is now the default in "diff". The
-   diff.indentHeuristic configuration variable can be set to "false"
-   for those who do not want it.
-
- * Many commands learned to pay attention to submodule.recurse
-   configuration.
-
- * The convention for a command line is to follow "git cmdname
-   --options" with revisions followed by an optional "--"
-   disambiguator and then finally pathspecs.  When "--" is not there,
-   we make sure early ones are all interpretable as revs (and do not
-   look like paths) and later ones are the other way around.  A
-   pathspec with "magic" (e.g. ":/p/a/t/h" that matches p/a/t/h from
-   the top-level of the working tree, no matter what subdirectory you
-   are working from) are conservatively judged as "not a path", which
-   required disambiguation more often.  The command line parser
-   learned to say "it's a pathspec" a bit more often when the syntax
-   looks like so.
-
- * Update "perl-compatible regular expression" support to enable JIT
-   and also allow linking with the newer PCRE v2 library.
-
- * "filter-branch" learned a pseudo filter "--setup" that can be used
-   to define common functions/variables that can be used by other
-   filters.
-
- * Using "git add d/i/r" when d/i/r is the top of the working tree of
-   a separate repository would create a gitlink in the index, which
-   would appear as a not-quite-initialized submodule to others.  We
-   learned to give warnings when this happens.
-
- * "git status" learned to optionally give how many stash entries there
-   are in its output.
-
- * "git status" has long shown essentially the same message as "git
-   commit"; the message it gives while preparing for the root commit,
-   i.e. "Initial commit", was hard to understand for some new users.
-   Now it says "No commits yet" to stress more on the current status
-   (rather than the commit the user is preparing for, which is more in
-   line with the focus of "git commit").
-
- * "git send-email" now has --batch-size and --relogin-delay options
-    which can be used to overcome limitations on SMTP servers that
-    restrict on how many of e-mails can be sent in a single session.
-
- * An old message shown in the commit log template was removed, as it
-   has outlived its usefulness.
-
- * "git pull --rebase --recurse-submodules" learns to rebase the
-   branch in the submodules to an updated base.
-
- * "git log" learned -P as a synonym for --perl-regexp, "git grep"
-   already had such a synonym.
-
- * "git log" didn't understand --regexp-ignore-case when combined with
-   --perl-regexp. This has been fixed.
-
-Performance, Internal Implementation, Development Support etc.
-
- * The default packed-git limit value has been raised on larger
-   platforms to save "git fetch" from a (recoverable) failure while
-   "gc" is running in parallel.
-
- * Code to update the cache-tree has been tightened so that we won't
-   accidentally write out any 0{40} entry in the tree object.
-
- * Attempt to allow us notice "fishy" situation where we fail to
-   remove the temporary directory used during the test.
-
- * Travis CI gained a task to format the documentation with both
-   AsciiDoc and AsciiDoctor.
-
- * Some platforms have ulong that is smaller than time_t, and our
-   historical use of ulong for timestamp would mean they cannot
-   represent some timestamp that the platform allows.  Invent a
-   separate and dedicated timestamp_t (so that we can distinguish
-   timestamps and a vanilla ulongs, which along is already a good
-   move), and then declare uintmax_t is the type to be used as the
-   timestamp_t.
-
- * We can trigger Windows auto-build tester (credits: Dscho &
-   Microsoft) from our existing Travis CI tester now.
-
- * Conversion from uchar[20] to struct object_id continues.
-
- * Simplify parse_pathspec() codepath and stop it from looking at the
-   default in-core index.
-
- * Add perf-test for wildmatch.
-
- * Code from "conversion using external process" codepath has been
-   extracted to a separate sub-process.[ch] module.
-
- * When "git checkout", "git merge", etc. manipulates the in-core
-   index, various pieces of information in the index extensions are
-   discarded from the original state, as it is usually not the case
-   that they are kept up-to-date and in-sync with the operation on the
-   main index.  The untracked cache extension is copied across these
-   operations now, which would speed up "git status" (as long as the
-   cache is properly invalidated).
-
- * The internal implementation of "git grep" has seen some clean-up.
-
- * Update the C style recommendation for notes for translators, as
-   recent versions of gettext tools can work with our style of
-   multi-line comments.
-
- * The implementation of "ref" API around the "packed refs" have been
-   cleaned up, in preparation for further changes.
-
- * The internal logic used in "git blame" has been libified to make it
-   easier to use by cgit.
-
- * Our code often opens a path to an optional file, to work on its
-   contents when we can successfully open it.  We can ignore a failure
-   to open if such an optional file does not exist, but we do want to
-   report a failure in opening for other reasons (e.g. we got an I/O
-   error, or the file is there, but we lack the permission to open).
-
-   The exact errors we need to ignore are ENOENT (obviously) and
-   ENOTDIR (less obvious).  Instead of repeating comparison of errno
-   with these two constants, introduce a helper function to do so.
-
- * We often try to open a file for reading whose existence is
-   optional, and silently ignore errors from open/fopen; report such
-   errors if they are not due to missing files.
-
- * When an existing repository is used for t/perf testing, we first
-   create bit-for-bit copy of it, which may grab a transient state of
-   the repository and freeze it into the repository used for testing,
-   which then may cause Git operations to fail.  Single out "the index
-   being locked" case and forcibly drop the lock from the copy.
-
- * Three instances of the same helper function have been consolidated
-   to one.
-
- * "fast-import" uses a default pack chain depth that is consistent
-   with other parts of the system.
-
- * A new test to show the interaction between the pattern [^a-z]
-   (which matches '/') and a slash in a path has been added.  The
-   pattern should not match the slash with "pathmatch", but should
-   with "wildmatch".
-
- * The 'diff-highlight' program (in contrib/) has been restructured
-   for easier reuse by an external project 'diff-so-fancy'.
-
- * A common pattern to free a piece of memory and assign NULL to the
-   pointer that used to point at it has been replaced with a new
-   FREE_AND_NULL() macro.
-
- * Traditionally, the default die() routine had a code to prevent it
-   from getting called multiple times, which interacted badly when a
-   threaded program used it (one downside is that the real error may
-   be hidden and instead the only error message given to the user may
-   end up being "die recursion detected", which is not very useful).
-
- * Introduce a "repository" object to eventually make it easier to
-   work in multiple repositories (the primary focus is to work with
-   the superproject and its submodules) in a single process.
-
- * Optimize "what are the object names already taken in an alternate
-   object database?" query that is used to derive the length of prefix
-   an object name is uniquely abbreviated to.
-
- * The hashmap API has been updated so that data to customize the
-   behaviour of the comparison function can be specified at the time a
-   hashmap is initialized.
-
- * The "collision detecting" SHA-1 implementation shipped with 2.13 is
-   now integrated into git.git as a submodule (the first submodule to
-   ship with git.git). Clone git.git with --recurse-submodules to get
-   it. For now a non-submodule copy of the same code is also shipped
-   as part of the tree.
-
- * A recent update made it easier to use "-fsanitize=" option while
-   compiling but supported only one sanitize option.  Allow more than
-   one to be combined, joined with a comma, like "make SANITIZE=foo,bar".
-
- * Use "p4 -G" to make "p4 changes" output more Python-friendly
-   to parse.
-
- * We started using "%" PRItime, imitating "%" PRIuMAX and friends, as
-   a way to format the internal timestamp value, but this does not
-   play well with gettext(1) i18n framework, and causes "make pot"
-   that is run by the l10n coordinator to create a broken po/git.pot
-   file.  This is a possible workaround for that problem.
-
- * It turns out that Cygwin also needs the fopen() wrapper that
-   returns failure when a directory is opened for reading.
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.13
------------------
-
-Unless otherwise noted, all the fixes since v2.13 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * "git gc" did not interact well with "git worktree"-managed
-   per-worktree refs.
-
- * "git cherry-pick" and other uses of the sequencer machinery
-   mishandled a trailer block whose last line is an incomplete line.
-   This has been fixed so that an additional sign-off etc. are added
-   after completing the existing incomplete line.
-
- * The codepath in "git am" that is used when running "git rebase"
-   leaked memory held for the log message of the commits being rebased.
-
- * "git clone --config var=val" is a way to populate the
-   per-repository configuration file of the new repository, but it did
-   not work well when val is an empty string.  This has been fixed.
-
- * Setting "log.decorate=false" in the configuration file did not take
-   effect in v2.13, which has been corrected.
-
- * A few codepaths in "checkout" and "am" working on an unborn branch
-   tried to access an uninitialized piece of memory.
-
- * The Web interface to gmane news archive is long gone, even though
-   the articles are still accessible via NTTP.  Replace the links with
-   ones to public-inbox.org.  Because their message identification is
-   based on the actual message-id, it is likely that it will be easier
-   to migrate away from it if/when necessary.
-
- * The receive-pack program now makes sure that the push certificate
-   records the same set of push options used for pushing.
-
- * Tests have been updated to pass under GETTEXT_POISON (a mechanism
-   to ensure that output strings that should not be translated are
-   not translated by mistake), and TravisCI is told to run them.
-
- * "git checkout --recurse-submodules" did not quite work with a
-   submodule that itself has submodules.
-
- * "pack-objects" can stream a slice of an existing packfile out when
-   the pack bitmap can tell that the reachable objects are all needed
-   in the output, without inspecting individual objects.  This
-   strategy however would not work well when "--local" and other
-   options are in use, and need to be disabled.
-
- * Fix memory leaks pointed out by Coverity (and people).
-
- * "git read-tree -m" (no tree-ish) gave a nonsense suggestion "use
-   --empty if you want to clear the index".  With "-m", such a request
-   will still fail anyway, as you'd need to name at least one tree-ish
-   to be merged.
-
- * Make sure our tests would pass when the sources are checked out
-   with "platform native" line ending convention by default on
-   Windows.  Some "text" files out tests use and the test scripts
-   themselves that are meant to be run with /bin/sh, ought to be
-   checked out with eol=LF even on Windows.
-
- * Introduce the BUG() macro to improve die("BUG: ...").
-
- * Clarify documentation for include.path and includeIf.<condition>.path
-   configuration variables.
-
- * Git sometimes gives an advice in a rhetorical question that does
-   not require an answer, which can confuse new users and non native
-   speakers.  Attempt to rephrase them.
-
- * A few http:// links that are redirected to https:// in the
-   documentation have been updated to https:// links.
-
- * "git for-each-ref --format=..." with %(HEAD) in the format used to
-   resolve the HEAD symref as many times as it had processed refs,
-   which was wasteful, and "git branch" shared the same problem.
-
- * Regression fix to topic recently merged to 'master'.
-
- * The shell completion script (in contrib/) learned "git stash" has
-   a new "push" subcommand.
-
- * "git interpret-trailers", when used as GIT_EDITOR for "git commit
-   -v", looked for and appended to a trailer block at the very end,
-   i.e. at the end of the "diff" output.  The command has been
-   corrected to pay attention to the cut-mark line "commit -v" adds to
-   the buffer---the real trailer block should appear just before it.
-
- * A test allowed both "git push" and "git receive-pack" on the other
-   end write their traces into the same file.  This is OK on platforms
-   that allows atomically appending to a file opened with O_APPEND,
-   but on other platforms led to a mangled output, causing
-   intermittent test failures.  This has been fixed by disabling
-   traces from "receive-pack" in the test.
-
- * Tag objects, which are not reachable from any ref, that point at
-   missing objects were mishandled by "git gc" and friends (they
-   should silently be ignored instead)
-
- * "git describe --contains" penalized light-weight tags so much that
-   they were almost never considered.  Instead, give them about the
-   same chance to be considered as an annotated tag that is the same
-   age as the underlying commit would.
-
- * The "run-command" API implementation has been made more robust
-   against dead-locking in a threaded environment.
-
- * A recent update to t5545-push-options.sh started skipping all the
-   tests in the script when a web server testing is disabled or
-   unavailable, not just the ones that require a web server.  Non HTTP
-   tests have been salvaged to always run in this script.
-
- * "git send-email" now uses Net::SMTP::SSL, which is obsolete, only
-   when needed.  Recent versions of Net::SMTP can do TLS natively.
-
- * "foo\bar\baz" in "git fetch foo\bar\baz", even though there is no
-   slashes in it, cannot be a nickname for a remote on Windows, as
-   that is likely to be a pathname on a local filesystem.
-
- * "git clean -d" used to clean directories that has ignored files,
-   even though the command should not lose ignored ones without "-x".
-   "git status --ignored"  did not list ignored and untracked files
-   without "-uall".  These have been corrected.
-
- * The result from "git diff" that compares two blobs, e.g. "git diff
-   $commit1:$path $commit2:$path", used to be shown with the full
-   object name as given on the command line, but it is more natural to
-   use the $path in the output and use it to look up .gitattributes.
-
- * The "collision detecting" SHA-1 implementation shipped with 2.13
-   was quite broken on some big-endian platforms and/or platforms that
-   do not like unaligned fetches.  Update to the upstream code which
-   has already fixed these issues.
-
- * "git am -h" triggered a BUG().
-
- * The interaction of "url.*.insteadOf" and custom URL scheme's
-   whitelisting is now documented better.
-
- * The timestamp of the index file is now taken after the file is
-   closed, to help Windows, on which a stale timestamp is reported by
-   fstat() on a file that is opened for writing and data was written
-   but not yet closed.
-
- * "git pull --rebase --autostash" didn't auto-stash when the local history
-   fast-forwards to the upstream.
-
- * A flaky test has been corrected.
-
- * "git $cmd -h" for builtin commands calls the implementation of the
-   command (i.e. cmd_$cmd() function) without doing any repository
-   set-up, and the commands that expect RUN_SETUP is done by the Git
-   potty needs to be prepared to show the help text without barfing.
-   (merge d691551192 jk/consistent-h later to maint).
-
- * Help contributors that visit us at GitHub.
-
- * "git stash push <pathspec>" did not work from a subdirectory at all.
-   Bugfix for a topic in v2.13
-
- * As there is no portable way to pass timezone information to
-   strftime, some output format from "git log" and friends are
-   impossible to produce.  Teach our own strbuf_addftime to replace %z
-   and %Z with caller-supplied values to help working around this.
-   (merge 6eced3ec5e rs/strbuf-addftime-zZ later to maint).
-
- * "git mergetool" learned to work around a wrapper MacOS X adds
-   around underlying meld.
-
- * An example in documentation that does not work in multi worktree
-   configuration has been corrected.
-
- * The pretty-format specifiers like '%h', '%t', etc. had an
-   optimization that no longer works correctly.  In preparation/hope
-   of getting it correctly implemented, first discard the optimization
-   that is broken.
-
- * The code to pick up and execute command alias definition from the
-   configuration used to switch to the top of the working tree and
-   then come back when the expanded alias was executed, which was
-   unnecessarily complex.  Attempt to simplify the logic by using the
-   early-config mechanism that does not chdir around.
-
- * Fix configuration codepath to pay proper attention to commondir
-   that is used in multi-worktree situation, and isolate config API
-   into its own header file.
-   (merge dc8441fdb4 bw/config-h later to maint).
-
- * "git add -p" were updated in 2.12 timeframe to cope with custom
-   core.commentchar but the implementation was buggy and a
-   metacharacter like $ and * did not work.
-
- * A recent regression in "git rebase -i" has been fixed and tests
-   that would have caught it and others have been added.
-
- * An unaligned 32-bit access in pack-bitmap code has been corrected.
-
- * Tighten error checks for invalid "git apply" input.
-
- * The split index code did not honor core.sharedRepository setting
-   correctly.
-
- * The Makefile rule in contrib/subtree for building documentation
-   learned to honour USE_ASCIIDOCTOR just like the main documentation
-   set does.
-
- * Code clean-up to fix possible buffer over-reading.
-
- * A few tests that tried to verify the contents of push certificates
-   did not use 'git rev-parse' to formulate the line to look for in
-   the certificate correctly.
-
- * Update the character width tables.
-
- * After "git branch --move" of the currently checked out branch, the
-   code to walk the reflog of HEAD via "log -g" and friends
-   incorrectly stopped at the reflog entry that records the renaming
-   of the branch.
-
- * The rewrite of "git branch --list" using for-each-ref's internals
-   that happened in v2.13 regressed its handling of color.branch.local;
-   this has been fixed.
-
- * The build procedure has been improved to allow building and testing
-   Git with address sanitizer more easily.
-   (merge 425ca6710b jk/build-with-asan later to maint).
-
- * On Cygwin, similar to Windows, "git push //server/share/repository"
-   ought to mean a repository on a network share that can be accessed
-   locally, but this did not work correctly due to stripping the double
-   slashes at the beginning.
-
- * The progress meter did not give a useful output when we haven't had
-   0.5 seconds to measure the throughput during the interval.  Instead
-   show the overall throughput rate at the end, which is a much more
-   useful number.
-
- * Code clean-up, that makes us in sync with Debian by one patch.
-
- * We run an early part of "git gc" that deals with refs before
-   daemonising (and not under lock) even when running a background
-   auto-gc, which caused multiple gc processes attempting to run the
-   early part at the same time.  This is now prevented by running the
-   early part also under the GC lock.
-
- * A recent update broke an alias that contained an uppercase letter.
-
- * Other minor doc, test and build updates and code cleanups.
-   (merge 5053313562 rs/urlmatch-cleanup later to maint).
-   (merge 42c78a216e rs/use-div-round-up later to maint).
-   (merge 5e8d2729ae rs/wt-status-cleanup later to maint).
-   (merge bc9b7e207f as/diff-options-grammofix later to maint).
-   (merge ac05222b31 ah/patch-id-doc later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.14.1.txt b/third_party/git/Documentation/RelNotes/2.14.1.txt
deleted file mode 100644
index 9403340f7f50..000000000000
--- a/third_party/git/Documentation/RelNotes/2.14.1.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Git v2.14.1 Release Notes
-=========================
-
-This release forward-ports the fix for "ssh://..." URL from Git v2.7.6
diff --git a/third_party/git/Documentation/RelNotes/2.14.2.txt b/third_party/git/Documentation/RelNotes/2.14.2.txt
deleted file mode 100644
index bec9186adefe..000000000000
--- a/third_party/git/Documentation/RelNotes/2.14.2.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-Git v2.14.2 Release Notes
-=========================
-
-Fixes since v2.14.1
--------------------
-
- * Because recent Git for Windows do come with a real msgfmt, the
-   build procedure for git-gui has been updated to use it instead of a
-   hand-rolled substitute.
-
- * "%C(color name)" in the pretty print format always produced ANSI
-   color escape codes, which was an early design mistake.  They now
-   honor the configuration (e.g. "color.ui = never") and also tty-ness
-   of the output medium.
-
- * The http.{sslkey,sslCert} configuration variables are to be
-   interpreted as a pathname that honors "~[username]/" prefix, but
-   weren't, which has been fixed.
-
- * Numerous bugs in walking of reflogs via "log -g" and friends have
-   been fixed.
-
- * "git commit" when seeing an totally empty message said "you did not
-   edit the message", which is clearly wrong.  The message has been
-   corrected.
-
- * When a directory is not readable, "gitweb" fails to build the
-   project list.  Work this around by skipping such a directory.
-
- * A recently added test for the "credential-cache" helper revealed
-   that EOF detection done around the time the connection to the cache
-   daemon is torn down were flaky.  This was fixed by reacting to
-   ECONNRESET and behaving as if we got an EOF.
-
- * Some versions of GnuPG fail to kill gpg-agent it auto-spawned
-   and such a left-over agent can interfere with a test.  Work it
-   around by attempting to kill one before starting a new test.
-
- * "git log --tag=no-such-tag" showed log starting from HEAD, which
-   has been fixed---it now shows nothing.
-
- * The "tag.pager" configuration variable was useless for those who
-   actually create tag objects, as it interfered with the use of an
-   editor.  A new mechanism has been introduced for commands to enable
-   pager depending on what operation is being carried out to fix this,
-   and then "git tag -l" is made to run pager by default.
-
- * "git push --recurse-submodules $there HEAD:$target" was not
-   propagated down to the submodules, but now it is.
-
- * Commands like "git rebase" accepted the --rerere-autoupdate option
-   from the command line, but did not always use it.  This has been
-   fixed.
-
- * "git clone --recurse-submodules --quiet" did not pass the quiet
-   option down to submodules.
-
- * "git am -s" has been taught that some input may end with a trailer
-   block that is not Signed-off-by: and it should refrain from adding
-   an extra blank line before adding a new sign-off in such a case.
-
- * "git svn" used with "--localtime" option did not compute the tz
-   offset for the timestamp in question and instead always used the
-   current time, which has been corrected.
-
- * Memory leaks in a few error codepaths have been plugged.
-
- * bash 4.4 or newer gave a warning on NUL byte in command
-   substitution done in "git stash"; this has been squelched.
-
- * "git grep -L" and "git grep --quiet -L" reported different exit
-   codes; this has been corrected.
-
- * When handshake with a subprocess filter notices that the process
-   asked for an unknown capability, Git did not report what program
-   the offending subprocess was running.  This has been corrected.
-
- * "git apply" that is used as a better "patch -p1" failed to apply a
-   taken from a file with CRLF line endings to a file with CRLF line
-   endings.  The root cause was because it misused convert_to_git()
-   that tried to do "safe-crlf" processing by looking at the index
-   entry at the same path, which is a nonsense---in that mode, "apply"
-   is not working on the data in (or derived from) the index at all.
-   This has been fixed.
-
- * Killing "git merge --edit" before the editor returns control left
-   the repository in a state with MERGE_MSG but without MERGE_HEAD,
-   which incorrectly tells the subsequent "git commit" that there was
-   a squash merge in progress.  This has been fixed.
-
- * "git archive" did not work well with pathspecs and the
-   export-ignore attribute.
-
- * "git cvsserver" no longer is invoked by "git daemon" by default,
-   as it is old and largely unmaintained.
-
- * Various Perl scripts did not use safe_pipe_capture() instead of
-   backticks, leaving them susceptible to end-user input.  They have
-   been corrected.
-
-Also contains various documentation updates and code clean-ups.
-
-Credits go to joernchen <joernchen@phenoelit.de> for finding the
-unsafe constructs in "git cvsserver", and to Jeff King at GitHub for
-finding and fixing instances of the same issue in other scripts.
diff --git a/third_party/git/Documentation/RelNotes/2.14.3.txt b/third_party/git/Documentation/RelNotes/2.14.3.txt
deleted file mode 100644
index 977c9e857c0e..000000000000
--- a/third_party/git/Documentation/RelNotes/2.14.3.txt
+++ /dev/null
@@ -1,99 +0,0 @@
-Git v2.14.3 Release Notes
-=========================
-
-Fixes since v2.14.2
--------------------
-
- * A helper function to read a single whole line into strbuf
-   mistakenly triggered OOM error at EOF under certain conditions,
-   which has been fixed.
-
- * In addition to "cc: <a@dd.re.ss> # cruft", "cc: a@dd.re.ss # cruft"
-   was taught to "git send-email" as a valid way to tell it that it
-   needs to also send a carbon copy to <a@dd.re.ss> in the trailer
-   section.
-
- * Fix regression to "gitk --bisect" by a recent update.
-
- * Unlike "git commit-tree < file", "git commit-tree -F file" did not
-   pass the contents of the file verbatim and instead completed an
-   incomplete line at the end, if exists.  The latter has been updated
-   to match the behaviour of the former.
-
- * "git archive", especially when used with pathspec, stored an empty
-   directory in its output, even though Git itself never does so.
-   This has been fixed.
-
- * API error-proofing which happens to also squelch warnings from GCC.
-
- * "git gc" tries to avoid running two instances at the same time by
-   reading and writing pid/host from and to a lock file; it used to
-   use an incorrect fscanf() format when reading, which has been
-   corrected.
-
- * The test linter has been taught that we do not like "echo -e".
-
- * Code cmp.std.c nitpick.
-
- * "git describe --match" learned to take multiple patterns in v2.13
-   series, but the feature ignored the patterns after the first one
-   and did not work at all.  This has been fixed.
-
- * "git cat-file --textconv" started segfaulting recently, which
-   has been corrected.
-
- * The built-in pattern to detect the "function header" for HTML did
-   not match <H1>..<H6> elements without any attributes, which has
-   been fixed.
-
- * "git mailinfo" was loose in decoding quoted printable and produced
-   garbage when the two letters after the equal sign are not
-   hexadecimal.  This has been fixed.
-
- * The documentation for '-X<option>' for merges was misleadingly
-   written to suggest that "-s theirs" exists, which is not the case.
-
- * Spell the name of our system as "Git" in the output from
-   request-pull script.
-
- * Fixes for a handful memory access issues identified by valgrind.
-
- * Backports a moral equivalent of 2015 fix to the poll emulation from
-   the upstream gnulib to fix occasional breakages on HPE NonStop.
-
- * In the "--format=..." option of the "git for-each-ref" command (and
-   its friends, i.e. the listing mode of "git branch/tag"), "%(atom:)"
-   (e.g. "%(refname:)", "%(body:)" used to error out.  Instead, treat
-   them as if the colon and an empty string that follows it were not
-   there.
-
- * Users with "color.ui = always" in their configuration were broken
-   by a recent change that made plumbing commands to pay attention to
-   them as the patch created internally by "git add -p" were colored
-   (heh) and made unusable.  This has been fixed.
-
- * "git branch -M a b" while on a branch that is completely unrelated
-   to either branch a or branch b misbehaved when multiple worktree
-   was in use.  This has been fixed.
-
- * "git fast-export" with -M/-C option issued "copy" instruction on a
-   path that is simultaneously modified, which was incorrect.
-
- * The checkpoint command "git fast-import" did not flush updates to
-   refs and marks unless at least one object was created since the
-   last checkpoint, which has been corrected, as these things can
-   happen without any new object getting created.
-
- * The scripts to drive TravisCI has been reorganized and then an
-   optimization to avoid spending cycles on a branch whose tip is
-   tagged has been implemented.
-
- * "git fetch <there> <src>:<dst>" allows an object name on the <src>
-   side when the other side accepts such a request since Git v2.5, but
-   the documentation was left stale.
-
- * A regression in 2.11 that made the code to read the list of
-   alternate object stores overrun the end of the string has been
-   fixed.
-
-Also contains various documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.14.4.txt b/third_party/git/Documentation/RelNotes/2.14.4.txt
deleted file mode 100644
index 97755a89d9fb..000000000000
--- a/third_party/git/Documentation/RelNotes/2.14.4.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.14.4 Release Notes
-=========================
-
-This release is to forward-port the fixes made in the v2.13.7 version
-of Git.  See its release notes for details.
diff --git a/third_party/git/Documentation/RelNotes/2.14.5.txt b/third_party/git/Documentation/RelNotes/2.14.5.txt
deleted file mode 100644
index 130645fb292a..000000000000
--- a/third_party/git/Documentation/RelNotes/2.14.5.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Git v2.14.5 Release Notes
-=========================
-
-This release is to address the recently reported CVE-2018-17456.
-
-Fixes since v2.14.4
--------------------
-
- * Submodules' "URL"s come from the untrusted .gitmodules file, but
-   we blindly gave it to "git clone" to clone submodules when "git
-   clone --recurse-submodules" was used to clone a project that has
-   such a submodule.  The code has been hardened to reject such
-   malformed URLs (e.g. one that begins with a dash).
-
-Credit for finding and fixing this vulnerability goes to joernchen
-and Jeff King, respectively.
diff --git a/third_party/git/Documentation/RelNotes/2.14.6.txt b/third_party/git/Documentation/RelNotes/2.14.6.txt
deleted file mode 100644
index 72b7af679917..000000000000
--- a/third_party/git/Documentation/RelNotes/2.14.6.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-Git v2.14.6 Release Notes
-=========================
-
-This release addresses the security issues CVE-2019-1348,
-CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352,
-CVE-2019-1353, CVE-2019-1354, and CVE-2019-1387.
-
-Fixes since v2.14.5
--------------------
-
- * CVE-2019-1348:
-   The --export-marks option of git fast-import is exposed also via
-   the in-stream command feature export-marks=... and it allows
-   overwriting arbitrary paths.
-
- * CVE-2019-1349:
-   When submodules are cloned recursively, under certain circumstances
-   Git could be fooled into using the same Git directory twice. We now
-   require the directory to be empty.
-
- * CVE-2019-1350:
-   Incorrect quoting of command-line arguments allowed remote code
-   execution during a recursive clone in conjunction with SSH URLs.
-
- * CVE-2019-1351:
-   While the only permitted drive letters for physical drives on
-   Windows are letters of the US-English alphabet, this restriction
-   does not apply to virtual drives assigned via subst <letter>:
-   <path>. Git mistook such paths for relative paths, allowing writing
-   outside of the worktree while cloning.
-
- * CVE-2019-1352:
-   Git was unaware of NTFS Alternate Data Streams, allowing files
-   inside the .git/ directory to be overwritten during a clone.
-
- * CVE-2019-1353:
-   When running Git in the Windows Subsystem for Linux (also known as
-   "WSL") while accessing a working directory on a regular Windows
-   drive, none of the NTFS protections were active.
-
- * CVE-2019-1354:
-   Filenames on Linux/Unix can contain backslashes. On Windows,
-   backslashes are directory separators. Git did not use to refuse to
-   write out tracked files with such filenames.
-
- * CVE-2019-1387:
-   Recursive clones are currently affected by a vulnerability that is
-   caused by too-lax validation of submodule names, allowing very
-   targeted attacks via remote code execution in recursive clones.
-
-Credit for finding these vulnerabilities goes to Microsoft Security
-Response Center, in particular to Nicolas Joly. The `fast-import`
-fixes were provided by Jeff King, the other fixes by Johannes
-Schindelin with help from Garima Singh.
diff --git a/third_party/git/Documentation/RelNotes/2.15.0.txt b/third_party/git/Documentation/RelNotes/2.15.0.txt
deleted file mode 100644
index cdd761bcc207..000000000000
--- a/third_party/git/Documentation/RelNotes/2.15.0.txt
+++ /dev/null
@@ -1,508 +0,0 @@
-Git 2.15 Release Notes
-======================
-
-Backward compatibility notes and other notable changes.
-
- * Use of an empty string as a pathspec element that is used for
-   'everything matches' is still warned and Git asks users to use a
-   more explicit '.' for that instead.  The hope is that existing
-   users will not mind this change, and eventually the warning can be
-   turned into a hard error, upgrading the deprecation into removal of
-   this (mis)feature.  That is now scheduled to happen in Git v2.16,
-   the next major release after this one.
-
- * Git now avoids blindly falling back to ".git" when the setup
-   sequence said we are _not_ in Git repository.  A corner case that
-   happens to work right now may be broken by a call to BUG().
-   We've tried hard to locate such cases and fixed them, but there
-   might still be cases that need to be addressed--bug reports are
-   greatly appreciated.
-
- * "branch --set-upstream" that has been deprecated in Git 1.8 has
-   finally been retired.
-
-
-Updates since v2.14
--------------------
-
-UI, Workflows & Features
-
- * An example that is now obsolete has been removed from a sample hook,
-   and an old example in it that added a sign-off manually has been
-   improved to use the interpret-trailers command.
-
- * The advice message given when "git rebase" stops for conflicting
-   changes has been improved.
-
- * The "rerere-train" script (in contrib/) learned the "--overwrite"
-   option to allow overwriting existing recorded resolutions.
-
- * "git contacts" (in contrib/) now lists the address on the
-   "Reported-by:" trailer to its output, in addition to those on
-   S-o-b: and other trailers, to make it easier to notify (and thank)
-   the original bug reporter.
-
- * "git rebase", especially when it is run by mistake and ends up
-   trying to replay many changes, spent long time in silence.  The
-   command has been taught to show progress report when it spends
-   long time preparing these many changes to replay (which would give
-   the user a chance to abort with ^C).
-
- * "git merge" learned a "--signoff" option to add the Signed-off-by:
-   trailer with the committer's name.
-
- * "git diff" learned to optionally paint new lines that are the same
-   as deleted lines elsewhere differently from genuinely new lines.
-
- * "git interpret-trailers" learned to take the trailer specifications
-   from the command line that overrides the configured values.
-
- * "git interpret-trailers" has been taught a "--parse" and a few
-   other options to make it easier for scripts to grab existing
-   trailer lines from a commit log message.
-
- * The "--format=%(trailers)" option "git log" and its friends take
-   learned to take the 'unfold' and 'only' modifiers to normalize its
-   output, e.g. "git log --format=%(trailers:only,unfold)".
-
- * "gitweb" shows a link to visit the 'raw' contents of blobs in the
-   history overview page.
-
- * "[gc] rerereResolved = 5.days" used to be invalid, as the variable
-   is defined to take an integer counting the number of days.  It now
-   is allowed.
-
- * The code to acquire a lock on a reference (e.g. while accepting a
-   push from a client) used to immediately fail when the reference is
-   already locked---now it waits for a very short while and retries,
-   which can make it succeed if the lock holder was holding it during
-   a read-only operation.
-
- * "branch --set-upstream" that has been deprecated in Git 1.8 has
-   finally been retired.
-
- * The codepath to call external process filter for smudge/clean
-   operation learned to show the progress meter.
-
- * "git rev-parse" learned "--is-shallow-repository", that is to be
-   used in a way similar to existing "--is-bare-repository" and
-   friends.
-
- * "git describe --match <pattern>" has been taught to play well with
-   the "--all" option.
-
- * "git branch" learned "-c/-C" to create a new branch by copying an
-   existing one.
-
- * Some commands (most notably "git status") makes an opportunistic
-   update when performing a read-only operation to help optimize later
-   operations in the same repository.  The new "--no-optional-locks"
-   option can be passed to Git to disable them.
-
- * "git for-each-ref --format=..." learned a new format element,
-   %(trailers), to show only the commit log trailer part of the log
-   message.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * Conversion from uchar[20] to struct object_id continues.
-
- * Start using selected c99 constructs in small, stable and
-   essential part of the system to catch people who care about
-   older compilers that do not grok them.
-
- * The filter-process interface learned to allow a process with long
-   latency give a "delayed" response.
-
- * Many uses of comparison callback function the hashmap API uses
-   cast the callback function type when registering it to
-   hashmap_init(), which defeats the compile time type checking when
-   the callback interface changes (e.g. gaining more parameters).
-   The callback implementations have been updated to take "void *"
-   pointers and cast them to the type they expect instead.
-
- * Because recent Git for Windows do come with a real msgfmt, the
-   build procedure for git-gui has been updated to use it instead of a
-   hand-rolled substitute.
-
- * "git grep --recurse-submodules" has been reworked to give a more
-   consistent output across submodule boundary (and do its thing
-   without having to fork a separate process).
-
- * A helper function to read a single whole line into strbuf
-   mistakenly triggered OOM error at EOF under certain conditions,
-   which has been fixed.
-
- * The "ref-store" code reorganization continues.
-
- * "git commit" used to discard the index and re-read from the filesystem
-   just in case the pre-commit hook has updated it in the middle; this
-   has been optimized out when we know we do not run the pre-commit hook.
-   (merge 680ee550d7 kw/commit-keep-index-when-pre-commit-is-not-run later to maint).
-
- * Updates to the HTTP layer we made recently unconditionally used
-   features of libCurl without checking the existence of them, causing
-   compilation errors, which has been fixed.  Also migrate the code to
-   check feature macros, not version numbers, to cope better with
-   libCurl that vendor ships with backported features.
-
- * The API to start showing progress meter after a short delay has
-   been simplified.
-   (merge 8aade107dd jc/simplify-progress later to maint).
-
- * Code clean-up to avoid mixing values read from the .gitmodules file
-   and values read from the .git/config file.
-
- * We used to spend more than necessary cycles allocating and freeing
-   piece of memory while writing each index entry out.  This has been
-   optimized.
-
- * Platforms that ship with a separate sha1 with collision detection
-   library can link to it instead of using the copy we ship as part of
-   our source tree.
-
- * Code around "notes" have been cleaned up.
-   (merge 3964281524 mh/notes-cleanup later to maint).
-
- * The long-standing rule that an in-core lockfile instance, once it
-   is used, must not be freed, has been lifted and the lockfile and
-   tempfile APIs have been updated to reduce the chance of programming
-   errors.
-
- * Our hashmap implementation in hashmap.[ch] is not thread-safe when
-   adding a new item needs to expand the hashtable by rehashing; add
-   an API to disable the automatic rehashing to work it around.
-
- * Many of our programs consider that it is OK to release dynamic
-   storage that is used throughout the life of the program by simply
-   exiting, but this makes it harder to leak detection tools to avoid
-   reporting false positives.  Plug many existing leaks and introduce
-   a mechanism for developers to mark that the region of memory
-   pointed by a pointer is not lost/leaking to help these tools.
-
- * As "git commit" to conclude a conflicted "git merge" honors the
-   commit-msg hook, "git merge" that records a merge commit that
-   cleanly auto-merges should, but it didn't.
-
- * The codepath for "git merge-recursive" has been cleaned up.
-
- * Many leaks of strbuf have been fixed.
-
- * "git imap-send" has our own implementation of the protocol and also
-   can use more recent libCurl with the imap protocol support.  Update
-   the latter so that it can use the credential subsystem, and then
-   make it the default option to use, so that we can eventually
-   deprecate and remove the former.
-
- * "make style" runs git-clang-format to help developers by pointing
-   out coding style issues.
-
- * A test to demonstrate "git mv" failing to adjust nested submodules
-   has been added.
-   (merge c514167df2 hv/mv-nested-submodules-test later to maint).
-
- * On Cygwin, "ulimit -s" does not report failure but it does not work
-   at all, which causes an unexpected success of some tests that
-   expect failures under a limited stack situation.  This has been
-   fixed.
-
- * Many codepaths have been updated to squelch -Wimplicit-fallthrough
-   warnings from Gcc 7 (which is a good code hygiene).
-
- * Add a helper for DLL loading in anticipation for its need in a
-   future topic RSN.
-
- * "git status --ignored", when noticing that a directory without any
-   tracked path is ignored, still enumerated all the ignored paths in
-   the directory, which is unnecessary.  The codepath has been
-   optimized to avoid this overhead.
-
- * The final batch to "git rebase -i" updates to move more code from
-   the shell script to C has been merged.
-
- * Operations that do not touch (majority of) packed refs have been
-   optimized by making accesses to packed-refs file lazy; we no longer
-   pre-parse everything, and an access to a single ref in the
-   packed-refs does not touch majority of irrelevant refs, either.
-
- * Add comment to clarify that the style file is meant to be used with
-   clang-5 and the rules are still work in progress.
-
- * Many variables that points at a region of memory that will live
-   throughout the life of the program have been marked with UNLEAK
-   marker to help the leak checkers concentrate on real leaks..
-
- * Plans for weaning us off of SHA-1 has been documented.
-
- * A new "oidmap" API has been introduced and oidset API has been
-   rewritten to use it.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.14
------------------
-
- * "%C(color name)" in the pretty print format always produced ANSI
-   color escape codes, which was an early design mistake.  They now
-   honor the configuration (e.g. "color.ui = never") and also tty-ness
-   of the output medium.
-
- * The http.{sslkey,sslCert} configuration variables are to be
-   interpreted as a pathname that honors "~[username]/" prefix, but
-   weren't, which has been fixed.
-
- * Numerous bugs in walking of reflogs via "log -g" and friends have
-   been fixed.
-
- * "git commit" when seeing an totally empty message said "you did not
-   edit the message", which is clearly wrong.  The message has been
-   corrected.
-
- * When a directory is not readable, "gitweb" fails to build the
-   project list.  Work this around by skipping such a directory.
-
- * Some versions of GnuPG fails to kill gpg-agent it auto-spawned
-   and such a left-over agent can interfere with a test.  Work it
-   around by attempting to kill one before starting a new test.
-
- * A recently added test for the "credential-cache" helper revealed
-   that EOF detection done around the time the connection to the cache
-   daemon is torn down were flaky.  This was fixed by reacting to
-   ECONNRESET and behaving as if we got an EOF.
-
- * "git log --tag=no-such-tag" showed log starting from HEAD, which
-   has been fixed---it now shows nothing.
-
- * The "tag.pager" configuration variable was useless for those who
-   actually create tag objects, as it interfered with the use of an
-   editor.  A new mechanism has been introduced for commands to enable
-   pager depending on what operation is being carried out to fix this,
-   and then "git tag -l" is made to run pager by default.
-
- * "git push --recurse-submodules $there HEAD:$target" was not
-   propagated down to the submodules, but now it is.
-
- * Commands like "git rebase" accepted the --rerere-autoupdate option
-   from the command line, but did not always use it.  This has been
-   fixed.
-
- * "git clone --recurse-submodules --quiet" did not pass the quiet
-   option down to submodules.
-
- * Test portability fix for OBSD.
-
- * Portability fix for OBSD.
-
- * "git am -s" has been taught that some input may end with a trailer
-   block that is not Signed-off-by: and it should refrain from adding
-   an extra blank line before adding a new sign-off in such a case.
-
- * "git svn" used with "--localtime" option did not compute the tz
-   offset for the timestamp in question and instead always used the
-   current time, which has been corrected.
-
- * Memory leak in an error codepath has been plugged.
-
- * "git stash -u" used the contents of the committed version of the
-   ".gitignore" file to decide which paths are ignored, even when the
-   file has local changes.  The command has been taught to instead use
-   the locally modified contents.
-
- * bash 4.4 or newer gave a warning on NUL byte in command
-   substitution done in "git stash"; this has been squelched.
-
- * "git grep -L" and "git grep --quiet -L" reported different exit
-   codes; this has been corrected.
-
- * When handshake with a subprocess filter notices that the process
-   asked for an unknown capability, Git did not report what program
-   the offending subprocess was running.  This has been corrected.
-
- * "git apply" that is used as a better "patch -p1" failed to apply a
-   taken from a file with CRLF line endings to a file with CRLF line
-   endings.  The root cause was because it misused convert_to_git()
-   that tried to do "safe-crlf" processing by looking at the index
-   entry at the same path, which is a nonsense---in that mode, "apply"
-   is not working on the data in (or derived from) the index at all.
-   This has been fixed.
-
- * Killing "git merge --edit" before the editor returns control left
-   the repository in a state with MERGE_MSG but without MERGE_HEAD,
-   which incorrectly tells the subsequent "git commit" that there was
-   a squash merge in progress.  This has been fixed.
-
- * "git archive" did not work well with pathspecs and the
-   export-ignore attribute.
-
- * In addition to "cc: <a@dd.re.ss> # cruft", "cc: a@dd.re.ss # cruft"
-   was taught to "git send-email" as a valid way to tell it that it
-   needs to also send a carbon copy to <a@dd.re.ss> in the trailer
-   section.
-
- * "git branch -M a b" while on a branch that is completely unrelated
-   to either branch a or branch b misbehaved when multiple worktree
-   was in use.  This has been fixed.
-   (merge 31824d180d nd/worktree-kill-parse-ref later to maint).
-
- * "git gc" and friends when multiple worktrees are used off of a
-   single repository did not consider the index and per-worktree refs
-   of other worktrees as the root for reachability traversal, making
-   objects that are in use only in other worktrees to be subject to
-   garbage collection.
-
- * A regression to "gitk --bisect" by a recent update has been fixed.
-
- * "git -c submodule.recurse=yes pull" did not work as if the
-   "--recurse-submodules" option was given from the command line.
-   This has been corrected.
-
- * Unlike "git commit-tree < file", "git commit-tree -F file" did not
-   pass the contents of the file verbatim and instead completed an
-   incomplete line at the end, if exists.  The latter has been updated
-   to match the behaviour of the former.
-
- * Many codepaths did not diagnose write failures correctly when disks
-   go full, due to their misuse of write_in_full() helper function,
-   which have been corrected.
-   (merge f48ecd38cb jk/write-in-full-fix later to maint).
-
- * "git help co" now says "co is aliased to ...", not "git co is".
-   (merge b3a8076e0d ks/help-alias-label later to maint).
-
- * "git archive", especially when used with pathspec, stored an empty
-   directory in its output, even though Git itself never does so.
-   This has been fixed.
-
- * API error-proofing which happens to also squelch warnings from GCC.
-
- * The explanation of the cut-line in the commit log editor has been
-   slightly tweaked.
-   (merge 8c4b1a3593 ks/commit-do-not-touch-cut-line later to maint).
-
- * "git gc" tries to avoid running two instances at the same time by
-   reading and writing pid/host from and to a lock file; it used to
-   use an incorrect fscanf() format when reading, which has been
-   corrected.
-
- * The scripts to drive TravisCI has been reorganized and then an
-   optimization to avoid spending cycles on a branch whose tip is
-   tagged has been implemented.
-   (merge 8376eb4a8f ls/travis-scriptify later to maint).
-
- * The test linter has been taught that we do not like "echo -e".
-
- * Code cmp.std.c nitpick.
-
- * A regression fix for 2.11 that made the code to read the list of
-   alternate object stores overrun the end of the string.
-   (merge f0f7bebef7 jk/info-alternates-fix later to maint).
-
- * "git describe --match" learned to take multiple patterns in v2.13
-   series, but the feature ignored the patterns after the first one
-   and did not work at all.  This has been fixed.
-
- * "git filter-branch" cannot reproduce a history with a tag without
-   the tagger field, which only ancient versions of Git allowed to be
-   created.  This has been corrected.
-   (merge b2c1ca6b4b ic/fix-filter-branch-to-handle-tag-without-tagger later to maint).
-
- * "git cat-file --textconv" started segfaulting recently, which
-   has been corrected.
-
- * The built-in pattern to detect the "function header" for HTML did
-   not match <H1>..<H6> elements without any attributes, which has
-   been fixed.
-
- * "git mailinfo" was loose in decoding quoted printable and produced
-   garbage when the two letters after the equal sign are not
-   hexadecimal.  This has been fixed.
-
- * The machinery to create xdelta used in pack files received the
-   sizes of the data in size_t, but lost the higher bits of them by
-   storing them in "unsigned int" during the computation, which is
-   fixed.
-
- * The delta format used in the packfile cannot reference data at
-   offset larger than what can be expressed in 4-byte, but the
-   generator for the data failed to make sure the offset does not
-   overflow.  This has been corrected.
-
- * The documentation for '-X<option>' for merges was misleadingly
-   written to suggest that "-s theirs" exists, which is not the case.
-
- * "git fast-export" with -M/-C option issued "copy" instruction on a
-   path that is simultaneously modified, which was incorrect.
-   (merge b3e8ca89cf jt/fast-export-copy-modify-fix later to maint).
-
- * Many codepaths have been updated to squelch -Wsign-compare
-   warnings.
-   (merge 071bcaab64 rj/no-sign-compare later to maint).
-
- * Memory leaks in various codepaths have been plugged.
-   (merge 4d01a7fa65 ma/leakplugs later to maint).
-
- * Recent versions of "git rev-parse --parseopt" did not parse the
-   option specification that does not have the optional flags (*=?!)
-   correctly, which has been corrected.
-   (merge a6304fa4c2 bc/rev-parse-parseopt-fix later to maint).
-
- * The checkpoint command "git fast-import" did not flush updates to
-   refs and marks unless at least one object was created since the
-   last checkpoint, which has been corrected, as these things can
-   happen without any new object getting created.
-   (merge 30e215a65c er/fast-import-dump-refs-on-checkpoint later to maint).
-
- * Spell the name of our system as "Git" in the output from
-   request-pull script.
-
- * Fixes for a handful memory access issues identified by valgrind.
-
- * Backports a moral equivalent of 2015 fix to the poll() emulation
-   from the upstream gnulib to fix occasional breakages on HPE NonStop.
-
- * Users with "color.ui = always" in their configuration were broken
-   by a recent change that made plumbing commands to pay attention to
-   them as the patch created internally by "git add -p" were colored
-   (heh) and made unusable.  This has been fixed by reverting the
-   offending change.
-
- * In the "--format=..." option of the "git for-each-ref" command (and
-   its friends, i.e. the listing mode of "git branch/tag"), "%(atom:)"
-   (e.g. "%(refname:)", "%(body:)" used to error out.  Instead, treat
-   them as if the colon and an empty string that follows it were not
-   there.
-
- * An ancient bug that made Git misbehave with creation/renaming of
-   refs has been fixed.
-
- * "git fetch <there> <src>:<dst>" allows an object name on the <src>
-   side when the other side accepts such a request since Git v2.5, but
-   the documentation was left stale.
-   (merge 83558a412a jc/fetch-refspec-doc-update later to maint).
-
- * Update the documentation for "git filter-branch" so that the filter
-   options are listed in the same order as they are applied, as
-   described in an earlier part of the doc.
-   (merge 07c4984508 dg/filter-branch-filter-order-doc later to maint).
-
- * A possible oom error is now caught as a fatal error, instead of
-   continuing and dereferencing NULL.
-   (merge 55d7d15847 ao/path-use-xmalloc later to maint).
-
- * Other minor doc, test and build updates and code cleanups.
-   (merge f094b89a4d ma/parse-maybe-bool later to maint).
-   (merge 6cdf8a7929 ma/ts-cleanups later to maint).
-   (merge 7560f547e6 ma/up-to-date later to maint).
-   (merge 0db3dc75f3 rs/apply-epoch later to maint).
-   (merge 276d0e35c0 ma/split-symref-update-fix later to maint).
-   (merge f777623514 ks/branch-tweak-error-message-for-extra-args later to maint).
-   (merge 33f3c683ec ks/verify-filename-non-option-error-message-tweak later to maint).
-   (merge 7cbbf9d6a2 ls/filter-process-delayed later to maint).
-   (merge 488aa65c8f wk/merge-options-gpg-sign-doc later to maint).
-   (merge e61cb19a27 jc/branch-force-doc-readability-fix later to maint).
-   (merge 32fceba3fd np/config-path-doc later to maint).
-   (merge e38c681fb7 sb/rev-parse-show-superproject-root later to maint).
-   (merge 4f851dc883 sg/rev-list-doc-reorder-fix later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.15.1.txt b/third_party/git/Documentation/RelNotes/2.15.1.txt
deleted file mode 100644
index ec06704e637d..000000000000
--- a/third_party/git/Documentation/RelNotes/2.15.1.txt
+++ /dev/null
@@ -1,88 +0,0 @@
-Git v2.15.1 Release Notes
-=========================
-
-Fixes since v2.15
------------------
-
- * TravisCI build updates.
-
- * "auto" as a value for the columnar output configuration ought to
-   judge "is the output consumed by humans?" with the same criteria as
-   "auto" for coloured output configuration, i.e. either the standard
-   output stream is going to tty, or a pager is in use.  We forgot the
-   latter, which has been fixed.
-
- * The experimental "color moved lines differently in diff output"
-   feature was buggy around "ignore whitespace changes" edges, which
-   has been corrected.
-
- * Instead of using custom line comparison and hashing functions to
-   implement "moved lines" coloring in the diff output, use the pair
-   of these functions from lower-layer xdiff/ code.
-
- * Some codepaths did not check for errors when asking what branch the
-   HEAD points at, which have been fixed.
-
- * "git commit", after making a commit, did not check for errors when
-   asking on what branch it made the commit, which has been corrected.
-
- * "git status --ignored -u" did not stop at a working tree of a
-   separate project that is embedded in an ignored directory and
-   listed files in that other project, instead of just showing the
-   directory itself as ignored.
-
- * A broken access to object databases in recent update to "git grep
-   --recurse-submodules" has been fixed.
-
- * A recent regression in "git rebase -i" that broke execution of git
-   commands from subdirectories via "exec" instruction has been fixed.
-
- * "git check-ref-format --branch @{-1}" bit a "BUG()" when run
-   outside a repository for obvious reasons; clarify the documentation
-   and make sure we do not even try to expand the at-mark magic in
-   such a case, but still call the validation logic for branch names.
-
- * Command line completion (in contrib/) update.
-
- * Description of blame.{showroot,blankboundary,showemail,date}
-   configuration variables have been added to "git config --help".
-
- * After an error from lstat(), diff_populate_filespec() function
-   sometimes still went ahead and used invalid data in struct stat,
-   which has been fixed.
-
- * UNC paths are also relevant in Cygwin builds and they are now
-   tested just like Mingw builds.
-
- * Correct start-up sequence so that a repository could be placed
-   immediately under the root directory again (which was broken at
-   around Git 2.13).
-
- * The credential helper for libsecret (in contrib/) has been improved
-   to allow possibly prompting the end user to unlock secrets that are
-   currently locked (otherwise the secrets may not be loaded).
-
- * Updates from GfW project.
-
- * "git rebase -i" recently started misbehaving when a submodule that
-   is configured with 'submodule.<name>.ignore' is dirty; this has
-   been corrected.
-
- * Some error messages did not quote filenames shown in it, which have
-   been fixed.
-
- * Building with NO_LIBPCRE1_JIT did not disable it, which has been fixed.
-
- * We used to add an empty alternate object database to the system
-   that does not help anything; it has been corrected.
-
- * Error checking in "git imap-send" for empty response has been
-   improved.
-
- * An ancient bug in "git apply --ignore-space-change" codepath has
-   been fixed.
-
- * There was a recent semantic mismerge in the codepath to write out a
-   section of a configuration section, which has been corrected.
-
-Also contains various documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.15.2.txt b/third_party/git/Documentation/RelNotes/2.15.2.txt
deleted file mode 100644
index b480e56b684d..000000000000
--- a/third_party/git/Documentation/RelNotes/2.15.2.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-Git v2.15.2 Release Notes
-=========================
-
-Fixes since v2.15.1
--------------------
-
- * Recent update to the refs infrastructure implementation started
-   rewriting packed-refs file more often than before; this has been
-   optimized again for most trivial cases.
-
- * The SubmittingPatches document has been converted to produce an
-   HTML version via AsciiDoc/Asciidoctor.
-
- * Contrary to the documentation, "git pull -4/-6 other-args" did not
-   ask the underlying "git fetch" to go over IPv4/IPv6, which has been
-   corrected.
-
- * When "git rebase" prepared an mailbox of changes and fed it to "git
-   am" to replay them, it was confused when a stray "From " happened
-   to be in the log message of one of the replayed changes.  This has
-   been corrected.
-
- * Command line completion (in contrib/) has been taught about the
-   "--copy" option of "git branch".
-
- * "git apply --inaccurate-eof" when used with "--ignore-space-change"
-   triggered an internal sanity check, which has been fixed.
-
- * The sequencer machinery (used by "git cherry-pick A..B", and "git
-   rebase -i", among other things) would have lost a commit if stopped
-   due to an unlockable index file, which has been fixed.
-
- * The three-way merge performed by "git cherry-pick" was confused
-   when a new submodule was added in the meantime, which has been
-   fixed (or "papered over").
-
- * "git notes" sent its error message to its standard output stream,
-   which was corrected.
-
- * A few scripts (both in production and tests) incorrectly redirected
-   their error output.  These have been corrected.
-
- * Clarify and enhance documentation for "merge-base --fork-point", as
-   it was clear what it computed but not why/what for.
-
- * This release also contains the fixes made in the v2.13.7 version of
-   Git.  See its release notes for details.
-
-
-Also contains various documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.15.3.txt b/third_party/git/Documentation/RelNotes/2.15.3.txt
deleted file mode 100644
index fd2e6f8df786..000000000000
--- a/third_party/git/Documentation/RelNotes/2.15.3.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Git v2.15.3 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.5 to address
-the recently reported CVE-2018-17456; see the release notes for that
-version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.15.4.txt b/third_party/git/Documentation/RelNotes/2.15.4.txt
deleted file mode 100644
index dc241cba349f..000000000000
--- a/third_party/git/Documentation/RelNotes/2.15.4.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Git v2.15.4 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.6 to address
-the security issues CVE-2019-1348, CVE-2019-1349, CVE-2019-1350,
-CVE-2019-1351, CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, and
-CVE-2019-1387; see the release notes for that version for details.
-
-In conjunction with a vulnerability that was fixed in v2.20.2,
-`.gitmodules` is no longer allowed to contain entries of the form
-`submodule.<name>.update=!command`.
diff --git a/third_party/git/Documentation/RelNotes/2.16.0.txt b/third_party/git/Documentation/RelNotes/2.16.0.txt
deleted file mode 100644
index b474781ed827..000000000000
--- a/third_party/git/Documentation/RelNotes/2.16.0.txt
+++ /dev/null
@@ -1,482 +0,0 @@
-Git 2.16 Release Notes
-======================
-
-Backward compatibility notes and other notable changes.
-
- * Use of an empty string as a pathspec element that is used for
-   'everything matches' is now an error.
-
-
-Updates since v2.15
--------------------
-
-UI, Workflows & Features
-
- * An empty string as a pathspec element that means "everything"
-   i.e. 'git add ""', is now illegal.  We started this by first
-   deprecating and warning a pathspec that has such an element in
-   2.11 (Nov 2016).
-
- * A hook script that is set unexecutable is simply ignored.  Git
-   notifies when such a file is ignored, unless the message is
-   squelched via advice.ignoredHook configuration.
-
- * "git pull" has been taught to accept "--[no-]signoff" option and
-   pass it down to "git merge".
-
- * The "--push-option=<string>" option to "git push" now defaults to a
-   list of strings configured via push.pushOption variable.
-
- * "gitweb" checks if a directory is searchable with Perl's "-x"
-   operator, which can be enhanced by using "filetest 'access'"
-   pragma, which now we do.
-
- * "git stash save" has been deprecated in favour of "git stash push".
-
- * The set of paths output from "git status --ignored" was tied
-   closely with its "--untracked=<mode>" option, but now it can be
-   controlled more flexibly.  Most notably, a directory that is
-   ignored because it is listed to be ignored in the ignore/exclude
-   mechanism can be handled differently from a directory that ends up
-   to be ignored only because all files in it are ignored.
-
- * The remote-helper for talking to MediaWiki has been updated to
-   truncate an overlong pagename so that ".mw" suffix can still be
-   added.
-
- * The remote-helper for talking to MediaWiki has been updated to
-   work with mediawiki namespaces.
-
- * The "--format=..." option "git for-each-ref" takes learned to show
-   the name of the 'remote' repository and the ref at the remote side
-   that is affected for 'upstream' and 'push' via "%(push:remotename)"
-   and friends.
-
- * Doc and message updates to teach users "bisect view" is a synonym
-   for "bisect visualize".
-
- * "git bisect run" that did not specify any command to run used to go
-   ahead and treated all commits to be tested as 'good'.  This has
-   been corrected by making the command error out.
-
- * The SubmittingPatches document has been converted to produce an
-   HTML version via AsciiDoc/Asciidoctor.
-
- * We learned to optionally talk to a file system monitor via new
-   fsmonitor extension to speed up "git status" and other operations
-   that need to see which paths have been modified.  Currently we only
-   support "watchman".  See File System Monitor section of
-   git-update-index(1) for more detail.
-
- * The "diff" family of commands learned to ignore differences in
-   carriage return at the end of line.
-
- * Places that know about "sendemail.to", like documentation and shell
-   completion (in contrib/) have been taught about "sendemail.tocmd",
-   too.
-
- * "git add --renormalize ." is a new and safer way to record the fact
-   that you are correcting the end-of-line convention and other
-   "convert_to_git()" glitches in the in-repository data.
-
- * "git branch" and "git checkout -b" are now forbidden from creating
-   a branch whose name is "HEAD".
-
- * "git branch --list" learned to show its output through the pager by
-   default when the output is going to a terminal, which is controlled
-   by the pager.branch configuration variable.  This is similar to a
-   recent change to "git tag --list".
-
- * "git grep -W", "git diff -W" and their friends learned a heuristic
-   to extend a pre-context beyond the line that matches the "function
-   pattern" (aka "diff.*.xfuncname") to include a comment block, if
-   exists, that immediately precedes it.
-
- * "git config --expiry-date gc.reflogexpire" can read "2.weeks" from
-   the configuration and report it as a timestamp, just like "--int"
-   would read "1k" and report 1024, to help consumption by scripts.
-
- * The shell completion (in contrib/) learned that "git pull" can take
-   the "--autostash" option.
-
- * The tagnames "git log --decorate" uses to annotate the commits can
-   now be limited to subset of available refs with the two additional
-   options, --decorate-refs[-exclude]=<pattern>.
-
- * "git grep" compiled with libpcre2 sometimes triggered a segfault,
-   which is being fixed.
-
- * "git send-email" tries to see if the sendmail program is available
-   in /usr/lib and /usr/sbin; extend the list of locations to be
-   checked to also include directories on $PATH.
-
- * "git diff" learned, "--anchored", a variant of the "--patience"
-   algorithm, to which the user can specify which 'unique' line to be
-   used as anchoring points.
-
- * The way "git worktree add" determines what branch to create from
-   where and checkout in the new worktree has been updated a bit.
-
- * Ancient part of codebase still shows dots after an abbreviated
-   object name just to show that it is not a full object name, but
-   these ellipses are confusing to people who newly discovered Git
-   who are used to seeing abbreviated object names and find them
-   confusing with the range syntax.
-
- * With a configuration variable rebase.abbreviateCommands set,
-   "git rebase -i" produces the todo list with a single-letter
-   command names.
-
- * "git worktree add" learned to run the post-checkout hook, just like
-   "git checkout" does, after the initial checkout.
-
- * "git svn" has been updated to strip CRs in the commit messages, as
-   recent versions of Subversion rejects them.
-
- * "git imap-send" did not correctly quote the folder name when
-   making a request to the server, which has been corrected.
-
- * Error messages from "git rebase" have been somewhat cleaned up.
-
- * Git has been taught to support an https:// URL used for http.proxy
-   when using recent versions of libcurl.
-
- * "git merge" learned to pay attention to merge.verifySignatures
-   configuration variable and pretend as if '--verify-signatures'
-   option was given from the command line.
-
- * "git describe" was taught to dig trees deeper to find a
-   <commit-ish>:<path> that refers to a given blob object.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * An earlier update made it possible to use an on-stack in-core
-   lockfile structure (as opposed to having to deliberately leak an
-   on-heap one).  Many codepaths have been updated to take advantage
-   of this new facility.
-
- * Calling cmd_foo() as if it is a general purpose helper function is
-   a no-no.  Correct two instances of such to set an example.
-
- * We try to see if somebody runs our test suite with a shell that
-   does not support "local" like bash/dash does.
-
- * An early part of piece-by-piece rewrite of "git bisect" in C.
-
- * GSoC to piece-by-piece rewrite "git submodule" in C.
-
- * Optimize the code to find shortest unique prefix of object names.
-
- * Pathspec-limited revision traversal was taught not to keep finding
-   unneeded differences once it knows two trees are different inside
-   given pathspec.
-
- * Conversion from uchar[20] to struct object_id continues.
-
- * Code cleanup.
-
- * A single-word "unsigned flags" in the diff options is being split
-   into a structure with many bitfields.
-
- * TravisCI build updates.
-
- * Parts of a test to drive the long-running content filter interface
-   has been split into its own module, hopefully to eventually become
-   reusable.
-
- * Drop (perhaps overly cautious) sanity check before using the index
-   read from the filesystem at runtime.
-
- * The build procedure has been taught to avoid some unnecessary
-   instability in the build products.
-
- * A new mechanism to upgrade the wire protocol in place is proposed
-   and demonstrated that it works with the older versions of Git
-   without harming them.
-
- * An infrastructure to define what hash function is used in Git is
-   introduced, and an effort to plumb that throughout various
-   codepaths has been started.
-
- * The code to iterate over loose object files got optimized.
-
- * An internal function that was left for backward compatibility has
-   been removed, as there is no remaining callers.
-
- * Historically, the diff machinery for rename detection had a
-   hardcoded limit of 32k paths; this is being lifted to allow users
-   trade cycles with a (possibly) easier to read result.
-
- * The tracing infrastructure has been optimized for cases where no
-   tracing is requested.
-
- * In preparation for implementing narrow/partial clone, the object
-   walking machinery has been taught a way to tell it to "filter" some
-   objects from enumeration.
-
- * A few structures and variables that are implementation details of
-   the decorate API have been renamed and then the API got documented
-   better.
-
- * Assorted updates for TravisCI integration.
-   (merge 4f26366679 sg/travis-fixes later to maint).
-
- * Introduce a helper to simplify code to parse a common pattern that
-   expects either "--key" or "--key=<something>".
-
- * "git version --build-options" learned to report the host CPU and
-   the exact commit object name the binary was built from.
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.15
------------------
-
- * "auto" as a value for the columnar output configuration ought to
-   judge "is the output consumed by humans?" with the same criteria as
-   "auto" for coloured output configuration, i.e. either the standard
-   output stream is going to tty, or a pager is in use.  We forgot the
-   latter, which has been fixed.
-
- * The experimental "color moved lines differently in diff output"
-   feature was buggy around "ignore whitespace changes" edges, which
-   has been corrected.
-
- * Instead of using custom line comparison and hashing functions to
-   implement "moved lines" coloring in the diff output, use the pair
-   of these functions from lower-layer xdiff/ code.
-
- * Some codepaths did not check for errors when asking what branch the
-   HEAD points at, which have been fixed.
-
- * "git commit", after making a commit, did not check for errors when
-   asking on what branch it made the commit, which has been corrected.
-
- * "git status --ignored -u" did not stop at a working tree of a
-   separate project that is embedded in an ignored directory and
-   listed files in that other project, instead of just showing the
-   directory itself as ignored.
-
- * A broken access to object databases in recent update to "git grep
-   --recurse-submodules" has been fixed.
-
- * A recent regression in "git rebase -i" that broke execution of git
-   commands from subdirectories via "exec" instruction has been fixed.
-
- * A (possibly flakey) test fix.
-
- * "git check-ref-format --branch @{-1}" bit a "BUG()" when run
-   outside a repository for obvious reasons; clarify the documentation
-   and make sure we do not even try to expand the at-mark magic in
-   such a case, but still call the validation logic for branch names.
-
- * "git fetch --recurse-submodules" now knows that submodules can be
-   moved around in the superproject in addition to getting updated,
-   and finds the ones that need to be fetched accordingly.
-
- * Command line completion (in contrib/) update.
-
- * Description of blame.{showroot,blankboundary,showemail,date}
-   configuration variables have been added to "git config --help".
-
- * After an error from lstat(), diff_populate_filespec() function
-   sometimes still went ahead and used invalid data in struct stat,
-   which has been fixed.
-
- * UNC paths are also relevant in Cygwin builds and they are now
-   tested just like Mingw builds.
-
- * Correct start-up sequence so that a repository could be placed
-   immediately under the root directory again (which was broken at
-   around Git 2.13).
-
- * The credential helper for libsecret (in contrib/) has been improved
-   to allow possibly prompting the end user to unlock secrets that are
-   currently locked (otherwise the secrets may not be loaded).
-
- * MinGW updates.
-
- * Error checking in "git imap-send" for empty response has been
-   improved.
-
- * Recent update to the refs infrastructure implementation started
-   rewriting packed-refs file more often than before; this has been
-   optimized again for most trivial cases.
-
- * Some error messages did not quote filenames shown in it, which have
-   been fixed.
-
- * "git rebase -i" recently started misbehaving when a submodule that
-   is configured with 'submodule.<name>.ignore' is dirty; this has
-   been corrected.
-
- * Building with NO_LIBPCRE1_JIT did not disable it, which has been fixed.
-
- * We used to add an empty alternate object database to the system
-   that does not help anything; it has been corrected.
-
- * Doc update around use of "format-patch --subject-prefix" etc.
-
- * A fix for an ancient bug in "git apply --ignore-space-change" codepath.
-
- * Clarify and enhance documentation for "merge-base --fork-point", as
-   it was clear what it computed but not why/what for.
-
- * A few scripts (both in production and tests) incorrectly redirected
-   their error output.  These have been corrected.
-
- * "git notes" sent its error message to its standard output stream,
-   which was corrected.
-
- * The three-way merge performed by "git cherry-pick" was confused
-   when a new submodule was added in the meantime, which has been
-   fixed (or "papered over").
-
- * The sequencer machinery (used by "git cherry-pick A..B", and "git
-   rebase -i", among other things) would have lost a commit if stopped
-   due to an unlockable index file, which has been fixed.
-
- * "git apply --inaccurate-eof" when used with "--ignore-space-change"
-   triggered an internal sanity check, which has been fixed.
-
- * Command line completion (in contrib/) has been taught about the
-   "--copy" option of "git branch".
-
- * When "git rebase" prepared a mailbox of changes and fed it to "git
-   am" to replay them, it was confused when a stray "From " happened
-   to be in the log message of one of the replayed changes.  This has
-   been corrected.
-
- * There was a recent semantic mismerge in the codepath to write out a
-   section of a configuration section, which has been corrected.
-
- * Mentions of "git-rebase" and "git-am" (dashed form) still remained
-   in end-user visible strings emitted by the "git rebase" command;
-   they have been corrected.
-
- * Contrary to the documentation, "git pull -4/-6 other-args" did not
-   ask the underlying "git fetch" to go over IPv4/IPv6, which has been
-   corrected.
-
- * "git checkout --recursive" may overwrite and rewind the history of
-   the branch that happens to be checked out in submodule
-   repositories, which might not be desirable.  Detach the HEAD but
-   still allow the recursive checkout to succeed in such a case.
-   (merge 57f22bf997 sb/submodule-recursive-checkout-detach-head later to maint).
-
- * "git branch --set-upstream" has been deprecated and (sort of)
-   removed, as "--set-upstream-to" is the preferred one these days.
-   The documentation still had "--set-upstream" listed on its
-   synopsis section, which has been corrected.
-   (merge a060f3d3d8 tz/branch-doc-remove-set-upstream later to maint).
-
- * Internally we use 0{40} as a placeholder object name to signal the
-   codepath that there is no such object (e.g. the fast-forward check
-   while "git fetch" stores a new remote-tracking ref says "we know
-   there is no 'old' thing pointed at by the ref, as we are creating
-   it anew" by passing 0{40} for the 'old' side), and expect that a
-   codepath to locate an in-core object to return NULL as a sign that
-   the object does not exist.  A look-up for an object that does not
-   exist however is quite costly with a repository with large number
-   of packfiles.  This access pattern has been optimized.
-   (merge 87b5e236a1 jk/fewer-pack-rescan later to maint).
-
- * In addition to "git stash -m message", the command learned to
-   accept "git stash -mmessage" form.
-   (merge 5675473fcb ph/stash-save-m-option-fix later to maint).
-
- * @{-N} in "git checkout @{-N}" may refer to a detached HEAD state,
-   but the documentation was not clear about it, which has been fixed.
-   (merge 75ce149575 ks/doc-checkout-previous later to maint).
-
- * A regression in the progress eye-candy was fixed.
-   (merge 9c5951cacf jk/progress-delay-fix later to maint).
-
- * The code internal to the recursive merge strategy was not fully
-   prepared to see a path that is renamed to try overwriting another
-   path that is only different in case on case insensitive systems.
-   This does not matter in the current code, but will start to matter
-   once the rename detection logic starts taking hints from nearby
-   paths moving to some directory and moves a new path along with them.
-   (merge 4cba2b0108 en/merge-recursive-icase-removal later to maint).
-
- * An v2.12-era regression in pathspec match logic, which made it look
-   into submodule tree even when it is not desired, has been fixed.
-   (merge eef3df5a93 bw/pathspec-match-submodule-boundary later to maint).
-
- * Amending commits in git-gui broke the author name that is non-ascii
-   due to incorrect encoding conversion.
-
- * Recent update to the submodule configuration code broke "diff-tree"
-   by accidentally stopping to read from the index upfront.
-   (merge fd66bcc31f bw/submodule-config-cleanup later to maint).
-
- * Git shows a message to tell the user that it is waiting for the
-   user to finish editing when spawning an editor, in case the editor
-   opens to a hidden window or somewhere obscure and the user gets
-   lost.
-   (merge abfb04d0c7 ls/editor-waiting-message later to maint).
-
- * The "safe crlf" check incorrectly triggered for contents that does
-   not use CRLF as line endings, which has been corrected.
-   (merge 649f1f0948 tb/check-crlf-for-safe-crlf later to maint).
-
- * "git clone --shared" to borrow from a (secondary) worktree did not
-   work, even though "git clone --local" did.  Both are now accepted.
-   (merge b3b05971c1 es/clone-shared-worktree later to maint).
-
- * The build procedure now allows not just the repositories but also
-   the refs to be used to take pre-formatted manpages and html
-   documents to install.
-   (merge 65289e9dcd rb/quick-install-doc later to maint).
-
- * Update the shell prompt script (in contrib/) to strip trailing CR
-   from strings read from various "state" files.
-   (merge 041fe8fc83 ra/prompt-eread-fix later to maint).
-
- * "git merge -s recursive" did not correctly abort when the index is
-   dirty, if the merged tree happened to be the same as the current
-   HEAD, which has been fixed.
-
- * Bytes with high-bit set were encoded incorrectly and made
-   credential helper fail.
-   (merge 4c267f2ae3 jd/fix-strbuf-add-urlencode-bytes later to maint).
-
- * "git rebase -p -X<option>" did not propagate the option properly
-   down to underlying merge strategy backend.
-   (merge dd6fb0053c js/fix-merge-arg-quoting-in-rebase-p later to maint).
-
- * "git merge -s recursive" did not correctly abort when the index is
-   dirty, if the merged tree happened to be the same as the current
-   HEAD, which has been fixed.
-   (merge f309e8e768 ew/empty-merge-with-dirty-index-maint later to maint).
-
- * Other minor doc, test and build updates and code cleanups.
-   (merge 1a1fc2d5b5 rd/man-prune-progress later to maint).
-   (merge 0ba014035a rd/man-reflog-add-n later to maint).
-   (merge e54b63359f rd/doc-notes-prune-fix later to maint).
-   (merge ff4c9b413a sp/doc-info-attributes later to maint).
-   (merge 7db2cbf4f1 jc/receive-pack-hook-doc later to maint).
-   (merge 5a0526264b tg/t-readme-updates later to maint).
-   (merge 5e83cca0b8 jk/no-optional-locks later to maint).
-   (merge 826c778f7c js/hashmap-update-sample later to maint).
-   (merge 176b2d328c sg/setup-doc-update later to maint).
-   (merge 1b09073514 rs/am-builtin-leakfix later to maint).
-   (merge addcf6cfde rs/fmt-merge-msg-string-leak-fix later to maint).
-   (merge c3ff8f6c14 rs/strbuf-read-once-reset-length later to maint).
-   (merge 6b0eb884f9 db/doc-workflows-neuter-the-maintainer later to maint).
-   (merge 8c87bdfb21 jk/cvsimport-quoting later to maint).
-   (merge 176cb979fe rs/fmt-merge-msg-leakfix later to maint).
-   (merge 5a03360e73 tb/delimit-pretty-trailers-args-with-comma later to maint).
-   (merge d0e6326026 ot/pretty later to maint).
-   (merge 44103f4197 sb/test-helper-excludes later to maint).
-   (merge 170078693f jt/transport-no-more-rsync later to maint).
-   (merge c07b3adff1 bw/path-doc later to maint).
-   (merge bf9d7df950 tz/lib-git-svn-svnserve-tests later to maint).
-   (merge dec366c9a8 sr/http-sslverify-config-doc later to maint).
-   (merge 3f824e91c8 jk/test-suite-tracing later to maint).
-   (merge 1feb061701 db/doc-config-section-names-with-bs later to maint).
-   (merge 74dea0e13c jh/memihash-opt later to maint).
-   (merge 2e9fdc795c ma/bisect-leakfix later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.16.1.txt b/third_party/git/Documentation/RelNotes/2.16.1.txt
deleted file mode 100644
index 66e64361fd30..000000000000
--- a/third_party/git/Documentation/RelNotes/2.16.1.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Git v2.16.1 Release Notes
-=========================
-
-Fixes since v2.16
------------------
-
- * "git clone" segfaulted when cloning a project that happens to
-   track two paths that differ only in case on a case insensitive
-   filesystem.
-
-Does not contain any other documentation updates or code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.16.2.txt b/third_party/git/Documentation/RelNotes/2.16.2.txt
deleted file mode 100644
index a216466d3d71..000000000000
--- a/third_party/git/Documentation/RelNotes/2.16.2.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Git v2.16.2 Release Notes
-=========================
-
-Fixes since v2.16.1
--------------------
-
- * An old regression in "git describe --all $annotated_tag^0" has been
-   fixed.
-
- * "git svn dcommit" did not take into account the fact that a
-   svn+ssh:// URL with a username@ (typically used for pushing) refers
-   to the same SVN repository without the username@ and failed when
-   svn.pushmergeinfo option is set.
-
- * "git merge -Xours/-Xtheirs" learned to use our/their version when
-   resolving a conflicting updates to a symbolic link.
-
- * "git clone $there $here" is allowed even when here directory exists
-   as long as it is an empty directory, but the command incorrectly
-   removed it upon a failure of the operation.
-
- * "git stash -- <pathspec>" incorrectly blew away untracked files in
-   the directory that matched the pathspec, which has been corrected.
-
- * "git add -p" was taught to ignore local changes to submodules as
-   they do not interfere with the partial addition of regular changes
-   anyway.
-
-
-Also contains various documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.16.3.txt b/third_party/git/Documentation/RelNotes/2.16.3.txt
deleted file mode 100644
index f0121a8f2d31..000000000000
--- a/third_party/git/Documentation/RelNotes/2.16.3.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-Git v2.16.3 Release Notes
-=========================
-
-Fixes since v2.16.2
--------------------
-
- * "git status" after moving a path in the working tree (hence making
-   it appear "removed") and then adding with the -N option (hence
-   making that appear "added") detected it as a rename, but did not
-   report the  old and new pathnames correctly.
-
- * "git commit --fixup" did not allow "-m<message>" option to be used
-   at the same time; allow it to annotate resulting commit with more
-   text.
-
- * When resetting the working tree files recursively, the working tree
-   of submodules are now also reset to match.
-
- * Fix for a commented-out code to adjust it to a rather old API change
-   around object ID.
-
- * When there are too many changed paths, "git diff" showed a warning
-   message but in the middle of a line.
-
- * The http tracing code, often used to debug connection issues,
-   learned to redact potentially sensitive information from its output
-   so that it can be more safely shareable.
-
- * Crash fix for a corner case where an error codepath tried to unlock
-   what it did not acquire lock on.
-
- * The split-index mode had a few corner case bugs fixed.
-
- * Assorted fixes to "git daemon".
-
- * Completion of "git merge -s<strategy>" (in contrib/) did not work
-   well in non-C locale.
-
- * Workaround for segfault with more recent versions of SVN.
-
- * Recently introduced leaks in fsck have been plugged.
-
- * Travis CI integration now builds the executable in 'script' phase
-   to follow the established practice, rather than during
-   'before_script' phase.  This allows the CI categorize the failures
-   better ('failed' is project's fault, 'errored' is build
-   environment's).
-
-Also contains various documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.16.4.txt b/third_party/git/Documentation/RelNotes/2.16.4.txt
deleted file mode 100644
index 6be538ba30c6..000000000000
--- a/third_party/git/Documentation/RelNotes/2.16.4.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.16.4 Release Notes
-=========================
-
-This release is to forward-port the fixes made in the v2.13.7 version
-of Git.  See its release notes for details.
diff --git a/third_party/git/Documentation/RelNotes/2.16.5.txt b/third_party/git/Documentation/RelNotes/2.16.5.txt
deleted file mode 100644
index cb8ee02a9af8..000000000000
--- a/third_party/git/Documentation/RelNotes/2.16.5.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Git v2.16.5 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.5 to address
-the recently reported CVE-2018-17456; see the release notes for that
-version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.16.6.txt b/third_party/git/Documentation/RelNotes/2.16.6.txt
deleted file mode 100644
index 438306e60bf3..000000000000
--- a/third_party/git/Documentation/RelNotes/2.16.6.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Git v2.16.6 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.6 and in
-v2.15.4 addressing the security issues CVE-2019-1348, CVE-2019-1349,
-CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, CVE-2019-1353,
-CVE-2019-1354, and CVE-2019-1387; see the release notes for those
-versions for details.
diff --git a/third_party/git/Documentation/RelNotes/2.17.0.txt b/third_party/git/Documentation/RelNotes/2.17.0.txt
deleted file mode 100644
index 8b17c260336c..000000000000
--- a/third_party/git/Documentation/RelNotes/2.17.0.txt
+++ /dev/null
@@ -1,398 +0,0 @@
-Git 2.17 Release Notes
-======================
-
-Updates since v2.16
--------------------
-
-UI, Workflows & Features
-
- * "diff" family of commands learned "--find-object=<object-id>" option
-   to limit the findings to changes that involve the named object.
-
- * "git format-patch" learned to give 72-cols to diffstat, which is
-   consistent with other line length limits the subcommand uses for
-   its output meant for e-mails.
-
- * The log from "git daemon" can be redirected with a new option; one
-   relevant use case is to send the log to standard error (instead of
-   syslog) when running it from inetd.
-
- * "git rebase" learned to take "--allow-empty-message" option.
-
- * "git am" has learned the "--quit" option, in addition to the
-   existing "--abort" option; having the pair mirrors a few other
-   commands like "rebase" and "cherry-pick".
-
- * "git worktree add" learned to run the post-checkout hook, just like
-   "git clone" runs it upon the initial checkout.
-
- * "git tag" learned an explicit "--edit" option that allows the
-   message given via "-m" and "-F" to be further edited.
-
- * "git fetch --prune-tags" may be used as a handy short-hand for
-   getting rid of stale tags that are locally held.
-
- * The new "--show-current-patch" option gives an end-user facing way
-   to get the diff being applied when "git rebase" (and "git am")
-   stops with a conflict.
-
- * "git add -p" used to offer "/" (look for a matching hunk) as a
-   choice, even there was only one hunk, which has been corrected.
-   Also the single-key help is now given only for keys that are
-   enabled (e.g. help for '/' won't be shown when there is only one
-   hunk).
-
- * Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when
-   the side branch being merged is a descendant of the current commit,
-   create a merge commit instead of fast-forwarding) when merging a
-   tag object.  This was appropriate default for integrators who pull
-   signed tags from their downstream contributors, but caused an
-   unnecessary merges when used by downstream contributors who
-   habitually "catch up" their topic branches with tagged releases
-   from the upstream.  Update "git merge" to default to --no-ff only
-   when merging a tag object that does *not* sit at its usual place in
-   refs/tags/ hierarchy, and allow fast-forwarding otherwise, to
-   mitigate the problem.
-
- * "git status" can spend a lot of cycles to compute the relation
-   between the current branch and its upstream, which can now be
-   disabled with "--no-ahead-behind" option.
-
- * "git diff" and friends learned funcname patterns for Go language
-   source files.
-
- * "git send-email" learned "--reply-to=<address>" option.
-
- * Funcname pattern used for C# now recognizes "async" keyword.
-
- * In a way similar to how "git tag" learned to honor the pager
-   setting only in the list mode, "git config" learned to ignore the
-   pager setting when it is used for setting values (i.e. when the
-   purpose of the operation is not to "show").
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * More perf tests for threaded grep
-
- * "perf" test output can be sent to codespeed server.
-
- * The build procedure for perl/ part has been greatly simplified by
-   weaning ourselves off of MakeMaker.
-
- * Perl 5.8 or greater has been required since Git 1.7.4 released in
-   2010, but we continued to assume some core modules may not exist and
-   used a conditional "eval { require <<module>> }"; we no longer do
-   this.  Some platforms (Fedora/RedHat/CentOS, for example) ship Perl
-   without all core modules by default (e.g. Digest::MD5, File::Temp,
-   File::Spec, Net::Domain, Net::SMTP).  Users on such platforms may
-   need to install these additional modules.
-
- * As a convenience, we install copies of Perl modules we require which
-   are not part of the core Perl distribution (e.g. Error and
-   Mail::Address).  Users and packagers whose operating system provides
-   these modules can set NO_PERL_CPAN_FALLBACKS to avoid installing the
-   bundled modules.
-
- * In preparation for implementing narrow/partial clone, the machinery
-   for checking object connectivity used by gc and fsck has been
-   taught that a missing object is OK when it is referenced by a
-   packfile specially marked as coming from trusted repository that
-   promises to make them available on-demand and lazily.
-
- * The machinery to clone & fetch, which in turn involves packing and
-   unpacking objects, has been told how to omit certain objects using
-   the filtering mechanism introduced by another topic.  It now knows
-   to mark the resulting pack as a promisor pack to tolerate missing
-   objects, laying foundation for "narrow" clones.
-
- * The first step to getting rid of mru API and using the
-   doubly-linked list API directly instead.
-
- * Retire mru API as it does not give enough abstraction over
-   underlying list API to be worth it.
-
- * Rewrite two more "git submodule" subcommands in C.
-
- * The tracing machinery learned to report tweaking of environment
-   variables as well.
-
- * Update Coccinelle rules to catch and optimize strbuf_addf(&buf, "%s", str)
-
- * Prevent "clang-format" from breaking line after function return type.
-
- * The sequencer infrastructure is shared across "git cherry-pick",
-   "git rebase -i", etc., and has always spawned "git commit" when it
-   needs to create a commit.  It has been taught to do so internally,
-   when able, by reusing the codepath "git commit" itself uses, which
-   gives performance boost for a few tens of percents in some sample
-   scenarios.
-
- * Push the submodule version of collision-detecting SHA-1 hash
-   implementation a bit harder on builders.
-
- * Avoid mmapping small files while using packed refs (especially ones
-   with zero size, which would cause later munmap() to fail).
-
- * Conversion from uchar[20] to struct object_id continues.
-
- * More tests for wildmatch functions.
-
- * The code to binary search starting from a fan-out table (which is
-   how the packfile is indexed with object names) has been refactored
-   into a reusable helper.
-
- * We now avoid using identifiers that clash with C++ keywords.  Even
-   though it is not a goal to compile Git with C++ compilers, changes
-   like this help use of code analysis tools that targets C++ on our
-   codebase.
-
- * The executable is now built in 'script' phase in Travis CI integration,
-   to follow the established practice, rather than during 'before_script'
-   phase.  This allows the CI categorize the failures better ('failed'
-   is project's fault, 'errored' is build environment's).
-   (merge 3c93b82920 sg/travis-build-during-script-phase later to maint).
-
- * Writing out the index file when the only thing that changed in it
-   is the untracked cache information is often wasteful, and this has
-   been optimized out.
-
- * Various pieces of Perl code we have have been cleaned up.
-
- * Internal API clean-up to allow write_locked_index() optionally skip
-   writing the in-core index when it is not modified.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.16
------------------
-
- * An old regression in "git describe --all $annotated_tag^0" has been
-   fixed.
-
- * "git status" after moving a path in the working tree (hence making
-   it appear "removed") and then adding with the -N option (hence
-   making that appear "added") detected it as a rename, but did not
-   report the  old and new pathnames correctly.
-
- * "git svn dcommit" did not take into account the fact that a
-   svn+ssh:// URL with a username@ (typically used for pushing) refers
-   to the same SVN repository without the username@ and failed when
-   svn.pushmergeinfo option is set.
-
- * API clean-up around revision traversal.
-
- * "git merge -Xours/-Xtheirs" learned to use our/their version when
-   resolving a conflicting updates to a symbolic link.
-
- * "git clone $there $here" is allowed even when here directory exists
-   as long as it is an empty directory, but the command incorrectly
-   removed it upon a failure of the operation.
-
- * "git commit --fixup" did not allow "-m<message>" option to be used
-   at the same time; allow it to annotate resulting commit with more
-   text.
-
- * When resetting the working tree files recursively, the working tree
-   of submodules are now also reset to match.
-
- * "git stash -- <pathspec>" incorrectly blew away untracked files in
-   the directory that matched the pathspec, which has been corrected.
-
- * Instead of maintaining home-grown email address parsing code, ship
-   a copy of reasonably recent Mail::Address to be used as a fallback
-   in 'git send-email' when the platform lacks it.
-   (merge d60be8acab mm/send-email-fallback-to-local-mail-address later to maint).
-
- * "git add -p" was taught to ignore local changes to submodules as
-   they do not interfere with the partial addition of regular changes
-   anyway.
-
- * Avoid showing a warning message in the middle of a line of "git
-   diff" output.
-   (merge 4e056c989f nd/diff-flush-before-warning later to maint).
-
- * The http tracing code, often used to debug connection issues,
-   learned to redact potentially sensitive information from its output
-   so that it can be more safely shareable.
-   (merge 8ba18e6fa4 jt/http-redact-cookies later to maint).
-
- * Crash fix for a corner case where an error codepath tried to unlock
-   what it did not acquire lock on.
-   (merge 81fcb698e0 mr/packed-ref-store-fix later to maint).
-
- * The split-index mode had a few corner case bugs fixed.
-   (merge ae59a4e44f tg/split-index-fixes later to maint).
-
- * Assorted fixes to "git daemon".
-   (merge ed15e58efe jk/daemon-fixes later to maint).
-
- * Completion of "git merge -s<strategy>" (in contrib/) did not work
-   well in non-C locale.
-   (merge 7cc763aaa3 nd/list-merge-strategy later to maint).
-
- * Workaround for segfault with more recent versions of SVN.
-   (merge 7f6f75e97a ew/svn-branch-segfault-fix later to maint).
-
- * Plug recently introduced leaks in fsck.
-   (merge ba3a08ca0e jt/fsck-code-cleanup later to maint).
-
- * "git pull --rebase" did not pass verbosity setting down when
-   recursing into a submodule.
-   (merge a56771a668 sb/pull-rebase-submodule later to maint).
-
- * The way "git reset --hard" reports the commit the updated HEAD
-   points at is made consistent with the way how the commit title is
-   generated by the other parts of the system.  This matters when the
-   title is spread across physically multiple lines.
-   (merge 1cf823fb68 tg/reset-hard-show-head-with-pretty later to maint).
-
- * Test fixes.
-   (merge 63b1a175ee sg/test-i18ngrep later to maint).
-
- * Some bugs around "untracked cache" feature have been fixed.  This
-   will notice corrupt data in the untracked cache left by old and
-   buggy code and issue a warning---the index can be fixed by clearing
-   the untracked cache from it.
-   (merge 0cacebf099 nd/fix-untracked-cache-invalidation later to maint).
-   (merge 7bf0be7501 ab/untracked-cache-invalidation-docs later to maint).
-
- * "git blame HEAD COPYING" in a bare repository failed to run, while
-   "git blame HEAD -- COPYING" run just fine.  This has been corrected.
-
- * "git add" files in the same directory, but spelling the directory
-   path in different cases on case insensitive filesystem, corrupted
-   the name hash data structure and led to unexpected results.  This
-   has been corrected.
-   (merge c95525e90d bp/name-hash-dirname-fix later to maint).
-
- * "git rebase -p" mangled log messages of a merge commit, which is
-   now fixed.
-   (merge ed5144d7eb js/fix-merge-arg-quoting-in-rebase-p later to maint).
-
- * Some low level protocol codepath could crash when they get an
-   unexpected flush packet, which is now fixed.
-   (merge bb1356dc64 js/packet-read-line-check-null later to maint).
-
- * "git check-ignore" with multiple paths got confused when one is a
-   file and the other is a directory, which has been fixed.
-   (merge d60771e930 rs/check-ignore-multi later to maint).
-
- * "git describe $garbage" stopped giving any errors when the garbage
-   happens to be a string with 40 hexadecimal letters.
-   (merge a8e7a2bf0f sb/describe-blob later to maint).
-
- * Code to unquote single-quoted string (used in the parser for
-   configuration files, etc.) did not diagnose bogus input correctly
-   and produced bogus results instead.
-   (merge ddbbf8eb25 jk/sq-dequote-on-bogus-input later to maint).
-
- * Many places in "git apply" knew that "/dev/null" that signals
-   "there is no such file on this side of the diff" can be followed by
-   whitespace and garbage when parsing a patch, except for one, which
-   made an otherwise valid patch (e.g. ones from subversion) rejected.
-   (merge e454ad4bec tk/apply-dev-null-verify-name-fix later to maint).
-
- * We no longer create any *.spec file, so "make clean" should not
-   remove it.
-   (merge 4321bdcabb tz/do-not-clean-spec-file later to maint).
-
- * "git push" over http transport did not unquote the push-options
-   correctly.
-   (merge 90dce21eb0 jk/push-options-via-transport-fix later to maint).
-
- * "git send-email" learned to complain when the batch-size option is
-   not defined when the relogin-delay option is, since these two are
-   mutually required.
-   (merge 9caa70697b xz/send-email-batch-size later to maint).
-
- * Y2k20 fix ;-) for our perl scripts.
-   (merge a40e06ee33 bw/perl-timegm-timelocal-fix later to maint).
-
- * Threaded "git grep" has been optimized to avoid allocation in code
-   section that is covered under a mutex.
-   (merge 38ef24dccf rv/grep-cleanup later to maint).
-
- * "git subtree" script (in contrib/) scripted around "git log", whose
-   output got affected by end-user configuration like log.showsignature
-   (merge 8841b5222c sg/subtree-signed-commits later to maint).
-
- * While finding unique object name abbreviation, the code may
-   accidentally have read beyond the end of the array of object names
-   in a pack.
-   (merge 21abed500c ds/find-unique-abbrev-optim later to maint).
-
- * Micro optimization in revision traversal code.
-   (merge ebbed3ba04 ds/mark-parents-uninteresting-optim later to maint).
-
- * "git commit" used to run "gc --auto" near the end, which was lost
-   when the command was reimplemented in C by mistake.
-   (merge 095c741edd ab/gc-auto-in-commit later to maint).
-
- * Allow running a couple of tests with "sh -x".
-   (merge c20bf94abc sg/cvs-tests-with-x later to maint).
-
- * The codepath to replace an existing entry in the index had a bug in
-   updating the name hash structure, which has been fixed.
-   (merge 0e267b7a24 bp/refresh-cache-ent-rehash-fix later to maint).
-
- * The transfer.fsckobjects configuration tells "git fetch" to
-   validate the data and connected-ness of objects in the received
-   pack; the code to perform this check has been taught about the
-   narrow clone's convention that missing objects that are reachable
-   from objects in a pack that came from a promisor remote is OK.
-
- * There was an unused file-scope static variable left in http.c when
-   building for versions of libCURL that is older than 7.19.4, which
-   has been fixed.
-   (merge b8fd6008ec rj/http-code-cleanup later to maint).
-
- * Shell script portability fix.
-   (merge 206a6ae013 ml/filter-branch-portability-fix later to maint).
-
- * Other minor doc, test and build updates and code cleanups.
-   (merge e2a5a028c7 bw/oidmap-autoinit later to maint).
-   (merge ec3b4b06f8 cl/t9001-cleanup later to maint).
-   (merge e1b3f3dd38 ks/submodule-doc-updates later to maint).
-   (merge fbac558a9b rs/describe-unique-abbrev later to maint).
-   (merge 8462ff43e4 tb/crlf-conv-flags later to maint).
-   (merge 7d68bb0766 rb/hashmap-h-compilation-fix later to maint).
-   (merge 3449847168 cc/sha1-file-name later to maint).
-   (merge ad622a256f ds/use-get-be64 later to maint).
-   (merge f919ffebed sg/cocci-move-array later to maint).
-   (merge 4e801463c7 jc/mailinfo-cleanup-fix later to maint).
-   (merge ef5b3a6c5e nd/shared-index-fix later to maint).
-   (merge 9f5258cbb8 tz/doc-show-defaults-to-head later to maint).
-   (merge b780e4407d jc/worktree-add-short-help later to maint).
-   (merge ae239fc8e5 rs/cocci-strbuf-addf-to-addstr later to maint).
-   (merge 2e22a85e5c nd/ignore-glob-doc-update later to maint).
-   (merge 3738031581 jk/gettext-poison later to maint).
-   (merge 54360a1956 rj/sparse-updates later to maint).
-   (merge 12e31a6b12 sg/doc-test-must-fail-args later to maint).
-   (merge 760f1ad101 bc/doc-interpret-trailers-grammofix later to maint).
-   (merge 4ccf461f56 bp/fsmonitor later to maint).
-   (merge a6119f82b1 jk/test-hashmap-updates later to maint).
-   (merge 5aea9fe6cc rd/typofix later to maint).
-   (merge e4e5da2796 sb/status-doc-fix later to maint).
-   (merge 7976e901c8 gs/test-unset-xdg-cache-home later to maint).
-   (merge d023df1ee6 tg/worktree-create-tracking later to maint).
-   (merge 4cbe92fd41 sm/mv-dry-run-update later to maint).
-   (merge 75e5e9c3f7 sb/color-h-cleanup later to maint).
-   (merge 2708ef4af6 sg/t6300-modernize later to maint).
-   (merge d88e92d4e0 bw/doc-submodule-recurse-config-with-clone later to maint).
-   (merge f74bbc8dd2 jk/cached-commit-buffer later to maint).
-   (merge 1316416903 ms/non-ascii-ticks later to maint).
-   (merge 878056005e rs/strbuf-read-file-or-whine later to maint).
-   (merge 79f0ba1547 jk/strbuf-read-file-close-error later to maint).
-   (merge edfb8ba068 ot/ref-filter-cleanup later to maint).
-   (merge 11395a3b4b jc/test-must-be-empty later to maint).
-   (merge 768b9d6db7 mk/doc-pretty-fill later to maint).
-   (merge 2caa7b8d27 ab/man-sec-list later to maint).
-   (merge 40c17eb184 ks/t3200-typofix later to maint).
-   (merge bd9958c358 dp/merge-strategy-doc-fix later to maint).
-   (merge 9ee0540a40 js/ming-strftime later to maint).
-   (merge 1775e990f7 tz/complete-tag-delete-tagname later to maint).
-   (merge 00a4b03501 rj/warning-uninitialized-fix later to maint).
-   (merge b635ed97a0 jk/attributes-path-doc later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.17.1.txt b/third_party/git/Documentation/RelNotes/2.17.1.txt
deleted file mode 100644
index e01384fe8e84..000000000000
--- a/third_party/git/Documentation/RelNotes/2.17.1.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Git v2.17.1 Release Notes
-=========================
-
-Fixes since v2.17
------------------
-
- * This release contains the same fixes made in the v2.13.7 version of
-   Git, covering CVE-2018-11233 and 11235, and forward-ported to
-   v2.14.4, v2.15.2 and v2.16.4 releases.  See release notes to
-   v2.13.7 for details.
-
- * In addition to the above fixes, this release has support on the
-   server side to reject pushes to repositories that attempt to create
-   such problematic .gitmodules file etc. as tracked contents, to help
-   hosting sites protect their customers by preventing malicious
-   contents from spreading.
diff --git a/third_party/git/Documentation/RelNotes/2.17.2.txt b/third_party/git/Documentation/RelNotes/2.17.2.txt
deleted file mode 100644
index ef021be8704f..000000000000
--- a/third_party/git/Documentation/RelNotes/2.17.2.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Git v2.17.2 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.5 to address
-the recently reported CVE-2018-17456; see the release notes for that
-version for details.
-
-In addition, this release also teaches "fsck" and the server side
-logic to reject pushes to repositories that attempt to create such a
-problematic ".gitmodules" file as tracked contents, to help hosting
-sites protect their customers by preventing malicious contents from
-spreading.
diff --git a/third_party/git/Documentation/RelNotes/2.17.3.txt b/third_party/git/Documentation/RelNotes/2.17.3.txt
deleted file mode 100644
index 5a46c94271c8..000000000000
--- a/third_party/git/Documentation/RelNotes/2.17.3.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Git v2.17.3 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.6 and in
-v2.15.4 addressing the security issues CVE-2019-1348, CVE-2019-1349,
-CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, CVE-2019-1353,
-CVE-2019-1354, and CVE-2019-1387; see the release notes for those
-versions for details.
-
-In addition, `git fsck` was taught to identify `.gitmodules` entries
-of the form `submodule.<name>.update=!command`, which have been
-disallowed in v2.15.4.
diff --git a/third_party/git/Documentation/RelNotes/2.17.4.txt b/third_party/git/Documentation/RelNotes/2.17.4.txt
deleted file mode 100644
index 7d794ca01af2..000000000000
--- a/third_party/git/Documentation/RelNotes/2.17.4.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Git v2.17.4 Release Notes
-=========================
-
-This release is to address the security issue: CVE-2020-5260
-
-Fixes since v2.17.3
--------------------
-
- * With a crafted URL that contains a newline in it, the credential
-   helper machinery can be fooled to give credential information for
-   a wrong host.  The attack has been made impossible by forbidding
-   a newline character in any value passed via the credential
-   protocol.
-
-Credit for finding the vulnerability goes to Felix Wilhelm of Google
-Project Zero.
diff --git a/third_party/git/Documentation/RelNotes/2.17.5.txt b/third_party/git/Documentation/RelNotes/2.17.5.txt
deleted file mode 100644
index 2abb821a7397..000000000000
--- a/third_party/git/Documentation/RelNotes/2.17.5.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Git v2.17.5 Release Notes
-=========================
-
-This release is to address a security issue: CVE-2020-11008
-
-Fixes since v2.17.4
--------------------
-
- * With a crafted URL that contains a newline or empty host, or lacks
-   a scheme, the credential helper machinery can be fooled into
-   providing credential information that is not appropriate for the
-   protocol in use and host being contacted.
-
-   Unlike the vulnerability CVE-2020-5260 fixed in v2.17.4, the
-   credentials are not for a host of the attacker's choosing; instead,
-   they are for some unspecified host (based on how the configured
-   credential helper handles an absent "host" parameter).
-
-   The attack has been made impossible by refusing to work with
-   under-specified credential patterns.
-
-Credit for finding the vulnerability goes to Carlo Arenas.
diff --git a/third_party/git/Documentation/RelNotes/2.18.0.txt b/third_party/git/Documentation/RelNotes/2.18.0.txt
deleted file mode 100644
index 6c8a0e97c1a7..000000000000
--- a/third_party/git/Documentation/RelNotes/2.18.0.txt
+++ /dev/null
@@ -1,583 +0,0 @@
-Git 2.18 Release Notes
-======================
-
-Updates since v2.17
--------------------
-
-UI, Workflows & Features
-
- * Rename detection logic that is used in "merge" and "cherry-pick" has
-   learned to guess when all of x/a, x/b and x/c have moved to z/a,
-   z/b and z/c, it is likely that x/d added in the meantime would also
-   want to move to z/d by taking the hint that the entire directory
-   'x' moved to 'z'.  A bug causing dirty files involved in a rename
-   to be overwritten during merge has also been fixed as part of this
-   work.  Incidentally, this also avoids updating a file in the
-   working tree after a (non-trivial) merge whose result matches what
-   our side originally had.
-
- * "git filter-branch" learned to use a different exit code to allow
-   the callers to tell the case where there was no new commits to
-   rewrite from other error cases.
-
- * When built with more recent cURL, GIT_SSL_VERSION can now specify
-   "tlsv1.3" as its value.
-
- * "git gui" learned that "~/.ssh/id_ecdsa.pub" and
-   "~/.ssh/id_ed25519.pub" are also possible SSH key files.
-   (merge 2e2f0288ef bb/git-gui-ssh-key-files later to maint).
-
- * "git gui" performs commit upon CTRL/CMD+ENTER but the
-   CTRL/CMD+KP_ENTER (i.e. enter key on the numpad) did not have the
-   same key binding.  It now does.
-   (merge 28a1d94a06 bp/git-gui-bind-kp-enter later to maint).
-
- * "git gui" has been taught to work with old versions of tk (like
-   8.5.7) that do not support "ttk::style theme use" as a way to query
-   the current theme.
-   (merge 4891961105 cb/git-gui-ttk-style later to maint).
-
- * "git rebase" has learned to honor "--signoff" option when using
-   backends other than "am" (but not "--preserve-merges").
-
- * "git branch --list" during an interrupted "rebase -i" now lets
-   users distinguish the case where a detached HEAD is being rebased
-   and a normal branch is being rebased.
-
- * "git mergetools" learned talking to guiffy.
-
- * The scripts in contrib/emacs/ have outlived their usefulness and
-   have been replaced with a stub that errors out and tells the user
-   there are replacements.
-
- * The new "working-tree-encoding" attribute can ask Git to convert the
-   contents to the specified encoding when checking out to the working
-   tree (and the other way around when checking in).
-
- * The "git config" command uses separate options e.g. "--int",
-   "--bool", etc. to specify what type the caller wants the value to
-   be interpreted as.  A new "--type=<typename>" option has been
-   introduced, which would make it cleaner to define new types.
-
- * "git config --get" learned the "--default" option, to help the
-   calling script.  Building on top of the above changes, the
-   "git config" learns "--type=color" type.  Taken together, you can
-   do things like "git config --get foo.color --default blue" and get
-   the ANSI color sequence for the color given to foo.color variable,
-   or "blue" if the variable does not exist.
-
- * "git ls-remote" learned an option to allow sorting its output based
-   on the refnames being shown.
-
- * The command line completion (in contrib/) has been taught that "git
-   stash save" has been deprecated ("git stash push" is the preferred
-   spelling in the new world) and does not offer it as a possible
-   completion candidate when "git stash push" can be.
-
- * "git gc --prune=nonsense" spent long time repacking and then
-   silently failed when underlying "git prune --expire=nonsense"
-   failed to parse its command line.  This has been corrected.
-
- * Error messages from "git push" can be painted for more visibility.
-
- * "git http-fetch" (deprecated) had an optional and experimental
-   "feature" to fetch only commits and/or trees, which nobody used.
-   This has been removed.
-
- * The functionality of "$GIT_DIR/info/grafts" has been superseded by
-   the "refs/replace/" mechanism for some time now, but the internal
-   code had support for it in many places, which has been cleaned up
-   in order to drop support of the "grafts" mechanism.
-
- * "git worktree add" learned to check out an existing branch.
-
- * "git --no-pager cmd" did not have short-and-sweet single letter
-   option. Now it does as "-P".
-   (merge 7213c28818 js/no-pager-shorthand later to maint).
-
- * "git rebase" learned "--rebase-merges" to transplant the whole
-   topology of commit graph elsewhere.
-
- * "git status" learned to pay attention to UI related diff
-   configuration variables such as diff.renames.
-
- * The command line completion mechanism (in contrib/) learned to load
-   custom completion file for "git $command" where $command is a
-   custom "git-$command" that the end user has on the $PATH when using
-   newer version of bash-completion.
-
- * "git send-email" can sometimes offer confirmation dialog "Send this
-   email?" with choices 'Yes', 'No', 'Quit', and 'All'.  A new action
-   'Edit' has been added to this dialog's choice.
-
- * With merge.renames configuration set to false, the recursive merge
-   strategy can be told not to spend cycles trying to find renamed
-   paths and merge them accordingly.
-
- * "git status" learned to honor a new status.renames configuration to
-   skip rename detection, which could be useful for those who want to
-   do so without disabling the default rename detection done by the
-   "git diff" command.
-
- * Command line completion (in contrib/) learned to complete pathnames
-   for various commands better.
-
- * "git blame" learns to unhighlight uninteresting metadata from the
-   originating commit on lines that are the same as the previous one,
-   and also paint lines in different colors depending on the age of
-   the commit.
-
- * Transfer protocol v2 learned to support the partial clone.
-
- * When a short hexadecimal string is used to name an object but there
-   are multiple objects that share the string as the prefix of their
-   names, the code lists these ambiguous candidates in a help message.
-   These object names are now sorted according to their types for
-   easier eyeballing.
-
- * "git fetch $there $refspec" that talks over protocol v2 can take
-   advantage of server-side ref filtering; the code has been extended
-   so that this mechanism triggers also when fetching with configured
-   refspec.
-
- * Our HTTP client code used to advertise that we accept gzip encoding
-   from the other side; instead, just let cURL library to advertise
-   and negotiate the best one.
-
- * "git p4" learned to "unshelve" shelved commit from P4.
-   (merge 123f631761 ld/p4-unshelve later to maint).
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * A "git fetch" from a repository with insane number of refs into a
-   repository that is already up-to-date still wasted too many cycles
-   making many lstat(2) calls to see if these objects at the tips
-   exist as loose objects locally.  These lstat(2) calls are optimized
-   away by enumerating all loose objects beforehand.
-   It is unknown if the new strategy negatively affects existing use
-   cases, fetching into a repository with many loose objects from a
-   repository with small number of refs.
-
- * Git can be built to use either v1 or v2 of the PCRE library, and so
-   far, the build-time configuration USE_LIBPCRE=YesPlease instructed
-   the build procedure to use v1, but now it means v2.  USE_LIBPCRE1
-   and USE_LIBPCRE2 can be used to explicitly choose which version to
-   use, as before.
-
- * The build procedure learned to optionally use symbolic links
-   (instead of hardlinks and copies) to install "git-foo" for built-in
-   commands, whose binaries are all identical.
-
- * Conversion from uchar[20] to struct object_id continues.
-
- * The way "git worktree prune" worked internally has been simplified,
-   by assuming how "git worktree move" moves an existing worktree to a
-   different place.
-
- * Code clean-up for the "repository" abstraction.
-   (merge 00a3da2a13 nd/remove-ignore-env-field later to maint).
-
- * Code to find the length to uniquely abbreviate object names based
-   on packfile content, which is a relatively recent addition, has been
-   optimized to use the same fan-out table.
-
- * The mechanism to use parse-options API to automate the command line
-   completion continues to get extended and polished.
-
- * Copies of old scripted Porcelain commands in contrib/examples/ have
-   been removed.
-
- * Some tests that rely on the exact hardcoded values of object names
-   have been updated in preparation for hash function migration.
-
- * Perf-test update.
-
- * Test helper update.
-
- * The effort continues to refactor the internal global data structure
-   to make it possible to open multiple repositories, work with and
-   then close them,
-
- * Small test-helper programs have been consolidated into a single
-   binary.
-
- * API clean-up around ref-filter code.
-
- * Shell completion (in contrib) that gives list of paths have been
-   optimized somewhat.
-
- * The index file is updated to record the fsmonitor section after a
-   full scan was made, to avoid wasting the effort that has already
-   spent.
-
- * Performance measuring framework in t/perf learned to help bisecting
-   performance regressions.
-
- * Some multi-word source filenames are being renamed to separate
-   words with dashes instead of underscores.
-
- * An reusable "memory pool" implementation has been extracted from
-   fast-import.c, which in turn has become the first user of the
-   mem-pool API.
-
- * A build-time option has been added to allow Git to be told to refer
-   to its associated files relative to the main binary, in the same
-   way that has been possible on Windows for quite some time, for
-   Linux, BSDs and Darwin.
-
- * Precompute and store information necessary for ancestry traversal
-   in a separate file to optimize graph walking.
-
- * The effort to pass the repository in-core structure throughout the
-   API continues.  This round deals with the code that implements the
-   refs/replace/ mechanism.
-
- * The build procedure "make DEVELOPER=YesPlease" learned to enable a
-   bit more warning options depending on the compiler used to help
-   developers more.  There also is "make DEVOPTS=tokens" knob
-   available now, for those who want to help fixing warnings we
-   usually ignore, for example.
-
- * A new version of the transport protocol is being worked on.
-
- * The code to interface to GPG has been restructured somewhat to make
-   it cleaner to integrate with other types of signature systems later.
-
- * The code has been taught to use the duplicated information stored
-   in the commit-graph file to learn the tree object name for a commit
-   to avoid opening and parsing the commit object when it makes sense
-   to do so.
-
- * "git gc" in a large repository takes a lot of time as it considers
-   to repack all objects into one pack by default.  The command has
-   been taught to pretend as if the largest existing packfile is
-   marked with ".keep" so that it is left untouched while objects in
-   other packs and loose ones are repacked.
-
- * The transport protocol v2 is getting updated further.
-
- * The codepath around object-info API has been taught to take the
-   repository object (which in turn tells the API which object store
-   the objects are to be located).
-
- * "git pack-objects" needs to allocate tons of "struct object_entry"
-   while doing its work, and shrinking its size helps the performance
-   quite a bit.
-
- * The implementation of "git rebase -i --root" has been updated to use
-   the sequencer machinery more.
-
- * Developer support update, by using BUG() macro instead of die() to
-   mark codepaths that should not happen more clearly.
-
- * Developer support.  Use newer GCC on one of the builds done at
-   TravisCI.org to get more warnings and errors diagnosed.
-
- * Conversion from uchar[20] to struct object_id continues.
-
- * By code restructuring of submodule merge in merge-recursive,
-   informational messages from the codepath are now given using the
-   same mechanism as other output, and honor the merge.verbosity
-   configuration.  The code also learned to give a few new messages
-   when a submodule three-way merge resolves cleanly when one side
-   records a descendant of the commit chosen by the other side.
-
- * Avoid unchecked snprintf() to make future code auditing easier.
-   (merge ac4896f007 jk/snprintf-truncation later to maint).
-
- * Many tests hardcode the raw object names, which would change once
-   we migrate away from SHA-1.  While some of them must test against
-   exact object names, most of them do not have to use hardcoded
-   constants in the test.  The latter kind of tests have been updated
-   to test the moral equivalent of the original without hardcoding the
-   actual object names.
-
- * The list of commands with their various attributes were spread
-   across a few places in the build procedure, but it now is getting a
-   bit more consolidated to allow more automation.
-
- * Quite a many tests assumed that newly created refs are made as
-   loose refs using the files backend, which have been updated to use
-   proper plumbing like rev-parse and update-ref, to avoid breakage
-   once we start using different ref backends.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.17
------------------
-
- * "git shortlog cruft" aborted with a BUG message when run outside a
-   Git repository.  The command has been taught to complain about
-   extra and unwanted arguments on its command line instead in such a
-   case.
-   (merge 4aa0161e83 ma/shortlog-revparse later to maint).
-
- * "git stash push -u -- <pathspec>" gave an unnecessary and confusing
-   error message when there was no tracked files that match the
-   <pathspec>, which has been fixed.
-   (merge 353278687e tg/stash-untracked-with-pathspec-fix later to maint).
-
- * "git tag --contains no-such-commit" gave a full list of options
-   after giving an error message.
-   (merge 3bb0923f06 ps/contains-id-error-message later to maint).
-
- * "diff-highlight" filter (in contrib/) learned to understand "git log
-   --graph" output better.
-   (merge 4551fbba14 jk/diff-highlight-graph-fix later to maint).
-
- * when refs that do not point at committish are given, "git
-   filter-branch" gave a misleading error messages.  This has been
-   corrected.
-   (merge f78ab355e7 yk/filter-branch-non-committish-refs later to maint).
-
- * "git submodule status" misbehaved on a submodule that has been
-   removed from the working tree.
-   (merge 74b6bda32f rs/status-with-removed-submodule later to maint).
-
- * When credential helper exits very quickly without reading its
-   input, it used to cause Git to die with SIGPIPE, which has been
-   fixed.
-   (merge a0d51e8d0e eb/cred-helper-ignore-sigpipe later to maint).
-
- * "git rebase --keep-empty" still removed an empty commit if the
-   other side contained an empty commit (due to the "does an
-   equivalent patch exist already?" check), which has been corrected.
-   (merge 3d946165e1 pw/rebase-keep-empty-fixes later to maint).
-
- * Some codepaths, including the refs API, get and keep relative
-   paths, that go out of sync when the process does chdir(2).  The
-   chdir-notify API is introduced to let these codepaths adjust these
-   cached paths to the new current directory.
-   (merge fb9c2d2703 jk/relative-directory-fix later to maint).
-
- * "cd sub/dir && git commit ../path" ought to record the changes to
-   the file "sub/path", but this regressed long time ago.
-   (merge 86238e07ef bw/commit-partial-from-subdirectory-fix later to maint).
-
- * Recent introduction of "--log-destination" option to "git daemon"
-   did not work well when the daemon was run under "--inetd" mode.
-   (merge e67d906d73 lw/daemon-log-destination later to maint).
-
- * Small fix to the autoconf build procedure.
-   (merge 249482daf0 es/fread-reads-dir-autoconf-fix later to maint).
-
- * Fix an unexploitable (because the oversized contents are not under
-   attacker's control) buffer overflow.
-   (merge d8579accfa bp/fsmonitor-bufsize-fix later to maint).
-
- * Recent simplification of build procedure forgot a bit of tweak to
-   the build procedure of contrib/mw-to-git/
-   (merge d8698987f3 ab/simplify-perl-makefile later to maint).
-
- * Moving a submodule that itself has submodule in it with "git mv"
-   forgot to make necessary adjustment to the nested sub-submodules;
-   now the codepath learned to recurse into the submodules.
-
- * "git config --unset a.b", when "a.b" is the last variable in an
-   otherwise empty section "a", left an empty section "a" behind, and
-   worse yet, a subsequent "git config a.c value" did not reuse that
-   empty shell and instead created a new one.  These have been
-   (partially) corrected.
-   (merge c71d8bb38a js/empty-config-section-fix later to maint).
-
- * "git worktree remove" learned that "-f" is a shorthand for
-   "--force" option, just like for "git worktree add".
-   (merge d228eea514 sb/worktree-remove-opt-force later to maint).
-
- * The completion script (in contrib/) learned to clear cached list of
-   command line options upon dot-sourcing it again in a more efficient
-   way.
-   (merge 94408dc71c sg/completion-clear-cached later to maint).
-
- * "git svn" had a minor thinko/typo which has been fixed.
-   (merge 51db271587 ab/git-svn-get-record-typofix later to maint).
-
- * During a "rebase -i" session, the code could give older timestamp
-   to commits created by later "pick" than an earlier "reword", which
-   has been corrected.
-   (merge 12f7babd6b js/ident-date-fix later to maint).
-
- * "git submodule status" did not check the symbolic revision name it
-   computed for the submodule HEAD is not the NULL, and threw it at
-   printf routines, which has been corrected.
-   (merge 0b5e2ea7cf nd/submodule-status-fix later to maint).
-
- * When fed input that already has In-Reply-To: and/or References:
-   headers and told to add the same information, "git send-email"
-   added these headers separately, instead of appending to an existing
-   one, which is a violation of the RFC.  This has been corrected.
-   (merge 256be1d3f0 sa/send-email-dedup-some-headers later to maint).
-
- * "git fast-export" had a regression in v2.15.0 era where it skipped
-   some merge commits in certain cases, which has been corrected.
-   (merge be011bbe00 ma/fast-export-skip-merge-fix later to maint).
-
- * The code did not propagate the terminal width to subprocesses via
-   COLUMNS environment variable, which it now does.  This caused
-   trouble to "git column" helper subprocess when "git tag --column=row"
-   tried to list the existing tags on a display with non-default width.
-   (merge b5d5a567fb nd/term-columns later to maint).
-
- * We learned that our source files with ".pl" and ".py" extensions
-   are Perl and Python files respectively and changes to them are
-   better viewed as such with appropriate diff drivers.
-   (merge 7818b619e2 ab/perl-python-attrs later to maint).
-
- * "git rebase -i" sometimes left intermediate "# This is a
-   combination of N commits" message meant for the human consumption
-   inside an editor in the final result in certain corner cases, which
-   has been fixed.
-   (merge 15ef69314d js/rebase-i-clean-msg-after-fixup-continue later to maint).
-
- * A test to see if the filesystem normalizes UTF-8 filename has been
-   updated to check what we need to know in a more direct way, i.e. a
-   path created in NFC form can be accessed with NFD form (or vice
-   versa) to cope with APFS as well as HFS.
-   (merge 742ae10e35 tb/test-apfs-utf8-normalization later to maint).
-
- * "git format-patch --cover --attach" created a broken MIME multipart
-   message for the cover letter, which has been fixed by keeping the
-   cover letter as plain text file.
-   (merge 50cd54ef4e bc/format-patch-cover-no-attach later to maint).
-
- * The split-index feature had a long-standing and dormant bug in
-   certain use of the in-core merge machinery, which has been fixed.
-   (merge 7db118303a en/unpack-trees-split-index-fix later to maint).
-
- * Asciidoctor gives a reasonable imitation for AsciiDoc, but does not
-   render illustration in a literal block correctly when indented with
-   HT by default. The problem is fixed by forcing 8-space tabs.
-   (merge 379805051d bc/asciidoctor-tab-width later to maint).
-
- * Code clean-up to adjust to a more recent lockfile API convention that
-   allows lockfile instances kept on the stack.
-   (merge 0fa5a2ed8d ma/lockfile-cleanup later to maint).
-
- * the_repository->index is not a allocated piece of memory but
-   repo_clear() indiscriminately attempted to free(3) it, which has
-   been corrected.
-   (merge 74373b5f10 nd/repo-clear-keep-the-index later to maint).
-
- * Code clean-up to avoid non-standard-conformant pointer arithmetic.
-   (merge c112084af9 rs/no-null-ptr-arith-in-fast-export later to maint).
-
- * Code clean-up to turn history traversal more robust in a
-   semi-corrupt repository.
-   (merge 8702b30fd7 jk/unavailable-can-be-missing later to maint).
-
- * "git update-ref A B" is supposed to ensure that ref A does not yet
-   exist when B is a NULL OID, but this check was not done correctly
-   for pseudo-refs outside refs/ hierarchy, e.g. MERGE_HEAD.
-
- * "git submodule update" and "git submodule add" supported the
-   "--reference" option to borrow objects from a neighbouring local
-   repository like "git clone" does, but lacked the more recent
-   invention "--dissociate".  Also "git submodule add" has been taught
-   to take the "--progress" option.
-   (merge a0ef29341a cf/submodule-progress-dissociate later to maint).
-
- * Update credential-netrc helper (in contrib/) to allow customizing
-   the GPG used to decrypt the encrypted .netrc file.
-   (merge 786ef50a23 lm/credential-netrc later to maint).
-
- * "git submodule update" attempts two different kinds of "git fetch"
-   against the upstream repository to grab a commit bound at the
-   submodule's path, but it incorrectly gave up if the first kind
-   (i.e. a normal fetch) failed, making the second "last resort" one
-   (i.e. fetching an exact commit object by object name) ineffective.
-   This has been corrected.
-   (merge e30d833671 sb/submodule-update-try-harder later to maint).
-
- * Error behaviour of "git grep" when it cannot read the index was
-   inconsistent with other commands that uses the index, which has
-   been corrected to error out early.
-   (merge b2aa84c789 sb/grep-die-on-unreadable-index later to maint).
-
- * We used to call regfree() after regcomp() failed in some codepaths,
-   which have been corrected.
-   (merge 17154b1576 ma/regex-no-regfree-after-comp-fail later to maint).
-
- * The import-tars script (in contrib/) has been taught to handle
-   tarballs with overly long paths that use PAX extended headers.
-   (merge 12ecea46e3 pa/import-tars-long-names later to maint).
-
- * "git rev-parse Y..." etc. misbehaved when given endpoints were
-   not committishes.
-   (merge 0ed556d38f en/rev-parse-invalid-range later to maint).
-
- * "git pull --recurse-submodules --rebase", when the submodule
-   repository's history did not have anything common between ours and
-   the upstream's, failed to execute.  We need to fetch from them to
-   continue even in such a case.
-   (merge 4d36f88be7 jt/submodule-pull-recurse-rebase later to maint).
-
- * "git remote update" can take both a single remote nickname and a
-   nickname for remote groups, but only one of them was documented.
-   (merge a97447a42a nd/remote-update-doc later to maint).
-
- * "index-pack --strict" has been taught to make sure that it runs the
-   final object integrity checks after making the freshly indexed
-   packfile available to itself.
-   (merge 3737746120 jk/index-pack-maint later to maint).
-
- * Make zlib inflate codepath more robust against versions of zlib
-   that clobber unused portion of outbuf.
-   (merge b611396e97 jl/zlib-restore-nul-termination later to maint).
-
- * Fix old merge glitch in Documentation during v2.13-rc0 era.
-   (merge 28cb06020b mw/doc-merge-enumfix later to maint).
-
- * The code to read compressed bitmap was not careful to avoid reading
-   past the end of the file, which has been corrected.
-   (merge 1140bf01ec jk/ewah-bounds-check later to maint).
-
- * "make NO_ICONV=NoThanks" did not override NEEDS_LIBICONV
-   (i.e. linkage of -lintl, -liconv, etc. that are platform-specific
-   tweaks), which has been corrected.
-   (merge fdb1fbbc7d es/make-no-iconv later to maint).
-
- * Other minor doc, test and build updates and code cleanups.
-   (merge 248f66ed8e nd/trace-with-env later to maint).
-   (merge 14ced5562c ys/bisect-object-id-missing-conversion-fix later to maint).
-   (merge 5988eb631a ab/doc-hash-brokenness later to maint).
-   (merge a4d4e32a70 pk/test-avoid-pipe-hiding-exit-status later to maint).
-   (merge 05e293c1ac jk/flockfile-stdio later to maint).
-   (merge e9184b0789 jk/t5561-missing-curl later to maint).
-   (merge b1801b85a3 nd/worktree-move later to maint).
-   (merge bbd374dd20 ak/bisect-doc-typofix later to maint).
-   (merge 4855f06fb3 mn/send-email-credential-doc later to maint).
-   (merge 8523b1e355 en/doc-typoes later to maint).
-   (merge 43b44ccfe7 js/t5404-path-fix later to maint).
-   (merge decf711fc1 ps/test-chmtime-get later to maint).
-   (merge 22d11a6e8e es/worktree-docs later to maint).
-   (merge 92a5dbbc22 tg/use-git-contacts later to maint).
-   (merge adc887221f tq/t1510 later to maint).
-   (merge bed21a8ad6 sg/doc-gc-quote-mismatch-fix later to maint).
-   (merge 73364e4f10 tz/doc-git-urls-reference later to maint).
-   (merge cd1e606bad bc/mailmap-self later to maint).
-   (merge f7997e3682 ao/config-api-doc later to maint).
-   (merge ee930754d8 jk/apply-p-doc later to maint).
-   (merge 011b648646 nd/pack-format-doc later to maint).
-   (merge 87a6bb701a sg/t5310-jgit-bitmap-test later to maint).
-   (merge f6b82970aa sg/t5516-fixes later to maint).
-   (merge 4362da078e sg/t7005-spaces-in-filenames-cleanup later to maint).
-   (merge 7d0ee47c11 js/test-unset-prereq later to maint).
-   (merge 5356a3c354 ah/misc-doc-updates later to maint).
-   (merge 92c4a7a129 nd/completion-aliasfiletype-typofix later to maint).
-   (merge 58bd77b66a nd/pack-unreachable-objects-doc later to maint).
-   (merge 4ed79d5203 sg/t6500-no-redirect-of-stdin later to maint).
-   (merge 17b8a2d6cd jk/config-blob-sans-repo later to maint).
-   (merge 590551ca2c rd/tag-doc-lightweight later to maint).
-   (merge 44f560fc16 rd/init-typo later to maint).
-   (merge f156a0934a rd/p4-doc-markup-env later to maint).
-   (merge 2a00502b14 tg/doc-sec-list later to maint).
-   (merge 47cc91310a jk/submodule-fsck-loose-fixup later to maint).
-   (merge efde7b725c rd/comment-typofix-in-sha1-file later to maint).
-   (merge 7eedad15df rd/diff-options-typofix later to maint).
-   (merge 58ebd936cc km/doc-workflows-typofix later to maint).
-   (merge 30aa96cdf8 rd/doc-remote-tracking-with-hyphen later to maint).
-   (merge cf317877e3 ks/branch-set-upstream later to maint).
-   (merge 8de19d6be8 sg/t7406-chain-fix later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.18.1.txt b/third_party/git/Documentation/RelNotes/2.18.1.txt
deleted file mode 100644
index 2098cdd776f5..000000000000
--- a/third_party/git/Documentation/RelNotes/2.18.1.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Git v2.18.1 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.5 and in
-v2.17.2 to address the recently reported CVE-2018-17456; see the
-release notes for those versions for details.
diff --git a/third_party/git/Documentation/RelNotes/2.18.2.txt b/third_party/git/Documentation/RelNotes/2.18.2.txt
deleted file mode 100644
index 98b168aade52..000000000000
--- a/third_party/git/Documentation/RelNotes/2.18.2.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Git v2.18.2 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.6, v2.15.4
-and in v2.17.3, addressing the security issues CVE-2019-1348,
-CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352,
-CVE-2019-1353, CVE-2019-1354, and CVE-2019-1387; see the release notes
-for those versions for details.
diff --git a/third_party/git/Documentation/RelNotes/2.18.3.txt b/third_party/git/Documentation/RelNotes/2.18.3.txt
deleted file mode 100644
index 25143f0cec58..000000000000
--- a/third_party/git/Documentation/RelNotes/2.18.3.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.18.3 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.4; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.18.4.txt b/third_party/git/Documentation/RelNotes/2.18.4.txt
deleted file mode 100644
index e8ef858a00a7..000000000000
--- a/third_party/git/Documentation/RelNotes/2.18.4.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.18.4 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.5; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.19.0.txt b/third_party/git/Documentation/RelNotes/2.19.0.txt
deleted file mode 100644
index 891c79b9cb2b..000000000000
--- a/third_party/git/Documentation/RelNotes/2.19.0.txt
+++ /dev/null
@@ -1,615 +0,0 @@
-Git 2.19 Release Notes
-======================
-
-Updates since v2.18
--------------------
-
-UI, Workflows & Features
-
- * "git diff" compares the index and the working tree.  For paths
-   added with intent-to-add bit, the command shows the full contents
-   of them as added, but the paths themselves were not marked as new
-   files.  They are now shown as new by default.
-
-   "git apply" learned the "--intent-to-add" option so that an
-   otherwise working-tree-only application of a patch will add new
-   paths to the index marked with the "intent-to-add" bit.
-
- * "git grep" learned the "--column" option that gives not just the
-   line number but the column number of the hit.
-
- * The "-l" option in "git branch -l" is an unfortunate short-hand for
-   "--create-reflog", but many users, both old and new, somehow expect
-   it to be something else, perhaps "--list".  This step warns when "-l"
-   is used as a short-hand for "--create-reflog" and warns about the
-   future repurposing of the it when it is used.
-
- * The userdiff pattern for .php has been updated.
-
- * The content-transfer-encoding of the message "git send-email" sends
-   out by default was 8bit, which can cause trouble when there is an
-   overlong line to bust RFC 5322/2822 limit.  A new option 'auto' to
-   automatically switch to quoted-printable when there is such a line
-   in the payload has been introduced and is made the default.
-
- * "git checkout" and "git worktree add" learned to honor
-   checkout.defaultRemote when auto-vivifying a local branch out of a
-   remote tracking branch in a repository with multiple remotes that
-   have tracking branches that share the same names.
-   (merge 8d7b558bae ab/checkout-default-remote later to maint).
-
- * "git grep" learned the "--only-matching" option.
-
- * "git rebase --rebase-merges" mode now handles octopus merges as
-   well.
-
- * Add a server-side knob to skip commits in exponential/fibbonacci
-   stride in an attempt to cover wider swath of history with a smaller
-   number of iterations, potentially accepting a larger packfile
-   transfer, instead of going back one commit a time during common
-   ancestor discovery during the "git fetch" transaction.
-   (merge 42cc7485a2 jt/fetch-negotiator-skipping later to maint).
-
- * A new configuration variable core.usereplacerefs has been added,
-   primarily to help server installations that want to ignore the
-   replace mechanism altogether.
-
- * Teach "git tag -s" etc. a few configuration variables (gpg.format
-   that can be set to "openpgp" or "x509", and gpg.<format>.program
-   that is used to specify what program to use to deal with the format)
-   to allow x.509 certs with CMS via "gpgsm" to be used instead of
-   openpgp via "gnupg".
-
- * Many more strings are prepared for l10n.
-
- * "git p4 submit" learns to ask its own pre-submit hook if it should
-   continue with submitting.
-
- * The test performed at the receiving end of "git push" to prevent
-   bad objects from entering repository can be customized via
-   receive.fsck.* configuration variables; we now have gained a
-   counterpart to do the same on the "git fetch" side, with
-   fetch.fsck.* configuration variables.
-
- * "git pull --rebase=interactive" learned "i" as a short-hand for
-   "interactive".
-
- * "git instaweb" has been adjusted to run better with newer Apache on
-   RedHat based distros.
-
- * "git range-diff" is a reimplementation of "git tbdiff" that lets us
-   compare individual patches in two iterations of a topic.
-
- * The sideband code learned to optionally paint selected keywords at
-   the beginning of incoming lines on the receiving end.
-
- * "git branch --list" learned to take the default sort order from the
-   'branch.sort' configuration variable, just like "git tag --list"
-   pays attention to 'tag.sort'.
-
- * "git worktree" command learned "--quiet" option to make it less
-   verbose.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * The bulk of "git submodule foreach" has been rewritten in C.
-
- * The in-core "commit" object had an all-purpose "void *util" field,
-   which was tricky to use especially in library-ish part of the
-   code.  All of the existing uses of the field has been migrated to a
-   more dedicated "commit-slab" mechanism and the field is eliminated.
-
- * A less often used command "git show-index" has been modernized.
-   (merge fb3010c31f jk/show-index later to maint).
-
- * The conversion to pass "the_repository" and then "a_repository"
-   throughout the object access API continues.
-
- * Continuing with the idea to programmatically enumerate various
-   pieces of data required for command line completion, teach the
-   codebase to report the list of configuration variables
-   subcommands care about to help complete them.
-
- * Separate "rebase -p" codepath out of "rebase -i" implementation to
-   slim down the latter and make it easier to manage.
-
- * Make refspec parsing codepath more robust.
-
- * Some flaky tests have been fixed.
-
- * Continuing with the idea to programmatically enumerate various
-   pieces of data required for command line completion, the codebase
-   has been taught to enumerate options prefixed with "--no-" to
-   negate them.
-
- * Build and test procedure for netrc credential helper (in contrib/)
-   has been updated.
-
- * Remove unused function definitions and declarations from ewah
-   bitmap subsystem.
-
- * Code preparation to make "git p4" closer to be usable with Python 3.
-
- * Tighten the API to make it harder to misuse in-tree .gitmodules
-   file, even though it shares the same syntax with configuration
-   files, to read random configuration items from it.
-
- * "git fast-import" has been updated to avoid attempting to create
-   delta against a zero-byte-long string, which is pointless.
-
- * The codebase has been updated to compile cleanly with -pedantic
-   option.
-   (merge 2b647a05d7 bb/pedantic later to maint).
-
- * The character display width table has been updated to match the
-   latest Unicode standard.
-   (merge 570951eea2 bb/unicode-11-width later to maint).
-
- * test-lint now looks for broken use of "VAR=VAL shell_func" in test
-   scripts.
-
- * Conversion from uchar[40] to struct object_id continues.
-
- * Recent "security fix" to pay attention to contents of ".gitmodules"
-   while accepting "git push" was a bit overly strict than necessary,
-   which has been adjusted.
-
- * "git fsck" learns to make sure the optional commit-graph file is in
-   a sane state.
-
- * "git diff --color-moved" feature has further been tweaked.
-
- * Code restructuring and a small fix to transport protocol v2 during
-   fetching.
-
- * Parsing of -L[<N>][,[<M>]] parameters "git blame" and "git log"
-   take has been tweaked.
-
- * lookup_commit_reference() and friends have been updated to find
-   in-core object for a specific in-core repository instance.
-
- * Various glitches in the heuristics of merge-recursive strategy have
-   been documented in new tests.
-
- * "git fetch" learned a new option "--negotiation-tip" to limit the
-   set of commits it tells the other end as "have", to reduce wasted
-   bandwidth and cycles, which would be helpful when the receiving
-   repository has a lot of refs that have little to do with the
-   history at the remote it is fetching from.
-
- * For a large tree, the index needs to hold many cache entries
-   allocated on heap.  These cache entries are now allocated out of a
-   dedicated memory pool to amortize malloc(3) overhead.
-
- * Tests to cover various conflicting cases have been added for
-   merge-recursive.
-
- * Tests to cover conflict cases that involve submodules have been
-   added for merge-recursive.
-
- * Look for broken "&&" chains that are hidden in subshell, many of
-   which have been found and corrected.
-
- * The singleton commit-graph in-core instance is made per in-core
-   repository instance.
-
- * "make DEVELOPER=1 DEVOPTS=pedantic" allows developers to compile
-   with -pedantic option, which may catch more problematic program
-   constructs and potential bugs.
-
- * Preparatory code to later add json output for telemetry data has
-   been added.
-
- * Update the way we use Coccinelle to find out-of-style code that
-   need to be modernised.
-
- * It is too easy to misuse system API functions such as strcat();
-   these selected functions are now forbidden in this codebase and
-   will cause a compilation failure.
-
- * Add a script (in contrib/) to help users of VSCode work better with
-   our codebase.
-
- * The Travis CI scripts were taught to ship back the test data from
-   failed tests.
-   (merge aea8879a6a sg/travis-retrieve-trash-upon-failure later to maint).
-
- * The parse-options machinery learned to refrain from enclosing
-   placeholder string inside a "<bra" and "ket>" pair automatically
-   without PARSE_OPT_LITERAL_ARGHELP.  Existing help text for option
-   arguments that are not formatted correctly have been identified and
-   fixed.
-   (merge 5f0df44cd7 rs/parse-opt-lithelp later to maint).
-
- * Noiseword "extern" has been removed from function decls in the
-   header files.
-
- * A few atoms like %(objecttype) and %(objectsize) in the format
-   specifier of "for-each-ref --format=<format>" can be filled without
-   getting the full contents of the object, but just with the object
-   header.  These cases have been optimized by calling
-   oid_object_info() API (instead of reading and inspecting the data).
-
- * The end result of documentation update has been made to be
-   inspected more easily to help developers.
-
- * The API to iterate over all objects learned to optionally list
-   objects in the order they appear in packfiles, which helps locality
-   of access if the caller accesses these objects while as objects are
-   enumerated.
-
- * Improve built-in facility to catch broken &&-chain in the tests.
-
- * The more library-ish parts of the codebase learned to work on the
-   in-core index-state instance that is passed in by their callers,
-   instead of always working on the singleton "the_index" instance.
-
- * A test prerequisite defined by various test scripts with slightly
-   different semantics has been consolidated into a single copy and
-   made into a lazily defined one.
-   (merge 6ec633059a wc/make-funnynames-shared-lazy-prereq later to maint).
-
- * After a partial clone, repeated fetches from promisor remote would
-   have accumulated many packfiles marked with .promisor bit without
-   getting them coalesced into fewer packfiles, hurting performance.
-   "git repack" now learned to repack them.
-
- * Partially revert the support for multiple hash functions to regain
-   hash comparison performance; we'd think of a way to do this better
-   in the next cycle.
-
- * "git help --config" (which is used in command line completion)
-   missed the configuration variables not described in the main
-   config.txt file but are described in another file that is included
-   by it, which has been corrected.
-
- * The test linter code has learned that the end of here-doc mark
-   "EOF" can be quoted in a double-quote pair, not just in a
-   single-quote pair.
-
-
-Fixes since v2.18
------------------
-
- * "git remote update" can take both a single remote nickname and a
-   nickname for remote groups, and the completion script (in contrib/)
-   has been taught about it.
-   (merge 9cd4382ad5 ls/complete-remote-update-names later to maint).
-
- * "git fetch --shallow-since=<cutoff>" that specifies the cut-off
-   point that is newer than the existing history used to end up
-   grabbing the entire history.  Such a request now errors out.
-   (merge e34de73c56 nd/reject-empty-shallow-request later to maint).
-
- * Fix for 2.17-era regression around `core.safecrlf`.
-   (merge 6cb09125be as/safecrlf-quiet-fix later to maint).
-
- * The recent addition of "partial clone" experimental feature kicked
-   in when it shouldn't, namely, when there is no partial-clone filter
-   defined even if extensions.partialclone is set.
-   (merge cac1137dc4 jh/partial-clone later to maint).
-
- * "git send-pack --signed" (hence "git push --signed" over the http
-   transport) did not read user ident from the config mechanism to
-   determine whom to sign the push certificate as, which has been
-   corrected.
-   (merge d067d98887 ms/send-pack-honor-config later to maint).
-
- * "git fetch-pack --all" used to unnecessarily fail upon seeing an
-   annotated tag that points at an object other than a commit.
-   (merge c12c9df527 jk/fetch-all-peeled-fix later to maint).
-
- * When user edits the patch in "git add -p" and the user's editor is
-   set to strip trailing whitespaces indiscriminately, an empty line
-   that is unchanged in the patch would become completely empty
-   (instead of a line with a sole SP on it).  The code introduced in
-   Git 2.17 timeframe failed to parse such a patch, but now it learned
-   to notice the situation and cope with it.
-   (merge f4d35a6b49 pw/add-p-recount later to maint).
-
- * The code to try seeing if a fetch is necessary in a submodule
-   during a fetch with --recurse-submodules got confused when the path
-   to the submodule was changed in the range of commits in the
-   superproject, sometimes showing "(null)".  This has been corrected.
-
- * Bugfix for "rebase -i" corner case regression.
-   (merge a9279c6785 pw/rebase-i-keep-reword-after-conflict later to maint).
-
- * Recently added "--base" option to "git format-patch" command did
-   not correctly generate prereq patch ids.
-   (merge 15b76c1fb3 xy/format-patch-prereq-patch-id-fix later to maint).
-
- * POSIX portability fix in Makefile to fix a glitch introduced a few
-   releases ago.
-   (merge 6600054e9b dj/runtime-prefix later to maint).
-
- * "git filter-branch" when used with the "--state-branch" option
-   still attempted to rewrite the commits whose filtered result is
-   known from the previous attempt (which is recorded on the state
-   branch); the command has been corrected not to waste cycles doing
-   so.
-   (merge 709cfe848a mb/filter-branch-optim later to maint).
-
- * Clarify that setting core.ignoreCase to deviate from reality would
-   not turn a case-incapable filesystem into a case-capable one.
-   (merge 48294b512a ms/core-icase-doc later to maint).
-
- * "fsck.skipList" did not prevent a blob object listed there from
-   being inspected for is contents (e.g. we recently started to
-   inspect the contents of ".gitmodules" for certain malicious
-   patterns), which has been corrected.
-   (merge fb16287719 rj/submodule-fsck-skip later to maint).
-
- * "git checkout --recurse-submodules another-branch" did not report
-   in which submodule it failed to update the working tree, which
-   resulted in an unhelpful error message.
-   (merge ba95d4e4bd sb/submodule-move-head-error-msg later to maint).
-
- * "git rebase" behaved slightly differently depending on which one of
-   the three backends gets used; this has been documented and an
-   effort to make them more uniform has begun.
-   (merge b00bf1c9a8 en/rebase-consistency later to maint).
-
- * The "--ignore-case" option of "git for-each-ref" (and its friends)
-   did not work correctly, which has been fixed.
-   (merge e674eb2528 jk/for-each-ref-icase later to maint).
-
- * "git fetch" failed to correctly validate the set of objects it
-   received when making a shallow history deeper, which has been
-   corrected.
-   (merge cf1e7c0770 jt/connectivity-check-after-unshallow later to maint).
-
- * Partial clone support of "git clone" has been updated to correctly
-   validate the objects it receives from the other side.  The server
-   side has been corrected to send objects that are directly
-   requested, even if they may match the filtering criteria (e.g. when
-   doing a "lazy blob" partial clone).
-   (merge a7e67c11b8 jt/partial-clone-fsck-connectivity later to maint).
-
- * Handling of an empty range by "git cherry-pick" was inconsistent
-   depending on how the range ended up to be empty, which has been
-   corrected.
-   (merge c5e358d073 jk/empty-pick-fix later to maint).
-
- * "git reset --merge" (hence "git merge ---abort") and "git reset --hard"
-   had trouble working correctly in a sparsely checked out working
-   tree after a conflict, which has been corrected.
-   (merge b33fdfc34c mk/merge-in-sparse-checkout later to maint).
-
- * Correct a broken use of "VAR=VAL shell_func" in a test.
-   (merge 650161a277 jc/t3404-one-shot-export-fix later to maint).
-
- * "git rev-parse ':/substring'" did not consider the history leading
-   only to HEAD when looking for a commit with the given substring,
-   when the HEAD is detached.  This has been fixed.
-   (merge 6b3351e799 wc/find-commit-with-pattern-on-detached-head later to maint).
-
- * Build doc update for Windows.
-   (merge ede8d89bb1 nd/command-list later to maint).
-
- * core.commentchar is now honored when preparing the list of commits
-   to replay in "rebase -i".
-
- * "git pull --rebase" on a corrupt HEAD caused a segfault.  In
-   general we substitute an empty tree object when running the in-core
-   equivalent of the diff-index command, and the codepath has been
-   corrected to do so as well to fix this issue.
-   (merge 3506dc9445 jk/has-uncommitted-changes-fix later to maint).
-
- * httpd tests saw occasional breakage due to the way its access log
-   gets inspected by the tests, which has been updated to make them
-   less flaky.
-   (merge e8b3b2e275 sg/httpd-test-unflake later to maint).
-
- * Tests to cover more D/F conflict cases have been added for
-   merge-recursive.
-
- * "git gc --auto" opens file descriptors for the packfiles before
-   spawning "git repack/prune", which would upset Windows that does
-   not want a process to work on a file that is open by another
-   process.  The issue has been worked around.
-   (merge 12e73a3ce4 kg/gc-auto-windows-workaround later to maint).
-
- * The recursive merge strategy did not properly ensure there was no
-   change between HEAD and the index before performing its operation,
-   which has been corrected.
-   (merge 55f39cf755 en/dirty-merge-fixes later to maint).
-
- * "git rebase" started exporting GIT_DIR environment variable and
-   exposing it to hook scripts when part of it got rewritten in C.
-   Instead of matching the old scripted Porcelains' behaviour,
-   compensate by also exporting GIT_WORK_TREE environment as well to
-   lessen the damage.  This can harm existing hooks that want to
-   operate on different repository, but the current behaviour is
-   already broken for them anyway.
-   (merge ab5e67d751 bc/sequencer-export-work-tree-as-well later to maint).
-
- * "git send-email" when using in a batched mode that limits the
-   number of messages sent in a single SMTP session lost the contents
-   of the variable used to choose between tls/ssl, unable to send the
-   second and later batches, which has been fixed.
-   (merge 636f3d7ac5 jm/send-email-tls-auth-on-batch later to maint).
-
- * The lazy clone support had a few places where missing but promised
-   objects were not correctly tolerated, which have been fixed.
-
- * One of the "diff --color-moved" mode "dimmed_zebra" that was named
-   in an unusual way has been deprecated and replaced by
-   "dimmed-zebra".
-   (merge e3f2f5f9cd es/diff-color-moved-fix later to maint).
-
- * The wire-protocol v2 relies on the client to send "ref prefixes" to
-   limit the bandwidth spent on the initial ref advertisement.  "git
-   clone" when learned to speak v2 forgot to do so, which has been
-   corrected.
-   (merge 402c47d939 bw/clone-ref-prefixes later to maint).
-
- * "git diff --histogram" had a bad memory usage pattern, which has
-   been rearranged to reduce the peak usage.
-   (merge 79cb2ebb92 sb/histogram-less-memory later to maint).
-
- * Code clean-up to use size_t/ssize_t when they are the right type.
-   (merge 7726d360b5 jk/size-t later to maint).
-
- * The wire-protocol v2 relies on the client to send "ref prefixes" to
-   limit the bandwidth spent on the initial ref advertisement.  "git
-   fetch $remote branch:branch" that asks tags that point into the
-   history leading to the "branch" automatically followed sent to
-   narrow prefix and broke the tag following, which has been fixed.
-   (merge 2b554353a5 jt/tag-following-with-proto-v2-fix later to maint).
-
- * When the sparse checkout feature is in use, "git cherry-pick" and
-   other mergy operations lost the skip_worktree bit when a path that
-   is excluded from checkout requires content level merge, which is
-   resolved as the same as the HEAD version, without materializing the
-   merge result in the working tree, which made the path appear as
-   deleted.  This has been corrected by preserving the skip_worktree
-   bit (and not materializing the file in the working tree).
-   (merge 2b75fb601c en/merge-recursive-skip-fix later to maint).
-
- * The "author-script" file "git rebase -i" creates got broken when
-   we started to move the command away from shell script, which is
-   getting fixed now.
-   (merge 5522bbac20 es/rebase-i-author-script-fix later to maint).
-
- * The automatic tree-matching in "git merge -s subtree" was broken 5
-   years ago and nobody has noticed since then, which is now fixed.
-   (merge 2ec4150713 jk/merge-subtree-heuristics later to maint).
-
- * "git fetch $there refs/heads/s" ought to fetch the tip of the
-   branch 's', but when "refs/heads/refs/heads/s", i.e. a branch whose
-   name is "refs/heads/s" exists at the same time, fetched that one
-   instead by mistake.  This has been corrected to honor the usual
-   disambiguation rules for abbreviated refnames.
-   (merge 60650a48c0 jt/refspec-dwim-precedence-fix later to maint).
-
- * Futureproofing a helper function that can easily be misused.
-   (merge 65bb21e77e es/want-color-fd-defensive later to maint).
-
- * The http-backend (used for smart-http transport) used to slurp the
-   whole input until EOF, without paying attention to CONTENT_LENGTH
-   that is supplied in the environment and instead expecting the Web
-   server to close the input stream.  This has been fixed.
-   (merge eebfe40962 mk/http-backend-content-length later to maint).
-
- * "git merge --abort" etc. did not clean things up properly when
-   there were conflicted entries in the index in certain order that
-   are involved in D/F conflicts.  This has been corrected.
-   (merge ad3762042a en/abort-df-conflict-fixes later to maint).
-
- * "git diff --indent-heuristic" had a bad corner case performance.
-   (merge 301ef85401 sb/indent-heuristic-optim later to maint).
-
- * The "--exec" option to "git rebase --rebase-merges" placed the exec
-   commands at wrong places, which has been corrected.
-
- * "git verify-tag" and "git verify-commit" have been taught to use
-   the exit status of underlying "gpg --verify" to signal bad or
-   untrusted signature they found.
-   (merge 4e5dc9ca17 jc/gpg-status later to maint).
-
- * "git mergetool" stopped and gave an extra prompt to continue after
-   the last path has been handled, which did not make much sense.
-   (merge d651a54b8a ng/mergetool-lose-final-prompt later to maint).
-
- * Among the three codepaths we use O_APPEND to open a file for
-   appending, one used for writing GIT_TRACE output requires O_APPEND
-   implementation that behaves sensibly when multiple processes are
-   writing to the same file.  POSIX emulation used in the Windows port
-   has been updated to improve in this area.
-   (merge d641097589 js/mingw-o-append later to maint).
-
- * "git pull --rebase -v" in a repository with a submodule barfed as
-   an intermediate process did not understand what "-v(erbose)" flag
-   meant, which has been fixed.
-   (merge e84c3cf3dc sb/pull-rebase-submodule later to maint).
-
- * Recent update to "git config" broke updating variable in a
-   subsection, which has been corrected.
-   (merge bff7df7a87 sb/config-write-fix later to maint).
-
- * When "git rebase -i" is told to squash two or more commits into
-   one, it labeled the log message for each commit with its number.
-   It correctly called the first one "1st commit", but the next one
-   was "commit #1", which was off-by-one.  This has been corrected.
-   (merge dd2e36ebac pw/rebase-i-squash-number-fix later to maint).
-
- * "git rebase -i", when a 'merge <branch>' insn in its todo list
-   fails, segfaulted, which has been (minimally) corrected.
-   (merge bc9238bb09 pw/rebase-i-merge-segv-fix later to maint).
-
- * "git cherry-pick --quit" failed to remove CHERRY_PICK_HEAD even
-   though we won't be in a cherry-pick session after it returns, which
-   has been corrected.
-   (merge 3e7dd99208 nd/cherry-pick-quit-fix later to maint).
-
- * In a recent update in 2.18 era, "git pack-objects" started
-   producing a larger than necessary packfiles by missing
-   opportunities to use large deltas.  This has been corrected.
-
- * The meaning of the possible values the "core.checkStat"
-   configuration variable can take were not adequately documented,
-   which has been fixed.
-   (merge 9bf5d4c4e2 nd/config-core-checkstat-doc later to maint).
-
- * Recent "git rebase -i" update started to write bogusly formatted
-   author-script, with a matching broken reading code.  These are
-   fixed.
-
- * Recent addition of "directory rename" heuristics to the
-   merge-recursive backend makes the command susceptible to false
-   positives and false negatives.  In the context of "git am -3",
-   which does not know about surrounding unmodified paths and thus
-   cannot inform the merge machinery about the full trees involved,
-   this risk is particularly severe.  As such, the heuristic is
-   disabled for "git am -3" to keep the machinery "more stupid but
-   predictable".
-
- * "git merge-base" in 2.19-rc1 has performance regression when the
-   (experimental) commit-graph feature is in use, which has been
-   mitigated.
-
- * Code cleanup, docfix, build fix, etc.
-   (merge aee9be2ebe sg/update-ref-stdin-cleanup later to maint).
-   (merge 037714252f jc/clean-after-sanity-tests later to maint).
-   (merge 5b26c3c941 en/merge-recursive-cleanup later to maint).
-   (merge 0dcbc0392e bw/config-refer-to-gitsubmodules-doc later to maint).
-   (merge bb4d000e87 bw/protocol-v2 later to maint).
-   (merge 928f0ab4ba vs/typofixes later to maint).
-   (merge d7f590be84 en/rebase-i-microfixes later to maint).
-   (merge 81d395cc85 js/rebase-recreate-merge later to maint).
-   (merge 51d1863168 tz/exclude-doc-smallfixes later to maint).
-   (merge a9aa3c0927 ds/commit-graph later to maint).
-   (merge 5cf8e06474 js/enhanced-version-info later to maint).
-   (merge 6aaded5509 tb/config-default later to maint).
-   (merge 022d2ac1f3 sb/blame-color later to maint).
-   (merge 5a06a20e0c bp/test-drop-caches-for-windows later to maint).
-   (merge dd61cc1c2e jk/ui-color-always-to-auto later to maint).
-   (merge 1e83b9bfdd sb/trailers-docfix later to maint).
-   (merge ab29f1b329 sg/fast-import-dump-refs-on-checkpoint-fix later to maint).
-   (merge 6a8ad880f0 jn/subtree-test-fixes later to maint).
-   (merge ffbd51cc60 nd/pack-objects-threading-doc later to maint).
-   (merge e9dac7be60 es/mw-to-git-chain-fix later to maint).
-   (merge fe583c6c7a rs/remote-mv-leakfix later to maint).
-   (merge 69885ab015 en/t3031-title-fix later to maint).
-   (merge 8578037bed nd/config-blame-sort later to maint).
-   (merge 8ad169c4ba hn/config-in-code-comment later to maint).
-   (merge b7446fcfdf ar/t4150-am-scissors-test-fix later to maint).
-   (merge a8132410ee js/typofixes later to maint).
-   (merge 388d0ff6e5 en/update-index-doc later to maint).
-   (merge e05aa688dd jc/update-index-doc later to maint).
-   (merge 10c600172c sg/t5310-empty-input-fix later to maint).
-   (merge 5641eb9465 jh/partial-clone-doc later to maint).
-   (merge 2711b1ad5e ab/submodule-relative-url-tests later to maint).
-   (merge ce528de023 ab/unconditional-free-and-null later to maint).
-   (merge bbc072f5d8 rs/opt-updates later to maint).
-   (merge 69d846f053 jk/use-compat-util-in-test-tool later to maint).
-   (merge 1820703045 js/larger-timestamps later to maint).
-   (merge c8b35b95e1 sg/t4051-fix later to maint).
-   (merge 30612cb670 sg/t0020-conversion-fix later to maint).
-   (merge 15da753709 sg/t7501-thinkofix later to maint).
-   (merge 79b04f9b60 sg/t3903-missing-fix later to maint).
-   (merge 2745817028 sg/t3420-autostash-fix later to maint).
-   (merge 7afb0d6777 sg/test-rebase-editor-fix later to maint).
-   (merge 6c6ce21baa es/freebsd-iconv-portability later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.19.1.txt b/third_party/git/Documentation/RelNotes/2.19.1.txt
deleted file mode 100644
index da7672674eb8..000000000000
--- a/third_party/git/Documentation/RelNotes/2.19.1.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Git v2.19.1 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.5 and in
-v2.17.2 to address the recently reported CVE-2018-17456; see the
-release notes for those versions for details.
diff --git a/third_party/git/Documentation/RelNotes/2.19.2.txt b/third_party/git/Documentation/RelNotes/2.19.2.txt
deleted file mode 100644
index 759e6ca95738..000000000000
--- a/third_party/git/Documentation/RelNotes/2.19.2.txt
+++ /dev/null
@@ -1,108 +0,0 @@
-Git v2.19.2 Release Notes
-=========================
-
-Fixes since v2.19.1
--------------------
-
- * "git interpret-trailers" and its underlying machinery had a buggy
-   code that attempted to ignore patch text after commit log message,
-   which triggered in various codepaths that will always get the log
-   message alone and never get such an input.
-
- * "git rebase -i" did not clear the state files correctly when a run
-   of "squash/fixup" is aborted and then the user manually amended the
-   commit instead, which has been corrected.
-
- * When fsmonitor is in use, after operation on submodules updates
-   .gitmodules, we lost track of the fact that we did so and relied on
-   stale fsmonitor data.
-
- * Fix for a long-standing bug that leaves the index file corrupt when
-   it shrinks during a partial commit.
-
- * Further fix for O_APPEND emulation on Windows
-
- * A corner case bugfix in "git rerere" code.
-
- * "git add ':(attr:foo)'" is not supported and is supposed to be
-   rejected while the command line arguments are parsed, but we fail
-   to reject such a command line upfront.
-
- * "git rebase" etc. in Git 2.19 fails to abort when given an empty
-   commit log message as result of editing, which has been corrected.
-
- * The code to backfill objects in lazily cloned repository did not
-   work correctly, which has been corrected.
-
- * Update error messages given by "git remote" and make them consistent.
-
- * "git update-ref" learned to make both "--no-deref" and "--stdin"
-   work at the same time.
-
- * Recently added "range-diff" had a corner-case bug to cause it
-   segfault, which has been corrected.
-
- * The recently introduced commit-graph auxiliary data is incompatible
-   with mechanisms such as replace & grafts that "breaks" immutable
-   nature of the object reference relationship.  Disable optimizations
-   based on its use (and updating existing commit-graph) when these
-   incompatible features are in use in the repository.
-
- * The mailmap file update.
-
- * The code in "git status" sometimes hit an assertion failure.  This
-   was caused by a structure that was reused without cleaning the data
-   used for the first run, which has been corrected.
-
- * A corner-case bugfix.
-
- * A partial clone that is configured to lazily fetch missing objects
-   will on-demand issue a "git fetch" request to the originating
-   repository to fill not-yet-obtained objects.  The request has been
-   optimized for requesting a tree object (and not the leaf blob
-   objects contained in it) by telling the originating repository that
-   no blobs are needed.
-
- * The codepath to support the experimental split-index mode had
-   remaining "racily clean" issues fixed.
-
- * "git log --graph" showing an octopus merge sometimes miscounted the
-   number of display columns it is consuming to show the merge and its
-   parent commits, which has been corrected.
-
- * The implementation of run_command() API on the UNIX platforms had a
-   bug that caused a command not on $PATH to be found in the current
-   directory.
-
- * A mutex used in "git pack-objects" were not correctly initialized
-   and this caused "git repack" to dump core on Windows.
-
- * Under certain circumstances, "git diff D:/a/b/c D:/a/b/d" on
-   Windows would strip initial parts from the paths because they
-   were not recognized as absolute, which has been corrected.
-
- * The receive.denyCurrentBranch=updateInstead codepath kicked in even
-   when the push should have been rejected due to other reasons, such
-   as it does not fast-forward or the update-hook rejects it, which
-   has been corrected.
-
- * "git repack" in a shallow clone did not correctly update the
-   shallow points in the repository, leading to a repository that
-   does not pass fsck.
-
- * Operations on promisor objects make sense in the context of only a
-   small subset of the commands that internally use the revisions
-   machinery, but the "--exclude-promisor-objects" option were taken
-   and led to nonsense results by commands like "log", to which it
-   didn't make much sense.  This has been corrected.
-
- * The "container" mode of TravisCI is going away.  Our .travis.yml
-   file is getting prepared for the transition.
-
- * Our test scripts can now take the '-V' option as a synonym for the
-   '--verbose-log' option.
-
- * A regression in Git 2.12 era made "git fsck" fall into an infinite
-   loop while processing truncated loose objects.
-
-Also contains various documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.19.3.txt b/third_party/git/Documentation/RelNotes/2.19.3.txt
deleted file mode 100644
index 92d7f89de68b..000000000000
--- a/third_party/git/Documentation/RelNotes/2.19.3.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Git v2.19.3 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.6, v2.15.4
-and in v2.17.3, addressing the security issues CVE-2019-1348,
-CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352,
-CVE-2019-1353, CVE-2019-1354, and CVE-2019-1387; see the release notes
-for those versions for details.
diff --git a/third_party/git/Documentation/RelNotes/2.19.4.txt b/third_party/git/Documentation/RelNotes/2.19.4.txt
deleted file mode 100644
index 35d0ae561b6f..000000000000
--- a/third_party/git/Documentation/RelNotes/2.19.4.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.19.4 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.4; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.19.5.txt b/third_party/git/Documentation/RelNotes/2.19.5.txt
deleted file mode 100644
index 18a4dcbfd6a7..000000000000
--- a/third_party/git/Documentation/RelNotes/2.19.5.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.19.5 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.5; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.2.0.txt b/third_party/git/Documentation/RelNotes/2.2.0.txt
deleted file mode 100644
index e98ecbcff60a..000000000000
--- a/third_party/git/Documentation/RelNotes/2.2.0.txt
+++ /dev/null
@@ -1,313 +0,0 @@
-Git v2.2 Release Notes
-======================
-
-Updates since v2.1
-------------------
-
-Ports
-
- * Building on older MacOS X systems automatically sets
-   the necessary NO_APPLE_COMMON_CRYPTO build-time option.
-
- * Building with NO_PTHREADS has been resurrected.
-
- * Compilation options have been updated a bit to better support the
-   z/OS port.
-
-
-UI, Workflows & Features
-
- * "git archive" learned to filter what gets archived with a pathspec.
-
- * "git config --edit --global" starts from a skeletal per-user
-   configuration file contents, instead of a total blank, when the
-   user does not already have any global config.  This immediately
-   reduces the need to later ask "Have you forgotten to set
-   core.user?", and we can add more to the template as we gain
-   more experience.
-
- * "git stash list -p" used to be almost always a no-op because each
-   stash entry is represented as a merge commit.  It learned to show
-   the difference between the base commit version and the working tree
-   version, which is in line with what "git stash show" gives.
-
- * Sometimes users want to report a bug they experience on their
-   repository, but they are not at liberty to share the contents of
-   the repository.  "fast-export" was taught an "--anonymize" option
-   to replace blob contents, names of people, paths and log
-   messages with bland and simple strings to help them.
-
- * "git difftool" learned an option to stop feeding paths to the
-   diff backend when it exits with a non-zero status.
-
- * "git grep" learned to paint (or not paint) partial matches on
-   context lines when showing "grep -C<num>" output in color.
-
- * "log --date=iso" uses a slight variant of the ISO 8601 format that is
-   more human readable.  A new "--date=iso-strict" option gives
-   datetime output that conforms more strictly.
-
- * The logic "git prune" uses is more resilient against various corner
-   cases.
-
- * A broken reimplementation of Git could write an invalid index that
-   records both stage #0 and higher-stage entries for the same path.
-   We now notice and reject such an index, as there is no sensible
-   fallback (we do not know if the broken tool wanted to resolve and
-   forgot to remove the higher-stage entries, or if it wanted to unresolve
-   and forgot to remove the stage #0 entry).
-
- * The temporary files "git mergetool" uses are renamed to avoid too
-   many dots in them (e.g. a temporary file for "hello.c" used to be
-   named e.g. "hello.BASE.4321.c" but now uses underscore instead,
-   e.g. "hello_BASE_4321.c", to allow us to have multiple variants).
-
- * The temporary files "git mergetool" uses can be placed in a newly
-   created temporary directory, instead of the current directory, by
-   setting the mergetool.writeToTemp configuration variable.
-
- * "git mergetool" understands "--tool bc" now, as version 4 of
-   BeyondCompare can be driven the same way as its version 3 and it
-   feels awkward to say "--tool bc3" to run version 4.
-
- * The "pre-receive" and "post-receive" hooks are no longer required
-   to consume their input fully (not following this requirement used
-   to result in intermittent errors in "git push").
-
- * The pretty-format specifier "%d", which expands to " (tagname)"
-   for a tagged commit, gained a cousin "%D" that just gives the
-   "tagname" without frills.
-
- * "git push" learned "--signed" push, that allows a push (i.e.
-   request to update the refs on the other side to point at a new
-   history, together with the transmission of necessary objects) to be
-   signed, so that it can be verified and audited, using the GPG
-   signature of the person who pushed, that the tips of branches at a
-   public repository really point the commits the pusher wanted to,
-   without having to "trust" the server.
-
- * "git interpret-trailers" is a new filter to programmatically edit
-   the tail end of the commit log messages, e.g. "Signed-off-by:".
-
- * "git help everyday" shows the "Everyday Git in 20 commands or so"
-   document, whose contents have been updated to match more modern
-   Git practice.
-
- * On the "git svn" front, work progresses to reduce memory consumption and
-   to improve handling of mergeinfo.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * The API to manipulate the "refs" has been restructured to make it
-   more transactional, with the eventual goal to allow all-or-none
-   atomic updates and migrating the storage to something other than
-   the traditional filesystem based one (e.g. databases).
-
- * The lockfile API and its users have been cleaned up.
-
- * We no longer attempt to keep track of individual dependencies to
-   the header files in the build procedure, relying instead on automated
-   dependency generation support from modern compilers.
-
- * In tests, we have been using NOT_{MINGW,CYGWIN} test prerequisites
-   long before negated prerequisites e.g. !MINGW were invented.
-   The former has been converted to the latter to avoid confusion.
-
- * Optimized looking up a remote's configuration in a repository with very many
-   remotes defined.
-
- * There are cases where you lock and open to write a file, close it
-   to show the updated contents to an external processes, and then have
-   to update the file again while still holding the lock; now the
-   lockfile API has support for such an access pattern.
-
- * The API to allocate the structure to keep track of commit
-   decoration has been updated to make it less cumbersome to use.
-
- * An in-core caching layer to let us avoid reading the same
-   configuration files several times has been added.  A few commands
-   have been converted to use this subsystem.
-
- * Various code paths have been cleaned up and simplified by using
-   the "strbuf", "starts_with()", and "skip_prefix()" APIs more.
-
- * A few codepaths that died when large blobs that would not fit in
-   core are involved in their operation have been taught to punt
-   instead, by e.g. marking a too-large blob as not to be diffed.
-
- * A few more code paths in "commit" and "checkout" have been taught
-   to repopulate the cache-tree in the index, to help speed up later
-   "write-tree" (used in "commit") and "diff-index --cached" (used in
-   "status").
-
- * A common programming mistake to assign the same short option name
-   to two separate options is detected by the parse_options() API to help
-   developers.
-
- * The code path to write out the packed-refs file has been optimized,
-   which especially matters in a repository with a large number of
-   refs.
-
- * The check to see if a ref $F can be created by making sure no
-   existing ref has $F/ as its prefix has been optimized, which
-   especially matters in a repository with a large number of existing
-   refs.
-
- * "git fsck" was taught to check the contents of tag objects a bit more.
-
- * "git hash-object" was taught a "--literally" option to help
-   debugging.
-
- * When running a required clean filter, we do not have to mmap the
-   original before feeding the filter.  Instead, stream the file
-   contents directly to the filter and process its output.
-
- * The scripts in the test suite can be run with the "-x" option to show
-   a shell-trace of each command they run.
-
- * The "run-command" API learned to manage the argv and environment
-   arrays for child process, alleviating the need for the callers to
-   allocate and deallocate them.
-
- * Some people use AsciiDoctor, instead of AsciiDoc, to format our
-   documentation set; the documentation has been adjusted to be usable
-   by both, as AsciiDoctor is pickier than AsciiDoc about its input
-   mark-up.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.1
-----------------
-
-Unless otherwise noted, all the fixes since v2.1 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * "git log --pretty/format=" with an empty format string did not
-   mean the more obvious "No output whatsoever" but "Use default
-   format", which was counterintuitive.
-
- * "git -c section.var command" and "git -c section.var= command"
-   should pass the configuration value differently (the former should be a
-   boolean true, the latter should be an empty string).
-
- * Applying a patch not generated by Git in a subdirectory used to
-   check for whitespace breakage using the attributes of incorrect
-   paths. Also whitespace checks were performed even for paths
-   excluded via the "git apply --exclude=<path>" mechanism.
-
- * "git bundle create" with a date-range specification was meant to
-   exclude tags outside the range, but it didn't.
-
- * "git add x" where x used to be a directory and is now a
-   symbolic link to a directory misbehaved.
-
- * The prompt script checked the $GIT_DIR/ref/stash file to see if there
-   is a stash, which was a no-no.
-
- * Pack-protocol documentation had a minor typo.
-
- * "git checkout -m" did not switch to another branch while carrying
-   the local changes forward when a path was deleted from the index.
-
- * "git daemon" (with NO_IPV6 build configuration) used to incorrectly
-   use the hostname even when gethostbyname() reported that the given
-   hostname is not found.
-   (merge 107efbe rs/daemon-fixes later to maint).
-
- * With sufficiently long refnames, "git fast-import" could have
-   overflowed an on-stack buffer.
-
- * After "pack-refs --prune" packed refs at the top-level, it failed
-   to prune them.
-
- * Progress output from "git gc --auto" was visible in "git fetch -q".
-
- * We used to pass -1000 to poll(2), expecting it to also mean "no
-   timeout", which should be spelled as -1.
-
- * "git rebase" documentation was unclear that it is required to
-   specify on what <upstream> the rebase is to be done when telling it
-   to first check out <branch>.
-   (merge 95c6826 so/rebase-doc later to maint).
-
- * "git push" over HTTP transport had an artificial limit on the number of
-   refs that can be pushed, imposed by the command line length.
-   (merge 26be19b jk/send-pack-many-refspecs later to maint).
-
- * When receiving an invalid pack stream that records the same object
-   twice, multiple threads got confused due to a race.
-   (merge ab791dd jk/index-pack-threading-races later to maint).
-
- * An attempt to remove the entire tree in the "git fast-import" input
-   stream caused it to misbehave.
-   (merge 2668d69 mb/fast-import-delete-root later to maint).
-
- * Reachability check (used in "git prune" and friends) did not add a
-   detached HEAD as a starting point to traverse objects still in use.
-   (merge c40fdd0 mk/reachable-protect-detached-head later to maint).
-
- * "git config --add section.var val" when section.var already has an
-   empty-string value used to lose the empty-string value.
-   (merge c1063be ta/config-add-to-empty-or-true-fix later to maint).
-
- * "git fsck" failed to report that it found corrupt objects via its
-   exit status in some cases.
-   (merge 30d1038 jk/fsck-exit-code-fix later to maint).
-
- * Use of the "--verbose" option used to break "git branch --merged".
-   (merge 12994dd jk/maint-branch-verbose-merged later to maint).
-
- * Some MUAs mangle a line in a message that begins with "From " to
-   ">From " when writing to a mailbox file, and feeding such an input
-   to "git am" used to lose such a line.
-   (merge 85de86a jk/mbox-from-line later to maint).
-
- * "rev-parse --verify --quiet $name" is meant to quietly exit with a
-   non-zero status when $name is not a valid object name, but still
-   gave error messages in some cases.
-
- * A handful of C source files have been updated to include
-   "git-compat-util.h" as the first thing, to conform better to our
-   coding guidelines.
-   (merge 1c4b660 da/include-compat-util-first-in-c later to maint).
-
- * The t7004 test, which tried to run Git with small stack space, has been
-   updated to use a bit larger stack to avoid false breakage on some
-   platforms.
-   (merge b9a1907 sk/tag-contains-wo-recursion later to maint).
-
- * A few documentation pages had example sections marked up not quite
-   correctly, which passed AsciiDoc but failed with AsciiDoctor.
-   (merge c30c43c bc/asciidoc-pretty-formats-fix later to maint).
-   (merge f8a48af bc/asciidoc later to maint).
-
- * "gitweb" used deprecated CGI::startfrom, which was removed from
-   CGI.pm as of 4.04; use CGI::start_from instead.
-   (merge 4750f4b rm/gitweb-start-form later to maint).
-
- * Newer versions of 'meld' break the auto-detection we use to see if
-   they are new enough to support the `--output` option.
-   (merge b12d045 da/mergetool-meld later to maint).
-
- * "git pack-objects" forgot to disable the codepath to generate the
-   object reachability bitmap when it needs to split the resulting
-   pack.
-   (merge 2113471 jk/pack-objects-no-bitmap-when-splitting later to maint).
-
- * The code to use cache-tree trusted the on-disk data too much and
-   fell into an infinite loop upon seeing an incorrectly recorded
-   index file.
-   (merge 729dbbd jk/cache-tree-protect-from-broken-libgit2 later to maint).
-
- * "git fetch" into a repository where branch B was deleted earlier,
-   back when it had reflog enabled, and then branch B/C is fetched
-   into it without reflog enabled, which is arguably an unlikely
-   corner case, unnecessarily failed.
-   (merge aae828b jk/fetch-reflog-df-conflict later to maint).
-
- * "git log --first-parent -L..." used to crash.
-   (merge a8787c5 tm/line-log-first-parent later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.2.1.txt b/third_party/git/Documentation/RelNotes/2.2.1.txt
deleted file mode 100644
index d5a3cd9e7312..000000000000
--- a/third_party/git/Documentation/RelNotes/2.2.1.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Git v2.2.1 Release Notes
-========================
-
-Fixes since v2.2
-----------------
-
- * We used to allow committing a path ".Git/config" with Git that is
-   running on a case sensitive filesystem, but an attempt to check out
-   such a path with Git that runs on a case insensitive filesystem
-   would have clobbered ".git/config", which is definitely not what
-   the user would have expected.  Git now prevents you from tracking
-   a path with ".Git" (in any case combination) as a path component.
-
- * On Windows, certain path components that are different from ".git"
-   are mapped to ".git", e.g. "git~1/config" is treated as if it were
-   ".git/config".  HFS+ has a similar issue, where certain unicode
-   codepoints are ignored, e.g. ".g\u200cit/config" is treated as if
-   it were ".git/config".  Pathnames with these potential issues are
-   rejected on the affected systems.  Git on systems that are not
-   affected by this issue (e.g. Linux) can also be configured to
-   reject them to ensure cross platform interoperability of the hosted
-   projects.
-
- * "git fsck" notices a tree object that records such a path that can
-   be confused with ".git", and with receive.fsckObjects configuration
-   set to true, an attempt to "git push" such a tree object will be
-   rejected.  Such a path may not be a problem on a well behaving
-   filesystem but in order to protect those on HFS+ and on case
-   insensitive filesystems, this check is enabled on all platforms.
-
-A big "thanks!" for bringing this issue to us goes to our friends in
-the Mercurial land, namely, Matt Mackall and Augie Fackler.
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.2.2.txt b/third_party/git/Documentation/RelNotes/2.2.2.txt
deleted file mode 100644
index b19a35d94f68..000000000000
--- a/third_party/git/Documentation/RelNotes/2.2.2.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-Git v2.2.2 Release Notes
-========================
-
-Fixes since v2.2.1
-------------------
-
- * "git checkout $treeish $path", when $path in the index and the
-   working tree already matched what is in $treeish at the $path,
-   still overwrote the $path unnecessarily.
-
- * "git config --get-color" did not parse its command line arguments
-   carefully.
-
- * open() emulated on Windows platforms did not give EISDIR upon
-   an attempt to open a directory for writing.
-
- * A few code paths used abs() when they should have used labs() on
-   long integers.
-
- * "gitweb" used to depend on a behaviour recent CGI.pm deprecated.
-
- * "git init" (hence "git clone") initialized the per-repository
-   configuration file .git/config with x-bit by mistake.
-
- * Git 2.0 was supposed to make the "simple" mode for the default of
-   "git push", but it didn't.
-
- * "Everyday" document had a broken link.
-
- * The build procedure did not bother fixing perl and python scripts
-   when NO_PERL and NO_PYTHON build-time configuration changed.
-
- * The code that reads the reflog from the newer to the older entries
-   did not handle an entry that crosses a boundary of block it uses to
-   read them correctly.
-
- * "git apply" was described in the documentation to take --ignore-date
-   option, which it does not.
-
- * Traditionally we tried to avoid interpreting date strings given by
-   the user as future dates, e.g. GIT_COMMITTER_DATE=2014-12-10 when
-   used early November 2014 was taken as "October 12, 2014" because it
-   is likely that a date in the future, December 10, is a mistake.
-   This heuristics has been loosened to allow people to express future
-   dates (most notably, --until=<date> may want to be far in the
-   future) and we no longer tiebreak by future-ness of the date when
-
-    (1) ISO-like format is used, and
-    (2) the string can make sense interpreted as both y-m-d and y-d-m.
-
-   Git may still have to use the heuristics to tiebreak between dd/mm/yy
-   and mm/dd/yy, though.
-
- * The code to abbreviate an object name to its short unique prefix
-   has been optimized when no abbreviation was requested.
-
- * "git add --ignore-errors ..." did not ignore an error to
-   give a file that did not exist.
-
- * Git did not correctly read an overlong refname from a packed refs
-   file.
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.2.3.txt b/third_party/git/Documentation/RelNotes/2.2.3.txt
deleted file mode 100644
index 5bfffa41060f..000000000000
--- a/third_party/git/Documentation/RelNotes/2.2.3.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Git v2.2.3 Release Notes
-========================
-
-Fixes since v2.2.2
-------------------
-
- * A handful of codepaths that used to use fixed-sized arrays to hold
-   pathnames have been corrected to use strbuf and other mechanisms to
-   allow longer pathnames without fearing overflows.
diff --git a/third_party/git/Documentation/RelNotes/2.20.0.txt b/third_party/git/Documentation/RelNotes/2.20.0.txt
deleted file mode 100644
index 3dd7e6e1fcf9..000000000000
--- a/third_party/git/Documentation/RelNotes/2.20.0.txt
+++ /dev/null
@@ -1,700 +0,0 @@
-Git 2.20 Release Notes
-======================
-
-Backward Compatibility Notes
-----------------------------
-
- * "git branch -l <foo>" used to be a way to ask a reflog to be
-   created while creating a new branch, but that is no longer the
-   case.  It is a short-hand for "git branch --list <foo>" now.
-
- * "git push" into refs/tags/* hierarchy is rejected without getting
-   forced, but "git fetch" (misguidedly) used the "fast forwarding"
-   rule used for the refs/heads/* hierarchy; this has been corrected,
-   which means some fetches of tags that did not fail with older
-   version of Git will fail without "--force" with this version.
-
- * "git help -a" now gives verbose output (same as "git help -av").
-   Those who want the old output may say "git help --no-verbose -a"..
-
- * "git cpn --help", when "cpn" is an alias to, say, "cherry-pick -n",
-   reported only the alias expansion of "cpn" in earlier versions of
-   Git.  It now runs "git cherry-pick --help" to show the manual page
-   of the command, while sending the alias expansion to the standard
-   error stream.
-
- * "git send-email" learned to grab address-looking string on any
-   trailer whose name ends with "-by". This is a backward-incompatible
-   change.  Adding "--suppress-cc=misc-by" on the command line, or
-   setting sendemail.suppresscc configuration variable to "misc-by",
-   can be used to disable this behaviour.
-
-
-Updates since v2.19
--------------------
-
-UI, Workflows & Features
-
- * Running "git clone" against a project that contain two files with
-   pathnames that differ only in cases on a case insensitive
-   filesystem would result in one of the files lost because the
-   underlying filesystem is incapable of holding both at the same
-   time.  An attempt is made to detect such a case and warn.
-
- * "git checkout -b newbranch [HEAD]" should not have to do as much as
-   checking out a commit different from HEAD.  An attempt is made to
-   optimize this special case.
-
- * "git rev-list --stdin </dev/null" used to be an error; it now shows
-   no output without an error.  "git rev-list --stdin --default HEAD"
-   still falls back to the given default when nothing is given on the
-   standard input.
-
- * Lift code from GitHub to restrict delta computation so that an
-   object that exists in one fork is not made into a delta against
-   another object that does not appear in the same forked repository.
-
- * "git format-patch" learned new "--interdiff" and "--range-diff"
-   options to explain the difference between this version and the
-   previous attempt in the cover letter (or after the three-dashes as
-   a comment).
-
- * "git mailinfo" used in "git am" learned to make a best-effort
-   recovery of a patch corrupted by MUA that sends text/plain with
-   format=flawed option.
-   (merge 3aa4d81f88 rs/mailinfo-format-flowed later to maint).
-
- * The rules used by "git push" and "git fetch" to determine if a ref
-   can or cannot be updated were inconsistent; specifically, fetching
-   to update existing tags were allowed even though tags are supposed
-   to be unmoving anchoring points.  "git fetch" was taught to forbid
-   updates to existing tags without the "--force" option.
-
- * "git multi-pack-index" learned to detect corruption in the .midx
-   file it uses, and this feature has been integrated into "git fsck".
-
- * Generation of (experimental) commit-graph files have so far been
-   fairly silent, even though it takes noticeable amount of time in a
-   meaningfully large repository.  The users will now see progress
-   output.
-
- * The minimum version of Windows supported by Windows port of Git is
-   now set to Vista.
-
- * The completion script (in contrib/) learned to complete a handful of
-   options "git stash list" command takes.
-
- * The completion script (in contrib/) learned that "git fetch
-   --multiple" only takes remote names as arguments and no refspecs.
-
- * "git status" learns to show progress bar when refreshing the index
-   takes a long time.
-   (merge ae9af12287 nd/status-refresh-progress later to maint).
-
- * "git help -a" and "git help -av" give different pieces of
-   information, and generally the "verbose" version is more friendly
-   to the new users.  "git help -a" by default now uses the more
-   verbose output (with "--no-verbose", you can go back to the
-   original).  Also "git help -av" now lists aliases and external
-   commands, which it did not used to.
-
- * Unlike "grep", "git grep" by default recurses to the whole tree.
-   The command learned "git grep --recursive" option, so that "git
-   grep --no-recursive" can serve as a synonym to setting the
-   max-depth to 0.
-
- * When pushing into a repository that borrows its objects from an
-   alternate object store, "git receive-pack" that responds to the
-   push request on the other side lists the tips of refs in the
-   alternate to reduce the amount of objects transferred.  This
-   sometimes is detrimental when the number of refs in the alternate
-   is absurdly large, in which case the bandwidth saved in potentially
-   fewer objects transferred is wasted in excessively large ref
-   advertisement.  The alternate refs that are advertised are now
-   configurable with a pair of configuration variables.
-
- * "git cmd --help" when "cmd" is aliased used to only say "cmd is
-   aliased to ...".  Now it shows that to the standard error stream
-   and runs "git $cmd --help" where $cmd is the first word of the
-   alias expansion.
-
- * The documentation of "git gc" has been updated to mention that it
-   is no longer limited to "pruning away cruft" but also updates
-   ancillary files like commit-graph as a part of repository
-   optimization.
-
- * "git p4 unshelve" improvements.
-
- * The logic to select the default user name and e-mail on Windows has
-   been improved.
-   (merge 501afcb8b0 js/mingw-default-ident later to maint).
-
- * The "rev-list --filter" feature learned to exclude all trees via
-   "tree:0" filter.
-
- * "git send-email" learned to grab address-looking string on any
-   trailer whose name ends with "-by"; --suppress-cc=misc-by on the
-   command line, or setting sendemail.suppresscc configuration
-   variable to "misc-by", can be used to disable this behaviour.
-
- * "git mergetool" learned to take the "--[no-]gui" option, just like
-   "git difftool" does.
-
- * "git rebase -i" learned a new insn, 'break', that the user can
-   insert in the to-do list.  Upon hitting it, the command returns
-   control back to the user.
-
- * New "--pretty=format:" placeholders %GF and %GP that show the GPG
-   key fingerprints have been invented.
-
- * On platforms with recent cURL library, http.sslBackend configuration
-   variable can be used to choose a different SSL backend at runtime.
-   The Windows port uses this mechanism to switch between OpenSSL and
-   Secure Channel while talking over the HTTPS protocol.
-
- * "git send-email" learned to disable SMTP authentication via the
-   "--smtp-auth=none" option, even when the smtp username is given
-   (which turns the authentication on by default).
-
- * A fourth class of configuration files (in addition to the
-   traditional "system wide", "per user in the $HOME directory" and
-   "per repository in the $GIT_DIR/config") has been introduced so
-   that different worktrees that share the same repository (hence the
-   same $GIT_DIR/config file) can use different customization.
-
- * A pattern with '**' that does not have a slash on either side used
-   to be an invalid one, but the code now treats such double-asterisks
-   the same way as two normal asterisks that happen to be adjacent to
-   each other.
-   (merge e5bbe09e88 nd/wildmatch-double-asterisk later to maint).
-
- * The "--no-patch" option, which can be used to get a high-level
-   overview without the actual line-by-line patch difference shown, of
-   the "range-diff" command was earlier broken, which has been
-   corrected.
-
- * The recently merged "rebase in C" has an escape hatch to use the
-   scripted version when necessary, but it hasn't been documented,
-   which has been corrected.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * Developer builds now use -Wunused-function compilation option.
-
- * One of our CI tests to run with "unusual/experimental/random"
-   settings now also uses commit-graph and midx.
-
- * When there are too many packfiles in a repository (which is not
-   recommended), looking up an object in these would require
-   consulting many pack .idx files; a new mechanism to have a single
-   file that consolidates all of these .idx files is introduced.
-
- * "git submodule update" is getting rewritten piece-by-piece into C.
-
- * The code for computing history reachability has been shuffled,
-   obtained a bunch of new tests to cover them, and then being
-   improved.
-
- * The unpack_trees() API used in checking out a branch and merging
-   walks one or more trees along with the index.  When the cache-tree
-   in the index tells us that we are walking a tree whose flattened
-   contents is known (i.e. matches a span in the index), as linearly
-   scanning a span in the index is much more efficient than having to
-   open tree objects recursively and listing their entries, the walk
-   can be optimized, which has been done.
-
- * When creating a thin pack, which allows objects to be made into a
-   delta against another object that is not in the resulting pack but
-   is known to be present on the receiving end, the code learned to
-   take advantage of the reachability bitmap; this allows the server
-   to send a delta against a base beyond the "boundary" commit.
-
- * spatch transformation to replace boolean uses of !hashcmp() to
-   newly introduced oideq() is added, and applied, to regain
-   performance lost due to support of multiple hash algorithms.
-
- * Fix a bug in which the same path could be registered under multiple
-   worktree entries if the path was missing (for instance, was removed
-   manually).  Also, as a convenience, expand the number of cases in
-   which --force is applicable.
-
- * Split Documentation/config.txt for easier maintenance.
-   (merge 6014363f0b nd/config-split later to maint).
-
- * Test helper binaries clean-up.
-   (merge c9a1f4161f nd/test-tool later to maint).
-
- * Various tests have been updated to make it easier to swap the
-   hash function used for object identification.
-   (merge ae0c89d41b bc/hash-independent-tests later to maint).
-
- * Update fsck.skipList implementation and documentation.
-   (merge 371a655074 ab/fsck-skiplist later to maint).
-
- * An alias that expands to another alias has so far been forbidden,
-   but now it is allowed to create such an alias.
-
- * Various test scripts have been updated for style and also correct
-   handling of exit status of various commands.
-
- * "gc --auto" ended up calling exit(-1) upon error, which has been
-   corrected to use exit(1).  Also the error reporting behaviour when
-   daemonized has been updated to exit with zero status when stopping
-   due to a previously discovered error (which implies there is no
-   point running gc to improve the situation); we used to exit with
-   failure in such a case.
-
- * Various codepaths in the core-ish part learned to work on an
-   arbitrary in-core index structure, not necessarily the default
-   instance "the_index".
-   (merge b3c7eef9b0 nd/the-index later to maint).
-
- * Code clean-up in the internal machinery used by "git status" and
-   "git commit --dry-run".
-   (merge 73ba5d78b4 ss/wt-status-committable later to maint).
-
- * Some environment variables that control the runtime options of Git
-   used during tests are getting renamed for consistency.
-   (merge 4231d1ba99 bp/rename-test-env-var later to maint).
-
- * A pair of new extensions to the index file have been introduced.
-   They allow the index file to be read in parallel for performance.
-
- * The oidset API was built on top of the oidmap API which in turn is
-   on the hashmap API.  Replace the implementation to build on top of
-   the khash API and gain performance.
-
- * Over some transports, fetching objects with an exact commit object
-   name can be done without first seeing the ref advertisements.  The
-   code has been optimized to exploit this.
-
- * In a partial clone that will lazily be hydrated from the
-   originating repository, we generally want to avoid "does this
-   object exist (locally)?" on objects that we deliberately omitted
-   when we created the clone.  The cache-tree codepath (which is used
-   to write a tree object out of the index) however insisted that the
-   object exists, even for paths that are outside of the partial
-   checkout area.  The code has been updated to avoid such a check.
-
- * To help developers, an EditorConfig file that attempts to follow
-   the project convention has been added.
-   (merge b548d698a0 bc/editorconfig later to maint).
-
- * The result of coverage test can be combined with "git blame" to
-   check the test coverage of code introduced recently with a new
-   'coverage-diff' tool (in contrib/).
-   (merge 783faedd65 ds/coverage-diff later to maint).
-
- * An experiment to fuzz test a few areas, hopefully we can gain more
-   coverage to various areas.
-
- * More codepaths are moving away from hardcoded hash sizes.
-
- * The way the Windows port figures out the current directory has been
-   improved.
-
- * The way DLLs are loaded on the Windows port has been improved.
-
- * Some tests have been reorganized and renamed; "ls t/" now gives a
-   better overview of what is tested for these scripts than before.
-
- * "git rebase" and "git rebase -i" have been reimplemented in C.
-
- * Windows port learned to use nano-second resolution file timestamps.
-
- * The overly large Documentation/config.txt file have been split into
-   million little pieces.  This potentially allows each individual piece
-   to be included into the manual page of the command it affects more easily.
-
- * Replace three string-list instances used as look-up tables in "git
-   fetch" with hashmaps.
-
- * Unify code to read the author-script used in "git am" and the
-   commands that use the sequencer machinery, e.g. "git rebase -i".
-
- * In preparation to the day when we can deprecate and remove the
-   "rebase -p", make sure we can skip and later remove tests for
-   it.
-
- * The history traversal used to implement the tag-following has been
-   optimized by introducing a new helper.
-
- * The helper function to refresh the cached stat information in the
-   in-core index has learned to perform the lstat() part of the
-   operation in parallel on multi-core platforms.
-
- * The code to traverse objects for reachability, used to decide what
-   objects are unreferenced and expendable, have been taught to also
-   consider per-worktree refs of other worktrees as starting points to
-   prevent data loss.
-
- * "git add" needs to internally run "diff-files" equivalent, and the
-   codepath learned the same optimization as "diff-files" has to run
-   lstat(2) in parallel to find which paths have been updated in the
-   working tree.
-
- * The procedure to install dependencies before testing at Travis CI
-   is getting revamped for both simplicity and flexibility, taking
-   advantage of the recent move to the vm-based environment.
-
- * The support for format-patch (and send-email) by the command-line
-   completion script (in contrib/) has been simplified a bit.
-
- * The revision walker machinery learned to take advantage of the
-   commit generation numbers stored in the commit-graph file.
-
- * The codebase has been cleaned up to reduce "#ifndef NO_PTHREADS".
-
- * The way -lcurl library gets linked has been simplified by taking
-   advantage of the fact that we can just ask curl-config command how.
-
- * Various functions have been audited for "-Wunused-parameter" warnings
-   and bugs in them got fixed.
-
- * A sanity check for start-up sequence has been added in the config
-   API codepath.
-
- * The build procedure to link for fuzzing test has been made
-   customizable with a new Makefile variable.
-
- * The way "git rebase" parses and forwards the command line options
-   meant for underlying "git am" has been revamped, which fixed for
-   options with parameters that were not passed correctly.
-
- * Our testing framework uses a special i18n "poisoned localization"
-   feature to find messages that ought to stay constant but are
-   incorrectly marked to be translated.  This feature has been made
-   into a runtime option (it used to be a compile-time option).
-
- * "git push" used to check ambiguities between object-names and
-   refnames while processing the list of refs' old and new values,
-   which was unnecessary (as it knew that it is feeding raw object
-   names).  This has been optimized out.
-
- * The xcurl_off_t() helper function is used to cast size_t to
-   curl_off_t, but some compilers gave warnings against the code to
-   ensure the casting is done without wraparound, when size_t is
-   narrower than curl_off_t.  This warning has been squelched.
-
- * Code preparation to replace ulong vars with size_t vars where
-   appropriate continues.
-
- * The "test installed Git" mode of our test suite has been updated to
-   work better.
-
- * A coding convention around the Coccinelle semantic patches to have
-   two classes to ease code migration process has been proposed and
-   its support has been added to the Makefile.
-
- * The "container" mode of TravisCI is going away.  Our .travis.yml
-   file is getting prepared for the transition.
-   (merge 32ee384be8 ss/travis-ci-force-vm-mode later to maint).
-
- * Our test scripts can now take the '-V' option as a synonym for the
-   '--verbose-log' option.
-   (merge a5f52c6dab sg/test-verbose-log later to maint).
-
-
-Fixes since v2.19
------------------
-
- * "git interpret-trailers" and its underlying machinery had a buggy
-   code that attempted to ignore patch text after commit log message,
-   which triggered in various codepaths that will always get the log
-   message alone and never get such an input.
-   (merge 66e83d9b41 jk/trailer-fixes later to maint).
-
- * Malformed or crafted data in packstream can make our code attempt
-   to read or write past the allocated buffer and abort, instead of
-   reporting an error, which has been fixed.
-
- * "git rebase -i" did not clear the state files correctly when a run
-   of "squash/fixup" is aborted and then the user manually amended the
-   commit instead, which has been corrected.
-   (merge 10d2f35436 js/rebase-i-autosquash-fix later to maint).
-
- * When fsmonitor is in use, after operation on submodules updates
-   .gitmodules, we lost track of the fact that we did so and relied on
-   stale fsmonitor data.
-   (merge 43f1180814 bp/mv-submodules-with-fsmonitor later to maint).
-
- * Fix for a long-standing bug that leaves the index file corrupt when
-   it shrinks during a partial commit.
-   (merge 6c003d6ffb jk/reopen-tempfile-truncate later to maint).
-
- * Further fix for O_APPEND emulation on Windows
-   (merge eeaf7ddac7 js/mingw-o-append later to maint).
-
- * A corner case bugfix in "git rerere" code.
-   (merge ad2bf0d9b4 en/rerere-multi-stage-1-fix later to maint).
-
- * "git add ':(attr:foo)'" is not supported and is supposed to be
-   rejected while the command line arguments are parsed, but we fail
-   to reject such a command line upfront.
-   (merge 84d938b732 nd/attr-pathspec-fix later to maint).
-
- * Recent update broke the reachability algorithm when refs (e.g.
-   tags) that point at objects that are not commit were involved,
-   which has been fixed.
-
- * "git rebase" etc. in Git 2.19 fails to abort when given an empty
-   commit log message as result of editing, which has been corrected.
-   (merge a3ec9eaf38 en/sequencer-empty-edit-result-aborts later to maint).
-
- * The code to backfill objects in lazily cloned repository did not
-   work correctly, which has been corrected.
-   (merge e68302011c jt/lazy-object-fetch-fix later to maint).
-
- * Update error messages given by "git remote" and make them consistent.
-   (merge 5025425dff ms/remote-error-message-update later to maint).
-
- * "git update-ref" learned to make both "--no-deref" and "--stdin"
-   work at the same time.
-   (merge d345e9fbe7 en/update-ref-no-deref-stdin later to maint).
-
- * Recently added "range-diff" had a corner-case bug to cause it
-   segfault, which has been corrected.
-   (merge e467a90c7a tg/range-diff-corner-case-fix later to maint).
-
- * The recently introduced commit-graph auxiliary data is incompatible
-   with mechanisms such as replace & grafts that "breaks" immutable
-   nature of the object reference relationship.  Disable optimizations
-   based on its use (and updating existing commit-graph) when these
-   incompatible features are in use in the repository.
-   (merge 829a321569 ds/commit-graph-with-grafts later to maint).
-
- * The mailmap file update.
-   (merge 255eb03edf jn/mailmap-update later to maint).
-
- * The code in "git status" sometimes hit an assertion failure.  This
-   was caused by a structure that was reused without cleaning the data
-   used for the first run, which has been corrected.
-   (merge 3e73cc62c0 en/status-multiple-renames-to-the-same-target-fix later to maint).
-
- * "git fetch $repo $object" in a partial clone did not correctly
-   fetch the asked-for object that is referenced by an object in
-   promisor packfile, which has been fixed.
-
- * A corner-case bugfix.
-   (merge c5cbb27cb5 sm/show-superproject-while-conflicted later to maint).
-
- * Various fixes to "diff --color-moved-ws".
-
- * A partial clone that is configured to lazily fetch missing objects
-   will on-demand issue a "git fetch" request to the originating
-   repository to fill not-yet-obtained objects.  The request has been
-   optimized for requesting a tree object (and not the leaf blob
-   objects contained in it) by telling the originating repository that
-   no blobs are needed.
-   (merge 4c7f9567ea jt/non-blob-lazy-fetch later to maint).
-
- * The codepath to support the experimental split-index mode had
-   remaining "racily clean" issues fixed.
-   (merge 4c490f3d32 sg/split-index-racefix later to maint).
-
- * "git log --graph" showing an octopus merge sometimes miscounted the
-   number of display columns it is consuming to show the merge and its
-   parent commits, which has been corrected.
-   (merge 04005834ed np/log-graph-octopus-fix later to maint).
-
- * "git range-diff" did not work well when the compared ranges had
-   changes in submodules and the "--submodule=log" was used.
-
- * The implementation of run_command() API on the UNIX platforms had a
-   bug that caused a command not on $PATH to be found in the current
-   directory.
-   (merge f67b980771 jk/run-command-notdot later to maint).
-
- * A mutex used in "git pack-objects" were not correctly initialized
-   and this caused "git repack" to dump core on Windows.
-   (merge 34204c8166 js/pack-objects-mutex-init-fix later to maint).
-
- * Under certain circumstances, "git diff D:/a/b/c D:/a/b/d" on
-   Windows would strip initial parts from the paths because they
-   were not recognized as absolute, which has been corrected.
-   (merge ffd04e92e2 js/diff-notice-has-drive-prefix later to maint).
-
- * The receive.denyCurrentBranch=updateInstead codepath kicked in even
-   when the push should have been rejected due to other reasons, such
-   as it does not fast-forward or the update-hook rejects it, which
-   has been corrected.
-   (merge b072a25fad jc/receive-deny-current-branch-fix later to maint).
-
- * The logic to determine the archive type "git archive" uses did not
-   correctly kick in for "git archive --remote", which has been
-   corrected.
-
- * "git repack" in a shallow clone did not correctly update the
-   shallow points in the repository, leading to a repository that
-   does not pass fsck.
-   (merge 5dcfbf564c js/shallow-and-fetch-prune later to maint).
-
- * Some codepaths failed to form a proper URL when .gitmodules record
-   the URL to a submodule repository as relative to the repository of
-   superproject, which has been corrected.
-   (merge e0a862fdaf sb/submodule-url-to-absolute later to maint).
-
- * "git fetch" over protocol v2 into a shallow repository failed to
-   fetch full history behind a new tip of history that was diverged
-   before the cut-off point of the history that was previously fetched
-   shallowly.
-
- * The command line completion machinery (in contrib/) has been
-   updated to allow the completion script to tweak the list of options
-   that are reported by the parse-options machinery correctly.
-   (merge 276b49ff34 nd/completion-negation later to maint).
-
- * Operations on promisor objects make sense in the context of only a
-   small subset of the commands that internally use the revisions
-   machinery, but the "--exclude-promisor-objects" option were taken
-   and led to nonsense results by commands like "log", to which it
-   didn't make much sense.  This has been corrected.
-   (merge 669b1d2aae md/exclude-promisor-objects-fix later to maint).
-
- * A regression in Git 2.12 era made "git fsck" fall into an infinite
-   loop while processing truncated loose objects.
-   (merge 18ad13e5b2 jk/detect-truncated-zlib-input later to maint).
-
- * "git ls-remote $there foo" was broken by recent update for the
-   protocol v2 and stopped showing refs that match 'foo' that are not
-   refs/{heads,tags}/foo, which has been fixed.
-   (merge 6a139cdd74 jk/proto-v2-ref-prefix-fix later to maint).
-
- * Additional comment on a tricky piece of code to help developers.
-   (merge 0afbe3e806 jk/stream-pack-non-delta-clarification later to maint).
-
- * A couple of tests used to leave the repository in a state that is
-   deliberately corrupt, which have been corrected.
-   (merge aa984dbe5e ab/pack-tests-cleanup later to maint).
-
- * The submodule support has been updated to read from the blob at
-   HEAD:.gitmodules when the .gitmodules file is missing from the
-   working tree.
-   (merge 2b1257e463 ao/submodule-wo-gitmodules-checked-out later to maint).
-
- * "git fetch" was a bit loose in parsing responses from the other side
-   when talking over the protocol v2.
-
- * "git rev-parse --exclude=* --branches --branches"  (i.e. first
-   saying "add only things that do not match '*' out of all branches"
-   and then adding all branches, without any exclusion this time)
-   worked as expected, but "--exclude=* --all --all" did not work the
-   same way, which has been fixed.
-   (merge 5221048092 ag/rev-parse-all-exclude-fix later to maint).
-
- * "git send-email --transfer-encoding=..." in recent versions of Git
-   sometimes produced an empty "Content-Transfer-Encoding:" header,
-   which has been corrected.
-   (merge 3c88e46f1a al/send-email-auto-cte-fixup later to maint).
-
- * The interface into "xdiff" library used to discover the offset and
-   size of a generated patch hunk by first formatting it into the
-   textual hunk header "@@ -n,m +k,l @@" and then parsing the numbers
-   out.  A new interface has been introduced to allow callers a more
-   direct access to them.
-   (merge 5eade0746e jk/xdiff-interface later to maint).
-
- * Pathspec matching against a tree object were buggy when negative
-   pathspec elements were involved, which has been fixed.
-   (merge b7845cebc0 nd/tree-walk-path-exclusion later to maint).
-
- * "git merge" and "git pull" that merges into an unborn branch used
-   to completely ignore "--verify-signatures", which has been
-   corrected.
-   (merge 01a31f3bca jk/verify-sig-merge-into-void later to maint).
-
- * "git rebase --autostash" did not correctly re-attach the HEAD at times.
-
- * "rev-parse --exclude=<pattern> --branches=<pattern>" etc. did not
-   quite work, which has been corrected.
-   (merge 9ab9b5df0e ra/rev-parse-exclude-glob later to maint).
-
- * When editing a patch in a "git add -i" session, a hunk could be
-   made to no-op.  The "git apply" program used to reject a patch with
-   such a no-op hunk to catch user mistakes, but it is now updated to
-   explicitly allow a no-op hunk in an edited patch.
-   (merge 22cb3835b9 js/apply-recount-allow-noop later to maint).
-
- * The URL to an MSDN page in a comment has been updated.
-   (merge 2ef2ae2917 js/mingw-msdn-url later to maint).
-
- * "git ls-remote --sort=<thing>" can feed an object that is not yet
-   available into the comparison machinery and segfault, which has
-   been corrected to check such a request upfront and reject it.
-
- * When "git bundle" aborts due to an empty commit ranges
-   (i.e. resulting in an empty pack), it left a file descriptor to an
-   lockfile open, which resulted in leftover lockfile on Windows where
-   you cannot remove a file with an open file descriptor.  This has
-   been corrected.
-   (merge 2c8ee1f53c jk/close-duped-fd-before-unlock-for-bundle later to maint).
-
- * "git format-patch --stat=<width>" can be used to specify the width
-   used by the diffstat (shown in the cover letter).
-   (merge 284aeb7e60 nd/format-patch-cover-letter-stat-width later to maint).
-
- * The way .git/index and .git/sharedindex* files were initially
-   created gave these files different perm bits until they were
-   adjusted for shared repository settings.  This was made consistent.
-   (merge c9d6c78870 cc/shared-index-permbits later to maint).
-
- * "git rebase --stat" to transplant a piece of history onto a totally
-   unrelated history were not working before and silently showed wrong
-   result.  With the recent reimplementation in C, it started to instead
-   die with an error message, as the original logic was not prepared
-   to cope with this case.  This has now been fixed.
-
- * The advice message to tell the user to migrate an existing graft
-   file to the replace system when a graft file was read was shown
-   even when "git replace --convert-graft-file" command, which is the
-   way the message suggests to use, was running, which made little
-   sense.
-   (merge 8821e90a09 ab/replace-graft-with-replace-advice later to maint).
-
- * "git diff --raw" lost ellipses to adjust the output columns for
-   some time now, but the documentation still showed them.
-
- * Code cleanup, docfix, build fix, etc.
-   (merge 96a7501aad ts/doc-build-manpage-xsl-quietly later to maint).
-   (merge b9b07efdb2 tg/conflict-marker-size later to maint).
-   (merge fa0aeea770 sg/doc-trace-appends later to maint).
-   (merge d64324cb60 tb/void-check-attr later to maint).
-   (merge c3b9bc94b9 en/double-semicolon-fix later to maint).
-   (merge 79336116f5 sg/t3701-tighten-trace later to maint).
-   (merge 801fa63a90 jk/dev-build-format-security later to maint).
-   (merge 0597dd62ba sb/string-list-remove-unused later to maint).
-   (merge db2d36fad8 bw/protocol-v2 later to maint).
-   (merge 456d7cd3a9 sg/split-index-test later to maint).
-   (merge 7b6057c852 tq/refs-internal-comment-fix later to maint).
-   (merge 29e8dc50ad tg/t5551-with-curl-7.61.1 later to maint).
-   (merge 55f6bce2c9 fe/doc-updates later to maint).
-   (merge 7987d2232d jk/check-everything-connected-is-long-gone later to maint).
-   (merge 4ba3c9be47 dz/credential-doc-url-matching-rules later to maint).
-   (merge 4c399442f7 ma/commit-graph-docs later to maint).
-   (merge fc0503b04e ma/t1400-undebug-test later to maint).
-   (merge e56b53553a nd/packobjectshook-doc-fix later to maint).
-   (merge c56170a0c4 ma/mailing-list-address-in-git-help later to maint).
-   (merge 6e8fc70fce rs/sequencer-oidset-insert-avoids-dups later to maint).
-   (merge ad0b8f9575 mw/doc-typofixes later to maint).
-   (merge d9f079ad1a jc/how-to-document-api later to maint).
-   (merge b1492bf315 ma/t7005-bash-workaround later to maint).
-   (merge ac1f98a0df du/rev-parse-is-plumbing later to maint).
-   (merge ca8ed443a5 mm/doc-no-dashed-git later to maint).
-   (merge ce366a8144 du/get-tar-commit-id-is-plumbing later to maint).
-   (merge 61018fe9e0 du/cherry-is-plumbing later to maint).
-   (merge c7e5fe79b9 sb/strbuf-h-update later to maint).
-   (merge 8d2008196b tq/branch-create-wo-branch-get later to maint).
-   (merge 2e3c894f4b tq/branch-style-fix later to maint).
-   (merge c5d844af9c sg/doc-show-branch-typofix later to maint).
-   (merge 081d91618b ah/doc-updates later to maint).
-   (merge b84c783882 jc/cocci-preincr later to maint).
-   (merge 5e495f8122 uk/merge-subtree-doc-update later to maint).
-   (merge aaaa881822 jk/uploadpack-packobjectshook-fix later to maint).
-   (merge 3063477445 tb/char-may-be-unsigned later to maint).
-   (merge 8c64bc9420 sg/test-rebase-editor-fix later to maint).
-   (merge 71571cd7d6 ma/sequencer-do-reset-saner-loop-termination later to maint).
-   (merge 9a4cb8781e cb/notes-freeing-always-null-fix later to maint).
-   (merge 3006f5ee16 ma/reset-doc-rendering-fix later to maint).
-   (merge 4c2eb06419 sg/daemon-test-signal-fix later to maint).
-   (merge d27525e519 ss/msvc-strcasecmp later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.20.1.txt b/third_party/git/Documentation/RelNotes/2.20.1.txt
deleted file mode 100644
index dcba888dba4d..000000000000
--- a/third_party/git/Documentation/RelNotes/2.20.1.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Git v2.20.1 Release Notes
-=========================
-
-This release is primarily to fix brown-paper-bag breakages in the
-2.20.0 release.
-
-Fixes since v2.20
------------------
-
- * A few newly added tests were not portable and caused minority
-   platforms to report false breakages, which have been fixed.
-
- * Portability fix for a recent update to parse-options API.
-
- * "git help -a" did not work well when an overly long alias is
-   defined, which has been corrected.
-
- * A recent update accidentally squelched an error message when the
-   run_command API failed to run a missing command, which has been
-   corrected.
diff --git a/third_party/git/Documentation/RelNotes/2.20.2.txt b/third_party/git/Documentation/RelNotes/2.20.2.txt
deleted file mode 100644
index 8e680cb9fbf4..000000000000
--- a/third_party/git/Documentation/RelNotes/2.20.2.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Git v2.20.2 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.6, v2.15.4
-and in v2.17.3, addressing the security issues CVE-2019-1348,
-CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352,
-CVE-2019-1353, CVE-2019-1354, and CVE-2019-1387; see the release notes
-for those versions for details.
-
-The change to disallow `submodule.<name>.update=!command` entries in
-`.gitmodules` which was introduced v2.15.4 (and for which v2.17.3
-added explicit fsck checks) fixes the vulnerability in v2.20.x where a
-recursive clone followed by a submodule update could execute code
-contained within the repository without the user explicitly having
-asked for that (CVE-2019-19604).
-
-Credit for finding this vulnerability goes to Joern Schneeweisz,
-credit for the fixes goes to Jonathan Nieder.
diff --git a/third_party/git/Documentation/RelNotes/2.20.3.txt b/third_party/git/Documentation/RelNotes/2.20.3.txt
deleted file mode 100644
index f6eccd103b69..000000000000
--- a/third_party/git/Documentation/RelNotes/2.20.3.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.20.3 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.4; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.20.4.txt b/third_party/git/Documentation/RelNotes/2.20.4.txt
deleted file mode 100644
index 5a9e24e4709c..000000000000
--- a/third_party/git/Documentation/RelNotes/2.20.4.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.20.4 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.5; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.21.0.txt b/third_party/git/Documentation/RelNotes/2.21.0.txt
deleted file mode 100644
index 7a49deddf32a..000000000000
--- a/third_party/git/Documentation/RelNotes/2.21.0.txt
+++ /dev/null
@@ -1,451 +0,0 @@
-Git 2.21 Release Notes
-======================
-
-Backward Compatibility Notes
-----------------------------
-
- * Historically, the "-m" (mainline) option can only be used for "git
-   cherry-pick" and "git revert" when working with a merge commit.
-   This version of Git no longer warns or errors out when working with
-   a single-parent commit, as long as the argument to the "-m" option
-   is 1 (i.e. it has only one parent, and the request is to pick or
-   revert relative to that first parent).  Scripts that relied on the
-   behaviour may get broken with this change.
-
-
-Updates since v2.20
--------------------
-
-UI, Workflows & Features
-
- * The "http.version" configuration variable can be used with recent
-   enough versions of cURL library to force the version of HTTP used
-   to talk when fetching and pushing.
-
- * Small fixes and features for fast-export and fast-import, mostly on
-   the fast-export side has been made.
-
- * "git push $there $src:$dst" rejects when $dst is not a fully
-   qualified refname and it is not clear what the end user meant.  The
-   codepath has been taught to give a clearer error message, and also
-   guess where the push should go by taking the type of the pushed
-   object into account (e.g. a tag object would want to go under
-   refs/tags/).
-
- * "git checkout [<tree-ish>] path..." learned to report the number of
-   paths that have been checked out of the index or the tree-ish,
-   which gives it the same degree of noisy-ness as the case in which
-   the command checks out a branch.  "git checkout -m <pathspec>" to
-   undo conflict resolution gives a similar message.
-
- * "git quiltimport" learned "--keep-non-patch" option.
-
- * "git worktree remove" and "git worktree move" refused to work when
-   there is a submodule involved.  This has been loosened to ignore
-   uninitialized submodules.
-
- * "git cherry-pick -m1" was forbidden when picking a non-merge
-   commit, even though there _is_ parent number 1 for such a commit.
-   This was done to avoid mistakes back when "cherry-pick" was about
-   picking a single commit, but is no longer useful with "cherry-pick"
-   that can pick a range of commits.  Now the "-m$num" option is
-   allowed when picking any commit, as long as $num names an existing
-   parent of the commit.
-
- * Update "git multimail" from the upstream.
-
- * "git p4" update.
-
- * The "--format=<placeholder>" option of for-each-ref, branch and tag
-   learned to show a few more traits of objects that can be learned by
-   the object_info API.
-
- * "git rebase -i" learned to re-execute a command given with 'exec'
-   to run after it failed the last time.
-
- * "git diff --color-moved-ws" updates.
-
- * Custom userformat "log --format" learned %S atom that stands for
-   the tip the traversal reached the commit from, i.e. --source.
-
- * "git instaweb" learned to drive http.server that comes with
-   "batteries included" Python installation (both Python2 & 3).
-
- * A new encoding UTF-16LE-BOM has been invented to force encoding to
-   UTF-16 with BOM in little endian byte order, which cannot be directly
-   generated by using iconv.
-
- * A new date format "--date=human" that morphs its output depending
-   on how far the time is from the current time has been introduced.
-   "--date=auto:human" can be used to use this new format (or any
-   existing format) when the output is going to the pager or to the
-   terminal, and otherwise the default format.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * Code clean-up with optimization for the codepath that checks
-   (non-)existence of loose objects.
-
- * More codepaths have become aware of working with in-core repository
-   instances other than the default "the_repository".
-
- * The "strncat()" function is now among the banned functions.
-
- * Portability updates for the HPE NonStop platform.
-
- * Earlier we added "-Wformat-security" to developer builds, assuming
-   that "-Wall" (which includes "-Wformat" which in turn is required
-   to use "-Wformat-security") is always in effect.  This is not true
-   when config.mak.autogen is in use, unfortunately.  This has been
-   fixed by unconditionally adding "-Wall" to developer builds.
-
- * The loose object cache used to optimize existence look-up has been
-   updated.
-
- * Flaky tests can now be repeatedly run under load with the
-   "--stress" option.
-
- * Documentation/Makefile is getting prepared for manpage
-   localization.
-
- * "git fetch-pack" now can talk the version 2 protocol.
-
- * sha-256 hash has been added and plumbed through the code to allow
-   building Git with the "NewHash".
-
- * Debugging help for http transport.
-
- * "git fetch --deepen=<more>" has been corrected to work over v2
-   protocol.
-
- * The code to walk tree objects has been taught that we may be
-   working with object names that are not computed with SHA-1.
-
- * The in-core repository instances are passed through more codepaths.
-
- * Update the protocol message specification to allow only the limited
-   use of scaled quantities.  This is to ensure potential compatibility
-   issues will not get out of hand.
-
- * Micro-optimize the code that prepares commit objects to be walked
-   by "git rev-list" when the commit-graph is available.
-
- * "git fetch" and "git upload-pack" learned to send all exchanges over
-   the sideband channel while talking the v2 protocol.
-
- * The codepath to write out commit-graph has been optimized by
-   following the usual pattern of visiting objects in in-pack order.
-
- * The codepath to show progress meter while writing out commit-graph
-   file has been improved.
-
- * Cocci rules have been updated to encourage use of strbuf_addbuf().
-
- * "git rebase --merge" has been reimplemented by reusing the internal
-   machinery used for "git rebase -i".
-
- * More code in "git bisect" has been rewritten in C.
-
- * Instead of going through "git-rebase--am" scriptlet to use the "am"
-   backend, the built-in version of "git rebase" learned to drive the
-   "am" backend directly.
-
- * The assumption to work on the single "in-core index" instance has
-   been reduced from the library-ish part of the codebase.
-
- * The test lint learned to catch non-portable "sed" options.
-
- * "git pack-objects" learned another algorithm to compute the set of
-   objects to send, that trades the resulting packfile off to save
-   traversal cost to favor small pushes.
-
- * The travis CI scripts have been corrected to build Git with the
-   compiler(s) of our choice.
-
- * "git submodule update" learned to abort early when core.worktree
-   for the submodule is not set correctly to prevent spreading damage.
-
- * Test suite has been adjusted to run on Azure Pipeline.
-
- * Running "Documentation/doc-diff x" from anywhere other than the
-   top-level of the working tree did not show the usage string
-   correctly, which has been fixed.
-
- * Use of the sparse tool got easier to customize from the command
-   line to help developers.
-
- * A new target "coverage-prove" to run the coverage test under
-   "prove" has been added.
-
- * A flakey "p4" test has been removed.
-
- * The code and tests assume that the system supplied iconv() would
-   always use BOM in its output when asked to encode to UTF-16 (or
-   UTF-32), but apparently some implementations output big-endian
-   without BOM.  A compile-time knob has been added to help such
-   systems (e.g. NonStop) to add BOM to the output to increase
-   portability.
-
-
-Fixes since v2.20
------------------
-
- * Updates for corner cases in merge-recursive.
-   (merge cc4cb0902c en/merge-path-collision later to maint).
-
- * "git checkout frotz" (without any double-dash) avoids ambiguity by
-   making sure 'frotz' cannot be interpreted as a revision and as a
-   path at the same time.  This safety has been updated to check also
-   a unique remote-tracking branch 'frotz' in a remote, when dwimming
-   to create a local branch 'frotz' out of a remote-tracking branch
-   'frotz' from a remote.
-   (merge be4908f103 nd/checkout-dwim-fix later to maint).
-
- * Refspecs configured with "git -c var=val clone" did not propagate
-   to the resulting repository, which has been corrected.
-   (merge 7eae4a3ac4 sg/clone-initial-fetch-configuration later to maint).
-
- * A properly configured username/email is required under
-   user.useConfigOnly in order to create commits; now "git stash"
-   (even though it creates commit objects to represent stash entries)
-   command is exempt from the requirement.
-   (merge 3bc2111fc2 sd/stash-wo-user-name later to maint).
-
- * The http-backend CGI process did not correctly clean up the child
-   processes it spawns to run upload-pack etc. when it dies itself,
-   which has been corrected.
-   (merge 02818a98d7 mk/http-backend-kill-children-before-exit later to maint).
-
- * "git rev-list --exclude-promisor-objects" had to take an object
-   that does not exist locally (and is lazily available) from the
-   command line without barfing, but the code dereferenced NULL.
-   (merge 4cf67869b2 md/list-lazy-objects-fix later to maint).
-
- * The traversal over tree objects has learned to honor
-   ":(attr:label)" pathspec match, which has been implemented only for
-   enumerating paths on the filesystem.
-   (merge 5a0b97b34c nd/attr-pathspec-in-tree-walk later to maint).
-
- * BSD port updates.
-   (merge 4e3ecbd439 cb/openbsd-allows-reading-directory later to maint).
-   (merge b6bdc2a0f5 cb/t5004-empty-tar-archive-fix later to maint).
-   (merge 82cbc8cde2 cb/test-lint-cp-a later to maint).
-
- * Lines that begin with a certain keyword that come over the wire, as
-   well as lines that consist only of one of these keywords, ought to
-   be painted in color for easier eyeballing, but the latter was
-   broken ever since the feature was introduced in 2.19, which has
-   been corrected.
-   (merge 1f67290450 hn/highlight-sideband-keywords later to maint).
-
- * "git log -G<regex>" looked for a hunk in the "git log -p" patch
-   output that contained a string that matches the given pattern.
-   Optimize this code to ignore binary files, which by default will
-   not show any hunk that would match any pattern (unless textconv or
-   the --text option is in effect, that is).
-   (merge e0e7cb8080 tb/log-G-binary later to maint).
-
- * "git submodule update" ought to use a single job unless asked, but
-   by mistake used multiple jobs, which has been fixed.
-   (merge e3a9d1aca9 sb/submodule-fetchjobs-default-to-one later to maint).
-
- * "git stripspace" should be usable outside a git repository, but
-   under the "-s" or "-c" mode, it didn't.
-   (merge 957da75802 jn/stripspace-wo-repository later to maint).
-
- * Some of the documentation pages formatted incorrectly with
-   Asciidoctor, which have been fixed.
-   (merge b62eb1d2f4 ma/asciidoctor later to maint).
-
- * The core.worktree setting in a submodule repository should not be
-   pointing at a directory when the submodule loses its working tree
-   (e.g. getting deinit'ed), but the code did not properly maintain
-   this invariant.
-
- * With zsh, "git cmd path<TAB>" was completed to "git cmd path name"
-   when the completed path has a special character like SP in it,
-   without any attempt to keep "path name" a single filename.  This
-   has been fixed to complete it to "git cmd path\ name" just like
-   Bash completion does.
-
- * The test suite tried to see if it is run under bash, but the check
-   itself failed under some other implementations of shell (notably
-   under NetBSD).  This has been corrected.
-   (merge 54ea72f09c sg/test-bash-version-fix later to maint).
-
- * "git gc" and "git repack" did not close the open packfiles that
-   they found unneeded before removing them, which didn't work on a
-   platform incapable of removing an open file.  This has been
-   corrected.
-   (merge 5bdece0d70 js/gc-repack-close-before-remove later to maint).
-
- * The code to drive GIT_EXTERNAL_DIFF command relied on the string
-   returned from getenv() to be non-volatile, which is not true, that
-   has been corrected.
-   (merge 6776a84dae kg/external-diff-save-env later to maint).
-
- * There were many places the code relied on the string returned from
-   getenv() to be non-volatile, which is not true, that have been
-   corrected.
-   (merge 0da0e9268b jk/save-getenv-result later to maint).
-
- * The v2 upload-pack protocol implementation failed to honor
-   hidden-ref configuration, which has been corrected.
-   (merge e20b4192a3 jk/proto-v2-hidden-refs-fix later to maint).
-
- * "git fetch --recurse-submodules" may not fetch the necessary commit
-   that is bound to the superproject, which is getting corrected.
-   (merge be76c21282 sb/submodule-recursive-fetch-gets-the-tip later to maint).
-
- * "git rebase" internally runs "checkout" to switch between branches,
-   and the command used to call the post-checkout hook, but the
-   reimplementation stopped doing so, which is getting fixed.
-
- * "git add -e" got confused when the change it wants to let the user
-   edit is smaller than the previous change that was left over in a
-   temporary file.
-   (merge fa6f225e01 js/add-e-clear-patch-before-stating later to maint).
-
- * "git p4" failed to update a shelved change when there were moved
-   files, which has been corrected.
-   (merge 7a10946ab9 ld/git-p4-shelve-update-fix later to maint).
-
- * The codepath to read from the commit-graph file attempted to read
-   past the end of it when the file's table-of-contents was corrupt.
-
- * The compat/obstack code had casts that -Wcast-function-type
-   compilation option found questionable.
-   (merge 764473d257 sg/obstack-cast-function-type-fix later to maint).
-
- * An obvious typo in an assertion error message has been fixed.
-   (merge 3c27e2e059 cc/test-ref-store-typofix later to maint).
-
- * In Git for Windows, "git clone \\server\share\path" etc. that uses
-   UNC paths from command line had bad interaction with its shell
-   emulation.
-
- * "git add --ignore-errors" did not work as advertised and instead
-   worked as an unintended synonym for "git add --renormalize", which
-   has been fixed.
-   (merge e2c2a37545 jk/add-ignore-errors-bit-assignment-fix later to maint).
-
- * On a case-insensitive filesystem, we failed to compare the part of
-   the path that is above the worktree directory in an absolute
-   pathname, which has been corrected.
-
- * Asking "git check-attr" about a macro (e.g. "binary") on a specific
-   path did not work correctly, even though "git check-attr -a" listed
-   such a macro correctly.  This has been corrected.
-   (merge 7b95849be4 jk/attr-macro-fix later to maint).
-
- * "git pack-objects" incorrectly used uninitialized mutex, which has
-   been corrected.
-   (merge edb673cf10 ph/pack-objects-mutex-fix later to maint).
-
- * "git checkout -b <new> [HEAD]" to create a new branch from the
-   current commit and check it out ought to be a no-op in the index
-   and the working tree in normal cases, but there are corner cases
-   that do require updates to the index and the working tree.  Running
-   it immediately after "git clone --no-checkout" is one of these
-   cases that an earlier optimization kicked in incorrectly, which has
-   been fixed.
-   (merge 8424bfd45b bp/checkout-new-branch-optim later to maint).
-
- * "git diff --color-moved --cc --stat -p" did not work well due to
-   funny interaction between a bug in color-moved and the rest, which
-   has been fixed.
-   (merge dac03b5518 jk/diff-cc-stat-fixes later to maint).
-
- * When GIT_SEQUENCE_EDITOR is set, the command was incorrectly
-   started when modes of "git rebase" that implicitly uses the
-   machinery for the interactive rebase are run, which has been
-   corrected.
-   (merge 891d4a0313 pw/no-editor-in-rebase-i-implicit later to maint).
-
- * The commit-graph facility did not work when in-core objects that
-   are promoted from unknown type to commit (e.g. a commit that is
-   accessed via a tag that refers to it) were involved, which has been
-   corrected.
-   (merge 4468d4435c sg/object-as-type-commit-graph-fix later to maint).
-
- * "git fetch" output cleanup.
-   (merge dc40b24df4 nd/fetch-compact-update later to maint).
-
- * "git cat-file --batch" reported a dangling symbolic link by
-   mistake, when it wanted to report that a given name is ambiguous.
-
- * Documentation around core.crlf has been updated.
-   (merge c9446f0504 jk/autocrlf-overrides-eol-doc later to maint).
-
- * The documentation of "git commit-tree" said that the command
-   understands "--gpg-sign" in addition to "-S", but the command line
-   parser did not know about the longhand, which has been corrected.
-
- * "git rebase -x $cmd" did not reject multi-line command, even though
-   the command is incapable of handling such a command.  It now is
-   rejected upfront.
-   (merge c762aada1a pw/rebase-x-sanity-check later to maint).
-
- * Output from "git help" was not correctly aligned, which has been
-   fixed.
-   (merge 6195a76da4 nd/help-align-command-desc later to maint).
-
- * The "git submodule summary" subcommand showed shortened commit
-   object names by mechanically truncating them at 7-hexdigit, which
-   has been improved to let "rev-parse --short" scale the length of
-   the abbreviation with the size of the repository.
-   (merge 0586a438f6 sh/submodule-summary-abbrev-fix later to maint).
-
- * The way the OSX build jobs updates its build environment used the
-   "--quiet" option to "brew update" command, but it wasn't all that
-   quiet to be useful.  The use of the option has been replaced with
-   an explicit redirection to the /dev/null (which incidentally would
-   have worked around a breakage by recent updates to homebrew, which
-   has fixed itself already).
-   (merge a1ccaedd62 sg/travis-osx-brew-breakage-workaround later to maint).
-
- * "git --work-tree=$there --git-dir=$here describe --dirty" did not
-   work correctly as it did not pay attention to the location of the
-   worktree specified by the user by mistake, which has been
-   corrected.
-   (merge c801170b0c ss/describe-dirty-in-the-right-directory later to maint).
-
- * "git fetch" over protocol v2 that needs to make a second connection
-   to backfill tags did not clear a variable that holds shallow
-   repository information correctly, leading to an access of freed
-   piece of memory.
-
- * Some errors from the other side coming over smart HTTP transport
-   were not noticed, which has been corrected.
-
- * Code cleanup, docfix, build fix, etc.
-   (merge 89ba9a79ae hb/t0061-dot-in-path-fix later to maint).
-   (merge d173e799ea sb/diff-color-moved-config-option-fixup later to maint).
-   (merge a8f5a59067 en/directory-renames-nothanks-doc-update later to maint).
-   (merge ec36c42a63 nd/indentation-fix later to maint).
-   (merge f116ee21cd do/gitweb-strict-export-conf-doc later to maint).
-   (merge 112ea42663 fd/gitweb-snapshot-conf-doc-fix later to maint).
-   (merge 1cadad6f65 tb/use-common-win32-pathfuncs-on-cygwin later to maint).
-   (merge 57e9dcaa65 km/rebase-doc-typofix later to maint).
-   (merge b8b4cb27e6 ds/gc-doc-typofix later to maint).
-   (merge 3b3357626e nd/style-opening-brace later to maint).
-   (merge b4583d5595 es/doc-worktree-guessremote-config later to maint).
-   (merge cce99cd8c6 ds/commit-graph-assert-missing-parents later to maint).
-   (merge 0650614982 cy/completion-typofix later to maint).
-   (merge 6881925ef5 rs/sha1-file-close-mapped-file-on-error later to maint).
-   (merge bd8d6f0def en/show-ref-doc-fix later to maint).
-   (merge 1747125e2c cc/partial-clone-doc-typofix later to maint).
-   (merge e01378753d cc/fetch-error-message-fix later to maint).
-   (merge 54e8c11215 jk/remote-insteadof-cleanup later to maint).
-   (merge d609615f48 js/test-git-installed later to maint).
-   (merge ba170517be ja/doc-style-fix later to maint).
-   (merge 86fb1c4e77 km/init-doc-typofix later to maint).
-   (merge 5cfd4a9d10 nd/commit-doc later to maint).
-   (merge 9fce19a431 ab/diff-tree-doc-fix later to maint).
-   (merge 2e285e7803 tz/gpg-test-fix later to maint).
-   (merge 5427de960b kl/pretty-doc-markup-fix later to maint).
-   (merge 3815f64b0d js/mingw-host-cpu later to maint).
-   (merge 5fe81438b5 rj/sequencer-sign-off-header-static later to maint).
-   (merge 18a4f6be6b nd/fileno-may-be-macro later to maint).
-   (merge 99e9ab54ab kd/t0028-octal-del-is-377-not-777 later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.21.1.txt b/third_party/git/Documentation/RelNotes/2.21.1.txt
deleted file mode 100644
index b7594151e4c8..000000000000
--- a/third_party/git/Documentation/RelNotes/2.21.1.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Git v2.21.1 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.6, v2.15.4,
-v2.17.3 and in v2.20.2, addressing the security issues CVE-2019-1348,
-CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352,
-CVE-2019-1353, CVE-2019-1354, CVE-2019-1387, and CVE-2019-19604;
-see the release notes for those versions for details.
-
-Additionally, this version also includes a couple of fixes for the
-Windows-specific quoting of command-line arguments when Git executes
-a Unix shell on Windows.
diff --git a/third_party/git/Documentation/RelNotes/2.21.2.txt b/third_party/git/Documentation/RelNotes/2.21.2.txt
deleted file mode 100644
index a0fb83bb5341..000000000000
--- a/third_party/git/Documentation/RelNotes/2.21.2.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.21.2 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.4; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.21.3.txt b/third_party/git/Documentation/RelNotes/2.21.3.txt
deleted file mode 100644
index 2ca0aa5c62af..000000000000
--- a/third_party/git/Documentation/RelNotes/2.21.3.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.21.3 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.5; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.22.0.txt b/third_party/git/Documentation/RelNotes/2.22.0.txt
deleted file mode 100644
index 91e6ae9887f5..000000000000
--- a/third_party/git/Documentation/RelNotes/2.22.0.txt
+++ /dev/null
@@ -1,597 +0,0 @@
-Git 2.22 Release Notes
-======================
-
-Updates since v2.21
--------------------
-
-Backward compatibility note
-
- * The filter specification "--filter=sparse:path=<path>" used to
-   create a lazy/partial clone has been removed.  Using a blob that is
-   part of the project as sparse specification is still supported with
-   the "--filter=sparse:oid=<blob>" option.
-
-UI, Workflows & Features
-
- * "git checkout --no-overlay" can be used to trigger a new mode of
-   checking out paths out of the tree-ish, that allows paths that
-   match the pathspec that are in the current index and working tree
-   and are not in the tree-ish.
-
- * The %(trailers) formatter in "git log --format=..."  now allows to
-   optionally pick trailers selectively by keyword, show only values,
-   etc.
-
- * Four new configuration variables {author,committer}.{name,email}
-   have been introduced to override user.{name,email} in more specific
-   cases.
-
- * Command-line completion (in contrib/) learned to tab-complete the
-   "git submodule absorbgitdirs" subcommand.
-
- * "git branch" learned a new subcommand "--show-current".
-
- * Output from "diff --cc" did not show the original paths when the
-   merge involved renames.  A new option adds the paths in the
-   original trees to the output.
-
- * The command line completion (in contrib/) has been taught to
-   complete more subcommand parameters.
-
- * The final report from "git bisect" used to show the suspected
-   culprit using a raw "diff-tree", with which there is no output for
-   a merge commit.  This has been updated to use a more modern and
-   human readable output that still is concise enough.
-
- * "git rebase --rebase-merges" replaces its old "--preserve-merges"
-   option; the latter is now marked as deprecated.
-
- * Error message given while cloning with --recurse-submodules has
-   been updated.
-
- * The completion helper code now pays attention to repository-local
-   configuration (when available), which allows --list-cmds to honour
-   a repository specific setting of completion.commands, for example.
-
- * "git mergetool" learned to offer Sublime Merge (smerge) as one of
-   its backends.
-
- * A new hook "post-index-change" is called when the on-disk index
-   file changes, which can help e.g. a virtualized working tree
-   implementation.
-
- * "git difftool" can now run outside a repository.
-
- * "git checkout -m <other>" was about carrying the differences
-   between HEAD and the working-tree files forward while checking out
-   another branch, and ignored the differences between HEAD and the
-   index.  The command has been taught to abort when the index and the
-   HEAD are different.
-
- * A progress indicator has been added to the "index-pack" step, which
-   often makes users wait for completion during "git clone".
-
- * "git submodule" learns "set-branch" subcommand that allows the
-   submodule.*.branch settings to be modified.
-
- * "git merge-recursive" backend recently learned a new heuristics to
-   infer file movement based on how other files in the same directory
-   moved.  As this is inherently less robust heuristics than the one
-   based on the content similarity of the file itself (rather than
-   based on what its neighbours are doing), it sometimes gives an
-   outcome unexpected by the end users.  This has been toned down to
-   leave the renamed paths in higher/conflicted stages in the index so
-   that the user can examine and confirm the result.
-
- * "git tag" learned to give an advice suggesting it might be a
-   mistake when creating an annotated or signed tag that points at
-   another tag.
-
- * The "git pack-objects" command learned to report the number of
-   objects it packed via the trace2 mechanism.
-
- * The list of conflicted paths shown in the editor while concluding a
-   conflicted merge was shown above the scissors line when the
-   clean-up mode is set to "scissors", even though it was commented
-   out just like the list of updated paths and other information to
-   help the user explain the merge better.
-
- * The trace2 tracing facility learned to auto-generate a filename
-   when told to log to a directory.
-
- * "git clone" learned a new --server-option option when talking over
-   the protocol version 2.
-
- * The connectivity bitmaps are created by default in bare
-   repositories now; also the pathname hash-cache is created by
-   default to avoid making crappy deltas when repacking.
-
- * "git branch new A...B" and "git checkout -b new A...B" have been
-   taught that in their contexts, the notation A...B means "the merge
-   base between these two commits", just like "git checkout A...B"
-   detaches HEAD at that commit.
-
- * Update "git difftool" and "git mergetool" so that the combinations
-   of {diff,merge}.{tool,guitool} configuration variables serve as
-   fallback settings of each other in a sensible order.
-
- * The "--dir-diff" mode of "git difftool" is not useful in "--no-index"
-   mode; they are now explicitly marked as mutually incompatible.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * The diff machinery, one of the oldest parts of the system, which
-   long predates the parse-options API, uses fairly long and complex
-   handcrafted option parser.  This is being rewritten to use the
-   parse-options API.
-
- * The implementation of pack-redundant has been updated for
-   performance in a repository with many packfiles.
-
- * A more structured way to obtain execution trace has been added.
-
- * "git prune" has been taught to take advantage of reachability
-   bitmap when able.
-
- * The command line parser of "git commit-tree" has been rewritten to
-   use the parse-options API.
-
- * Suggest GitGitGadget instead of submitGit as a way to submit
-   patches based on GitHub PR to us.
-
- * The test framework has been updated to help developers by making it
-   easier to run most of the tests under different versions of
-   over-the-wire protocols.
-
- * Dev support update to make it easier to compare two formatted
-   results from our documentation.
-
- * The scripted "git rebase" implementation has been retired.
-
- * "git multi-pack-index verify" did not scale well with the number of
-   packfiles, which is being improved.
-
- * "git stash" has been rewritten in C.
-
- * The "check-docs" Makefile target to support developers has been
-   updated.
-
- * The tests have been updated not to rely on the abbreviated option
-   names the parse-options API offers, to protect us from an
-   abbreviated form of an option that used to be unique within the
-   command getting non-unique when a new option that share the same
-   prefix is added.
-
- * The scripted version of "git rebase -i" wrote and rewrote the todo
-   list many times during a single step of its operation, and the
-   recent C-rewrite made a faithful conversion of the logic to C.  The
-   implementation has been updated to carry necessary information
-   around in-core to avoid rewriting the same file over and over
-   unnecessarily.
-
- * Test framework update to more robustly clean up leftover files and
-   processes after tests are done.
-
- * Conversion from unsigned char[20] to struct object_id continues.
-
- * While running "git diff" in a lazy clone, we can upfront know which
-   missing blobs we will need, instead of waiting for the on-demand
-   machinery to discover them one by one.  The code learned to aim to
-   achieve better performance by batching the request for these
-   promised blobs.
-
- * During an initial "git clone --depth=..." partial clone, it is
-   pointless to spend cycles for a large portion of the connectivity
-   check that enumerates and skips promisor objects (which by
-   definition is all objects fetched from the other side).  This has
-   been optimized out.
-
- * Mechanically and systematically drop "extern" from function
-   declaration.
-
- * The script to aggregate perf result unconditionally depended on
-   libjson-perl even though it did not have to, which has been
-   corrected.
-
- * The internal implementation of "git rebase -i" has been updated to
-   avoid forking a separate "rebase--interactive" process.
-
- * Allow DEP and ASLR for Windows build to for security hardening.
-
- * Performance test framework has been broken and measured the version
-   of Git that happens to be on $PATH, not the specified one to
-   measure, for a while, which has been corrected.
-
- * Optionally "make coccicheck" can feed multiple source files to
-   spatch, gaining performance while spending more memory.
-
- * Attempt to use an abbreviated option in "git clone --recurs" is
-   responded by a request to disambiguate between --recursive and
-   --recurse-submodules, which is bad because these two are synonyms.
-   The parse-options API has been extended to define such synonyms
-   more easily and not produce an unnecessary failure.
-
- * A pair of private functions in http.c that had names similar to
-   fread/fwrite did not return the number of elements, which was found
-   to be confusing.
-
- * Update collision-detecting SHA-1 code to build properly on HP-UX.
-
-
-Fixes since v2.21
------------------
-
- * "git prune-packed" did not notice and complain against excess
-   arguments given from the command line, which now it does.
-   (merge 9b0bd87ed2 rj/prune-packed-excess-args later to maint).
-
- * Split-index fix.
-   (merge 6e37c8ed3c nd/split-index-null-base-fix later to maint).
-
- * "git diff --no-index" may still want to access Git goodies like
-   --ext-diff and --textconv, but so far these have been ignored,
-   which has been corrected.
-   (merge 287ab28bfa jk/diff-no-index-initialize later to maint).
-
- * Unify RPC code for smart http in protocol v0/v1 and v2, which fixes
-   a bug in the latter (lack of authentication retry) and generally
-   improves the code base.
-   (merge a97d00799a jt/http-auth-proto-v2-fix later to maint).
-
- * The include file compat/bswap.h has been updated so that it is safe
-   to (accidentally) include it more than once.
-   (merge 33aa579a55 jk/guard-bswap-header later to maint).
-
- * The set of header files used by "make hdr-check" unconditionally
-   included sha256/gcrypt.h, even when it is not used, causing the
-   make target to fail.  We now skip it when GCRYPT_SHA256 is not in
-   use.
-   (merge f23aa18e7f rj/hdr-check-gcrypt-fix later to maint).
-
- * The Makefile uses 'find' utility to enumerate all the *.h header
-   files, which is expensive on platforms with slow filesystems; it
-   now optionally uses "ls-files" if working within a repository,
-   which is a trick similar to how all sources are enumerated to run
-   ETAGS on.
-   (merge 92b88eba9f js/find-lib-h-with-ls-files-when-possible later to maint).
-
- * "git rebase" that was reimplemented in C did not set ORIG_HEAD
-   correctly, which has been corrected.
-   (merge cbd29ead92 js/rebase-orig-head-fix later to maint).
-
- * Dev support.
-   (merge f545737144 js/stress-test-ui-tweak later to maint).
-
- * CFLAGS now can be tweaked when invoking Make while using
-   DEVELOPER=YesPlease; this did not work well before.
-   (merge 6d5d4b4e93 ab/makefile-help-devs-more later to maint).
-
- * "git fsck --connectivity-only" omits computation necessary to sift
-   the objects that are not reachable from any of the refs into
-   unreachable and dangling.  This is now enabled when dangling
-   objects are requested (which is done by default, but can be
-   overridden with the "--no-dangling" option).
-   (merge 8d8c2a5aef jk/fsck-doc later to maint).
-
- * On platforms where "git fetch" is killed with SIGPIPE (e.g. OSX),
-   the upload-pack that runs on the other end that hangs up after
-   detecting an error could cause "git fetch" to die with a signal,
-   which led to a flaky test.  "git fetch" now ignores SIGPIPE during
-   the network portion of its operation (this is not a problem as we
-   check the return status from our write(2)s).
-   (merge 143588949c jk/no-sigpipe-during-network-transport later to maint).
-
- * A recent update broke "is this object available to us?" check for
-   well-known objects like an empty tree (which should yield "yes",
-   even when there is no on-disk object for an empty tree), which has
-   been corrected.
-   (merge f06ab027ef jk/virtual-objects-do-exist later to maint).
-
- * The setup code has been cleaned up to avoid leaks around the
-   repository_format structure.
-   (merge e8805af1c3 ma/clear-repository-format later to maint).
-
- * "git config --type=color ..." is meant to replace "git config --get-color"
-   but there is a slight difference that wasn't documented, which is
-   now fixed.
-   (merge cd8e7593b9 jk/config-type-color-ends-with-lf later to maint).
-
- * When the "clean" filter can reduce the size of a huge file in the
-   working tree down to a small "token" (a la Git LFS), there is no
-   point in allocating a huge scratch area upfront, but the buffer is
-   sized based on the original file size.  The convert mechanism now
-   allocates very minimum and reallocates as it receives the output
-   from the clean filter process.
-   (merge 02156ab031 jh/resize-convert-scratch-buffer later to maint).
-
- * "git rebase" uses the refs/rewritten/ hierarchy to store its
-   intermediate states, which inherently makes the hierarchy per
-   worktree, but it didn't quite work well.
-   (merge b9317d55a3 nd/rewritten-ref-is-per-worktree later to maint).
-
- * "git log -L<from>,<to>:<path>" with "-s" did not suppress the patch
-   output as it should.  This has been corrected.
-   (merge 05314efaea jk/line-log-with-patch later to maint).
-
- * "git worktree add" used to do a "find an available name with stat
-   and then mkdir", which is race-prone.  This has been fixed by using
-   mkdir and reacting to EEXIST in a loop.
-   (merge 7af01f2367 ms/worktree-add-atomic-mkdir later to maint).
-
- * Build update for SHA-1 with collision detection.
-   (merge 07a20f569b jk/sha1dc later to maint).
-
- * Build procedure has been fixed around use of asciidoctor instead of
-   asciidoc.
-   (merge 185f9a0ea0 ma/asciidoctor-fixes later to maint).
-
- * remote-http transport did not anonymize URLs reported in its error
-   messages at places.
-   (merge c1284b21f2 js/anonymize-remote-curl-diag later to maint).
-
- * Error messages given from the http transport have been updated so
-   that they can be localized.
-   (merge ed8b4132c8 js/remote-curl-i18n later to maint).
-
- * "git init" forgot to read platform-specific repository
-   configuration, which made Windows port to ignore settings of
-   core.hidedotfiles, for example.
-
- * A corner-case object name ambiguity while the sequencer machinery
-   is working (e.g. "rebase -i -x") has been fixed.
-
- * "git format-patch" did not diagnose an error while opening the
-   output file for the cover-letter, which has been corrected.
-   (merge 2fe95f494c jc/format-patch-error-check later to maint).
-
- * "git checkout -f <branch>" while the index has an unmerged path
-   incorrectly left some paths in an unmerged state, which has been
-   corrected.
-
- * A corner case bug in the refs API has been corrected.
-   (merge d3322eb28b jk/refs-double-abort later to maint).
-
- * Unicode update.
-   (merge 584b62c37b bb/unicode-12 later to maint).
-
- * dumb-http walker has been updated to share more error recovery
-   strategy with the normal codepath.
-
- * A buglet in configuration parser has been fixed.
-   (merge 19e7fdaa58 nd/include-if-wildmatch later to maint).
-
- * The documentation for "git read-tree --reset -u" has been updated.
-   (merge b5a0bd694c nd/read-tree-reset-doc later to maint).
-
- * Code clean-up around a much-less-important-than-it-used-to-be
-   update_server_info() function.
-   (merge b3223761c8 jk/server-info-rabbit-hole later to maint).
-
- * The message given when "git commit -a <paths>" errors out has been
-   updated.
-   (merge 5a1dbd48bc nd/commit-a-with-paths-msg-update later to maint).
-
- * "git cherry-pick --options A..B", after giving control back to the
-   user to ask help resolving a conflicted step, did not honor the
-   options it originally received, which has been corrected.
-
- * Various glitches in "git gc" around reflog handling have been fixed.
-
- * The code to read from commit-graph file has been cleanup with more
-   careful error checking before using data read from it.
-
- * Performance fix around "git fetch" that grabs many refs.
-   (merge b764300912 jt/fetch-pack-wanted-refs-optim later to maint).
-
- * Protocol v2 support in "git fetch-pack" of shallow clones has been
-   corrected.
-
- * Performance fix around "git blame", especially in a linear history
-   (which is the norm we should optimize for).
-   (merge f892014943 dk/blame-keep-origin-blob later to maint).
-
- * Performance fix for "rev-list --parents -- pathspec".
-   (merge 8320b1dbe7 jk/revision-rewritten-parents-in-prio-queue later to maint).
-
- * Updating the display with progress message has been cleaned up to
-   deal better with overlong messages.
-   (merge 545dc345eb sg/overlong-progress-fix later to maint).
-
- * "git blame -- path" in a non-bare repository starts blaming from
-   the working tree, and the same command in a bare repository errors
-   out because there is no working tree by definition.  The command
-   has been taught to instead start blaming from the commit at HEAD,
-   which is more useful.
-   (merge a544fb08f8 sg/blame-in-bare-start-at-head later to maint).
-
- * An underallocation in the code to read the untracked cache
-   extension has been corrected.
-   (merge 3a7b45a623 js/untracked-cache-allocfix later to maint).
-
- * The code is updated to check the result of memory allocation before
-   it is used in more places, by using xmalloc and/or xcalloc calls.
-   (merge 999b951b28 jk/xmalloc later to maint).
-
- * The GETTEXT_POISON test option has been quite broken ever since it
-   was made runtime-tunable, which has been fixed.
-   (merge f88b9cb603 jc/gettext-test-fix later to maint).
-
- * Test fix on APFS that is incapable of store paths in Latin-1.
-   (merge 3889149619 js/iso8895-test-on-apfs later to maint).
-
- * "git submodule foreach <command> --quiet" did not pass the option
-   down correctly, which has been corrected.
-   (merge a282f5a906 nd/submodule-foreach-quiet later to maint).
-
- * "git send-email" has been taught to use quoted-printable when the
-   payload contains carriage-return.  The use of the mechanism is in
-   line with the design originally added the codepath that chooses QP
-   when the payload has overly long lines.
-   (merge 74d76a1701 bc/send-email-qp-cr later to maint).
-
- * The recently added feature to add addresses that are on
-   anything-by: trailers in 'git send-email' was found to be way too
-   eager and considered nonsense strings as if they can be legitimate
-   beginning of *-by: trailer.  This has been tightened.
-
- * Builds with gettext broke on recent macOS w/ Homebrew, which
-   seems to have stopped including from /usr/local/include; this
-   has been corrected.
-   (merge 92a1377a2a js/macos-gettext-build later to maint).
-
- * Running "git add" on a repository created inside the current
-   repository is an explicit indication that the user wants to add it
-   as a submodule, but when the HEAD of the inner repository is on an
-   unborn branch, it cannot be added as a submodule.  Worse, the files
-   in its working tree can be added as if they are a part of the outer
-   repository, which is not what the user wants.  These problems are
-   being addressed.
-   (merge f937bc2f86 km/empty-repo-is-still-a-repo later to maint).
-
- * "git cherry-pick" run with the "-x" or the "--signoff" option used
-   to (and more importantly, ought to) clean up the commit log message
-   with the --cleanup=space option by default, but this has been
-   broken since late 2017.  This has been fixed.
-
- * When given a tag that points at a commit-ish, "git replace --graft"
-   failed to peel the tag before writing a replace ref, which did not
-   make sense because the old graft mechanism the feature wants to
-   mimic only allowed to replace one commit object with another.
-   This has been fixed.
-   (merge ee521ec4cb cc/replace-graft-peel-tags later to maint).
-
- * Code tightening against a "wrong" object appearing where an object
-   of a different type is expected, instead of blindly assuming that
-   the connection between objects are correctly made.
-   (merge 97dd512af7 tb/unexpected later to maint).
-
- * An earlier update for MinGW and Cygwin accidentally broke MSVC build,
-   which has been fixed.
-   (merge 22c3634c0f ss/msvc-path-utils-fix later to maint).
-
- * %(push:track) token used in the --format option to "git
-   for-each-ref" and friends was not showing the right branch, which
-   has been fixed.
-   (merge c646d0934e dr/ref-filter-push-track-fix later to maint).
-
- * "make check-docs", "git help -a", etc. did not account for cases
-   where a particular build may deliberately omit some subcommands,
-   which has been corrected.
-
- * The logic to tell if a Git repository has a working tree protects
-   "git branch -D" from removing the branch that is currently checked
-   out by mistake.  The implementation of this logic was broken for
-   repositories with unusual name, which unfortunately is the norm for
-   submodules these days.  This has been fixed.
-   (merge f3534c98e4 jt/submodule-repo-is-with-worktree later to maint).
-
- * AIX shared the same build issues with other BSDs around fileno(fp),
-   which has been corrected.
-   (merge ee662bf5c6 cc/aix-has-fileno-as-a-macro later to maint).
-
- * The autoconf generated configure script failed to use the right
-   gettext() implementations from -libintl by ignoring useless stub
-   implementations shipped in some C library, which has been
-   corrected.
-   (merge b71e56a683 vk/autoconf-gettext later to maint).
-
- * Fix index-pack perf test so that the repeated invocations always
-   run in an empty repository, which emulates the initial clone
-   situation better.
-   (merge 775c71e16d jk/p5302-avoid-collision-check-cost later to maint).
-
- * A "ls-files" that emulates "find" to enumerate files in the working
-   tree resulted in duplicated Makefile rules that caused the build to
-   issue an unnecessary warning during a trial build after merge
-   conflicts are resolved in working tree *.h files but before the
-   resolved results are added to the index.  This has been corrected.
-
- * "git cherry-pick" (and "revert" that shares the same runtime engine)
-   that deals with multiple commits got confused when the final step
-   gets stopped with a conflict and the user concluded the sequence
-   with "git commit".  Attempt to fix it by cleaning up the state
-   files used by these commands in such a situation.
-   (merge 4a72486de9 pw/clean-sequencer-state-upon-final-commit later to maint).
-
- * On a filesystem like HFS+, the names of the refs stored as filesystem
-   entities may become different from what the end-user expects, just
-   like files in the working tree get "renamed".  Work around the
-   mismatch by paying attention to the core.precomposeUnicode
-   configuration.
-   (merge 8e712ef6fc en/unicode-in-refnames later to maint).
-
- * The code to generate the multi-pack idx file was not prepared to
-   see too many packfiles and ran out of open file descriptor, which
-   has been corrected.
-
- * To run tests for Git SVN, our scripts for CI used to install the
-   git-svn package (in the hope that it would bring in the right
-   dependencies).  This has been updated to install the more direct
-   dependency, namely, libsvn-perl.
-   (merge db864306cf sg/ci-libsvn-perl later to maint).
-
- * "git cvsexportcommit" running on msys did not expect cvsnt showed
-   "cvs status" output with CRLF line endings.
-
- * The fsmonitor interface got out of sync after the in-core index
-   file gets discarded, which has been corrected.
-   (merge 398a3b0899 js/fsmonitor-refresh-after-discarding-index later to maint).
-
- * "git status" did not know that the "label" instruction in the
-   todo-list "rebase -i -r" uses should not be shown as a hex object
-   name.
-
- * A prerequisite check in the test suite to see if a working jgit is
-   available was made more robust.
-   (merge abd0f28983 tz/test-lib-check-working-jgit later to maint).
-
- * The codepath to parse :<path> that obtains the object name for an
-   indexed object has been made more robust.
-
- * Code cleanup, docfix, build fix, etc.
-   (merge 11f470aee7 jc/test-yes-doc later to maint).
-   (merge 90503a240b js/doc-symref-in-proto-v1 later to maint).
-   (merge 5c326d1252 jk/unused-params later to maint).
-   (merge 68cabbfda3 dl/doc-submodule-wo-subcommand later to maint).
-   (merge 9903623761 ab/receive-pack-use-after-free-fix later to maint).
-   (merge 1ede45e44b en/merge-options-doc later to maint).
-   (merge 3e14dd2c8e rd/doc-hook-used-in-sample later to maint).
-   (merge c271dc28fd nd/no-more-check-racy later to maint).
-   (merge e6e15194a8 yb/utf-16le-bom-spellfix later to maint).
-   (merge bb101aaf0c rd/attr.c-comment-typofix later to maint).
-   (merge 716a5af812 rd/gc-prune-doc-fix later to maint).
-   (merge 50b206371d js/untravis-windows later to maint).
-   (merge dbf47215e3 js/rebase-recreate-merge later to maint).
-   (merge 56cb2d30f8 dl/reset-doc-no-wrt-abbrev later to maint).
-   (merge 64eca306a2 ja/dir-rename-doc-markup-fix later to maint).
-   (merge af91b0230c dl/ignore-docs later to maint).
-   (merge 59a06e947b ra/t3600-test-path-funcs later to maint).
-   (merge e041d0781b ar/t4150-remove-cruft later to maint).
-   (merge 8d75a1d183 ma/asciidoctor-fixes-more later to maint).
-   (merge 74cc547b0f mh/pack-protocol-doc-fix later to maint).
-   (merge ed31851fa6 ab/doc-misc-typofixes later to maint).
-   (merge a7256debd4 nd/checkout-m-doc-update later to maint).
-   (merge 3a9e1ad78d jt/t5551-protocol-v2-does-not-have-half-auth later to maint).
-   (merge 0b918b75af sg/t5318-cleanup later to maint).
-   (merge 68ed71b53c cb/doco-mono later to maint).
-   (merge a34dca2451 nd/interpret-trailers-docfix later to maint).
-   (merge cf7b857a77 en/fast-import-parsing-fix later to maint).
-   (merge fe61ccbc35 po/rerere-doc-fmt later to maint).
-   (merge ffea0248bf po/describe-not-necessarily-7 later to maint).
-   (merge 7cb7283adb tg/ls-files-debug-format-fix later to maint).
-   (merge f64a21bd82 tz/doc-apostrophe-no-longer-needed later to maint).
-   (merge dbe7b41019 js/t3301-unbreak-notes-test later to maint).
-   (merge d8083e4180 km/t3000-retitle later to maint).
-   (merge 9e4cbccbd7 tz/git-svn-doc-markup-fix later to maint).
-   (merge da9ca955a7 jk/ls-files-doc-markup-fix later to maint).
-   (merge 6804ba3a58 cw/diff-highlight later to maint).
-   (merge 1a8787144d nd/submodule-helper-incomplete-line-fix later to maint).
-   (merge d9ef573837 jk/apache-lsan later to maint).
-   (merge c871fbee2b js/t6500-use-windows-pid-on-mingw later to maint).
-   (merge ce4c7bfc90 bl/t4253-exit-code-from-format-patch later to maint).
-   (merge 397a46db78 js/t5580-unc-alternate-test later to maint).
-   (merge d4907720a2 cm/notes-comment-fix later to maint).
-   (merge 9dde06de13 cb/http-push-null-in-message-fix later to maint).
-   (merge 4c785c0edc js/rebase-config-bitfix later to maint).
-   (merge 8e9fe16c87 es/doc-gitsubmodules-markup later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.22.1.txt b/third_party/git/Documentation/RelNotes/2.22.1.txt
deleted file mode 100644
index 432762f270fa..000000000000
--- a/third_party/git/Documentation/RelNotes/2.22.1.txt
+++ /dev/null
@@ -1,150 +0,0 @@
-Git 2.22.1 Release Notes
-========================
-
-Fixes since v2.22
------------------
-
- * A relative pathname given to "git init --template=<path> <repo>"
-   ought to be relative to the directory "git init" gets invoked in,
-   but it instead was made relative to the repository, which has been
-   corrected.
-
- * "git worktree add" used to fail when another worktree connected to
-   the same repository was corrupt, which has been corrected.
-
- * The ownership rule for the file descriptor to fast-import remote
-   backend was mixed up, leading to unrelated file descriptor getting
-   closed, which has been fixed.
-
- * "git update-server-info" used to leave stale packfiles in its
-   output, which has been corrected.
-
- * The server side support for "git fetch" used to show incorrect
-   value for the HEAD symbolic ref when the namespace feature is in
-   use, which has been corrected.
-
- * "git am -i --resolved" segfaulted after trying to see a commit as
-   if it were a tree, which has been corrected.
-
- * "git bundle verify" needs to see if prerequisite objects exist in
-   the receiving repository, but the command did not check if we are
-   in a repository upfront, which has been corrected.
-
- * "git merge --squash" is designed to update the working tree and the
-   index without creating the commit, and this cannot be countermanded
-   by adding the "--commit" option; the command now refuses to work
-   when both options are given.
-
- * The data collected by fsmonitor was not properly written back to
-   the on-disk index file, breaking t7519 tests occasionally, which
-   has been corrected.
-
- * Update to Unicode 12.1 width table.
-
- * The command line to invoke a "git cat-file" command from inside
-   "git p4" was not properly quoted to protect a caret and running a
-   broken command on Windows, which has been corrected.
-
- * "git request-pull" learned to warn when the ref we ask them to pull
-   from in the local repository and in the published repository are
-   different.
-
- * When creating a partial clone, the object filtering criteria is
-   recorded for the origin of the clone, but this incorrectly used a
-   hardcoded name "origin" to name that remote; it has been corrected
-   to honor the "--origin <name>" option.
-
- * "git fetch" into a lazy clone forgot to fetch base objects that are
-   necessary to complete delta in a thin packfile, which has been
-   corrected.
-
- * The filter_data used in the list-objects-filter (which manages a
-   lazily sparse clone repository) did not use the dynamic array API
-   correctly---'nr' is supposed to point at one past the last element
-   of the array in use.  This has been corrected.
-
- * The description about slashes in gitignore patterns (used to
-   indicate things like "anchored to this level only" and "only
-   matches directories") has been revamped.
-
- * The URL decoding code has been updated to avoid going past the end
-   of the string while parsing %-<hex>-<hex> sequence.
-
- * The list of for-each like macros used by clang-format has been
-   updated.
-
- * "git push --atomic" that goes over the transport-helper (namely,
-   the smart http transport) failed to prevent refs to be pushed when
-   it can locally tell that one of the ref update will fail without
-   having to consult the other end, which has been corrected.
-
- * "git clean" silently skipped a path when it cannot lstat() it; now
-   it gives a warning.
-
- * A codepath that reads from GPG for signed object verification read
-   past the end of allocated buffer, which has been fixed.
-
- * "git rm" to resolve a conflicted path leaked an internal message
-   "needs merge" before actually removing the path, which was
-   confusing.  This has been corrected.
-
- * The "git clone" documentation refers to command line options in its
-   description in the short form; they have been replaced with long
-   forms to make them more recognisable.
-
- * The configuration variable rebase.rescheduleFailedExec should be
-   effective only while running an interactive rebase and should not
-   affect anything when running a non-interactive one, which was not
-   the case.  This has been corrected.
-
- * "git submodule foreach" did not protect command line options passed
-   to the command to be run in each submodule correctly, when the
-   "--recursive" option was in use.
-
- * Use "Erase in Line" CSI sequence that is already used in the editor
-   support to clear cruft in the progress output.
-
- * The codepath to compute delta islands used to spew progress output
-   without giving the callers any way to squelch it, which has been
-   fixed.
-
- * The code to parse scaled numbers out of configuration files has
-   been made more robust and also easier to follow.
-
- * An incorrect list of options was cached after command line
-   completion failed (e.g. trying to complete a command that requires
-   a repository outside one), which has been corrected.
-
- * "git rebase --abort" used to leave refs/rewritten/ when concluding
-   "git rebase -r", which has been corrected.
-
- * "git stash show 23" used to work, but no more after getting
-   rewritten in C; this regression has been corrected.
-
- * "git interpret-trailers" always treated '#' as the comment
-   character, regardless of core.commentChar setting, which has been
-   corrected.
-
- * Code clean-up to avoid signed integer overlaps during binary search.
-
- * "git checkout -p" needs to selectively apply a patch in reverse,
-   which did not work well.
-
- * The commit-graph file is now part of the "files that the runtime
-   may keep open file descriptors on, all of which would need to be
-   closed when done with the object store", and the file descriptor to
-   an existing commit-graph file now is closed before "gc" finalizes a
-   new instance to replace it.
-
- * Code restructuring during 2.20 period broke fetching tags via
-   "import" based transports.
-
- * We have been trying out a few language features outside c89; the
-   coding guidelines document did not talk about them and instead had
-   a blanket ban against them.
-
- * The internal diff machinery can be made to read out of bounds while
-   looking for --funcion-context line in a corner case, which has been
-   corrected.
-
-Also contains various documentation updates, code clean-ups and minor fixups.
diff --git a/third_party/git/Documentation/RelNotes/2.22.2.txt b/third_party/git/Documentation/RelNotes/2.22.2.txt
deleted file mode 100644
index 940a23f0d961..000000000000
--- a/third_party/git/Documentation/RelNotes/2.22.2.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Git v2.22.2 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.6, v2.15.4,
-v2.17.3, v2.20.2 and in v2.21.1, addressing the security issues
-CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351,
-CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, CVE-2019-1387, and
-CVE-2019-19604; see the release notes for those versions for details.
diff --git a/third_party/git/Documentation/RelNotes/2.22.3.txt b/third_party/git/Documentation/RelNotes/2.22.3.txt
deleted file mode 100644
index 57296f6d173f..000000000000
--- a/third_party/git/Documentation/RelNotes/2.22.3.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.22.3 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.4; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.22.4.txt b/third_party/git/Documentation/RelNotes/2.22.4.txt
deleted file mode 100644
index 8b5f3e3f3740..000000000000
--- a/third_party/git/Documentation/RelNotes/2.22.4.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.22.4 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.5; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.23.0.txt b/third_party/git/Documentation/RelNotes/2.23.0.txt
deleted file mode 100644
index e3c4e7826510..000000000000
--- a/third_party/git/Documentation/RelNotes/2.23.0.txt
+++ /dev/null
@@ -1,348 +0,0 @@
-Git 2.23 Release Notes
-======================
-
-Updates since v2.22
--------------------
-
-Backward compatibility note
-
- * The "--base" option of "format-patch" computed the patch-ids for
-   prerequisite patches in an unstable way, which has been updated to
-   compute in a way that is compatible with "git patch-id --stable".
-
- * The "git log" command by default behaves as if the --mailmap option
-   was given.
-
-
-UI, Workflows & Features
-
- * The "git fast-export/import" pair has been taught to handle commits
-   with log messages in encoding other than UTF-8 better.
-
- * In recent versions of Git, per-worktree refs are exposed in
-   refs/worktrees/<wtname>/ hierarchy, which means that worktree names
-   must be a valid refname component.  The code now sanitizes the names
-   given to worktrees, to make sure these refs are well-formed.
-
- * "git merge" learned "--quit" option that cleans up the in-progress
-   merge while leaving the working tree and the index still in a mess.
-
- * "git format-patch" learns a configuration to set the default for
-   its --notes=<ref> option.
-
- * The code to show args with potential typo that cannot be
-   interpreted as a commit-ish has been improved.
-
- * "git clone --recurse-submodules" learned to set up the submodules
-   to ignore commit object names recorded in the superproject gitlink
-   and instead use the commits that happen to be at the tip of the
-   remote-tracking branches from the get-go, by passing the new
-   "--remote-submodules" option.
-
- * The pattern "git diff/grep" use to extract funcname and words
-   boundary for Matlab has been extend to cover Octave, which is more
-   or less equivalent.
-
- * "git help git" was hard to discover (well, at least for some
-   people).
-
- * The pattern "git diff/grep" use to extract funcname and words
-   boundary for Rust has been added.
-
- * "git status" can be told a non-standard default value for the
-   "--[no-]ahead-behind" option with a new configuration variable
-   status.aheadBehind.
-
- * "git fetch" and "git pull" reports when a fetch results in
-   non-fast-forward updates to let the user notice unusual situation.
-   The commands learned "--no-show-forced-updates" option to disable
-   this safety feature.
-
- * Two new commands "git switch" and "git restore" are introduced to
-   split "checking out a branch to work on advancing its history" and
-   "checking out paths out of the index and/or a tree-ish to work on
-   advancing the current history" out of the single "git checkout"
-   command.
-
- * "git branch --list" learned to always output the detached HEAD as
-   the first item (when the HEAD is detached, of course), regardless
-   of the locale.
-
- * The conditional inclusion mechanism learned to base the choice on
-   the branch the HEAD currently is on.
-
- * "git rev-list --objects" learned the "--no-object-names" option to
-   squelch the path to the object that is used as a grouping hint for
-   pack-objects.
-
- * A new tag.gpgSign configuration variable turns "git tag -a" into
-   "git tag -s".
-
- * "git multi-pack-index" learned expire and repack subcommands.
-
- * "git blame" learned to "ignore" commits in the history, whose
-   effects (as well as their presence) get ignored.
-
- * "git cherry-pick/revert" learned a new "--skip" action.
-
- * The tips of refs from the alternate object store can be used as
-   starting point for reachability computation now.
-
- * Extra blank lines in "git status" output have been reduced.
-
- * The commits in a repository can be described by multiple
-   commit-graph files now, which allows the commit-graph files to be
-   updated incrementally.
-
- * "git range-diff" output has been tweaked for easier identification
-   of which part of what file the patch shown is about.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * Update supporting parts of "git rebase" to remove code that should
-   no longer be used.
-
- * Developer support to emulate unsatisfied prerequisites in tests to
-   ensure that the remainder of the tests still succeeds when tests
-   with prerequisites are skipped.
-
- * "git update-server-info" learned not to rewrite the file with the
-   same contents.
-
- * The way of specifying the path to find dynamic libraries at runtime
-   has been simplified.  The old default to pass -R/path/to/dir has been
-   replaced with the new default to pass -Wl,-rpath,/path/to/dir,
-   which is the more recent GCC uses.  Those who need to build with an
-   old GCC can still use "CC_LD_DYNPATH=-R"
-
- * Prepare use of reachability index in topological walker that works
-   on a range (A..B).
-
- * A new tutorial targeting specifically aspiring git-core
-   developers has been added.
-
- * Auto-detect how to tell HP-UX aCC where to use dynamically linked
-   libraries from at runtime.
-
- * "git mergetool" and its tests now spawn fewer subprocesses.
-
- * Dev support update to help tracing out tests.
-
- * Support to build with MSVC has been updated.
-
- * "git fetch" that grabs from a group of remotes learned to run the
-   auto-gc only once at the very end.
-
- * A handful of Windows build patches have been upstreamed.
-
- * The code to read state files used by the sequencer machinery for
-   "git status" has been made more robust against a corrupt or stale
-   state files.
-
- * "git for-each-ref" with multiple patterns have been optimized.
-
- * The tree-walk API learned to pass an in-core repository
-   instance throughout more codepaths.
-
- * When one step in multi step cherry-pick or revert is reset or
-   committed, the command line prompt script failed to notice the
-   current status, which has been improved.
-
- * Many GIT_TEST_* environment variables control various aspects of
-   how our tests are run, but a few followed "non-empty is true, empty
-   or unset is false" while others followed the usual "there are a few
-   ways to spell true, like yes, on, etc., and also ways to spell
-   false, like no, off, etc." convention.
-
- * Adjust the dir-iterator API and apply it to the local clone
-   optimization codepath.
-
- * We have been trying out a few language features outside c89; the
-   coding guidelines document did not talk about them and instead had
-   a blanket ban against them.
-
- * A test helper has been introduced to optimize preparation of test
-   repositories with many simple commits, and a handful of test
-   scripts have been updated to use it.
-
-
-Fixes since v2.22
------------------
-
- * A relative pathname given to "git init --template=<path> <repo>"
-   ought to be relative to the directory "git init" gets invoked in,
-   but it instead was made relative to the repository, which has been
-   corrected.
-
- * "git worktree add" used to fail when another worktree connected to
-   the same repository was corrupt, which has been corrected.
-
- * The ownership rule for the file descriptor to fast-import remote
-   backend was mixed up, leading to an unrelated file descriptor getting
-   closed, which has been fixed.
-
- * A "merge -c" instruction during "git rebase --rebase-merges" should
-   give the user a chance to edit the log message, even when there is
-   otherwise no need to create a new merge and replace the existing
-   one (i.e. fast-forward instead), but did not.  Which has been
-   corrected.
-
- * Code cleanup and futureproof.
-
- * More parameter validation.
-
- * "git update-server-info" used to leave stale packfiles in its
-   output, which has been corrected.
-
- * The server side support for "git fetch" used to show incorrect
-   value for the HEAD symbolic ref when the namespace feature is in
-   use, which has been corrected.
-
- * "git am -i --resolved" segfaulted after trying to see a commit as
-   if it were a tree, which has been corrected.
-
- * "git bundle verify" needs to see if prerequisite objects exist in
-   the receiving repository, but the command did not check if we are
-   in a repository upfront, which has been corrected.
-
- * "git merge --squash" is designed to update the working tree and the
-   index without creating the commit, and this cannot be countermanded
-   by adding the "--commit" option; the command now refuses to work
-   when both options are given.
-
- * The data collected by fsmonitor was not properly written back to
-   the on-disk index file, breaking t7519 tests occasionally, which
-   has been corrected.
-
- * Update to Unicode 12.1 width table.
-
- * The command line to invoke a "git cat-file" command from inside
-   "git p4" was not properly quoted to protect a caret and running a
-   broken command on Windows, which has been corrected.
-
- * "git request-pull" learned to warn when the ref we ask them to pull
-   from in the local repository and in the published repository are
-   different.
-
- * When creating a partial clone, the object filtering criteria is
-   recorded for the origin of the clone, but this incorrectly used a
-   hardcoded name "origin" to name that remote; it has been corrected
-   to honor the "--origin <name>" option.
-
- * "git fetch" into a lazy clone forgot to fetch base objects that are
-   necessary to complete delta in a thin packfile, which has been
-   corrected.
-
- * The filter_data used in the list-objects-filter (which manages a
-   lazily sparse clone repository) did not use the dynamic array API
-   correctly---'nr' is supposed to point at one past the last element
-   of the array in use.  This has been corrected.
-
- * The description about slashes in gitignore patterns (used to
-   indicate things like "anchored to this level only" and "only
-   matches directories") has been revamped.
-
- * The URL decoding code has been updated to avoid going past the end
-   of the string while parsing %-<hex>-<hex> sequence.
-
- * The list of for-each like macros used by clang-format has been
-   updated.
-
- * "git branch --list" learned to show branches that are checked out
-   in other worktrees connected to the same repository prefixed with
-   '+', similar to the way the currently checked out branch is shown
-   with '*' in front.
-   (merge 6e9381469e nb/branch-show-other-worktrees-head later to maint).
-
- * Code restructuring during 2.20 period broke fetching tags via
-   "import" based transports.
-
- * The commit-graph file is now part of the "files that the runtime
-   may keep open file descriptors on, all of which would need to be
-   closed when done with the object store", and the file descriptor to
-   an existing commit-graph file now is closed before "gc" finalizes a
-   new instance to replace it.
-
- * "git checkout -p" needs to selectively apply a patch in reverse,
-   which did not work well.
-
- * Code clean-up to avoid signed integer wraparounds during binary search.
-
- * "git interpret-trailers" always treated '#' as the comment
-   character, regardless of core.commentChar setting, which has been
-   corrected.
-
- * "git stash show 23" used to work, but no more after getting
-   rewritten in C; this regression has been corrected.
-
- * "git rebase --abort" used to leave refs/rewritten/ when concluding
-   "git rebase -r", which has been corrected.
-
- * An incorrect list of options was cached after command line
-   completion failed (e.g. trying to complete a command that requires
-   a repository outside one), which has been corrected.
-
- * The code to parse scaled numbers out of configuration files has
-   been made more robust and also easier to follow.
-
- * The codepath to compute delta islands used to spew progress output
-   without giving the callers any way to squelch it, which has been
-   fixed.
-
- * Protocol capabilities that go over wire should never be translated,
-   but it was incorrectly marked for translation, which has been
-   corrected.  The output of protocol capabilities for debugging has
-   been tweaked a bit.
-
- * Use "Erase in Line" CSI sequence that is already used in the editor
-   support to clear cruft in the progress output.
-
- * "git submodule foreach" did not protect command line options passed
-   to the command to be run in each submodule correctly, when the
-   "--recursive" option was in use.
-
- * The configuration variable rebase.rescheduleFailedExec should be
-   effective only while running an interactive rebase and should not
-   affect anything when running a non-interactive one, which was not
-   the case.  This has been corrected.
-
- * The "git clone" documentation refers to command line options in its
-   description in the short form; they have been replaced with long
-   forms to make them more recognisable.
-
- * Generation of pack bitmaps are now disabled when .keep files exist,
-   as these are mutually exclusive features.
-   (merge 7328482253 ew/repack-with-bitmaps-by-default later to maint).
-
- * "git rm" to resolve a conflicted path leaked an internal message
-   "needs merge" before actually removing the path, which was
-   confusing.  This has been corrected.
-
- * "git stash --keep-index" did not work correctly on paths that have
-   been removed, which has been fixed.
-   (merge b932f6a5e8 tg/stash-keep-index-with-removed-paths later to maint).
-
- * Window 7 update ;-)
-
- * A codepath that reads from GPG for signed object verification read
-   past the end of allocated buffer, which has been fixed.
-
- * "git clean" silently skipped a path when it cannot lstat() it; now
-   it gives a warning.
-
- * "git push --atomic" that goes over the transport-helper (namely,
-   the smart http transport) failed to prevent refs to be pushed when
-   it can locally tell that one of the ref update will fail without
-   having to consult the other end, which has been corrected.
-
- * The internal diff machinery can be made to read out of bounds while
-   looking for --function-context line in a corner case, which has been
-   corrected.
-   (merge b777f3fd61 jk/xdiff-clamp-funcname-context-index later to maint).
-
- * Other code cleanup, docfix, build fix, etc.
-   (merge fbec05c210 cc/test-oidmap later to maint).
-   (merge 7a06fb038c jk/no-system-includes-in-dot-c later to maint).
-   (merge 81ed2b405c cb/xdiff-no-system-includes-in-dot-c later to maint).
-   (merge d61e6ce1dd sg/fsck-config-in-doc later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.23.1.txt b/third_party/git/Documentation/RelNotes/2.23.1.txt
deleted file mode 100644
index 2083b492ce50..000000000000
--- a/third_party/git/Documentation/RelNotes/2.23.1.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Git v2.23.1 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.6, v2.15.4,
-v2.17.3, v2.20.2 and in v2.21.1, addressing the security issues
-CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351,
-CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, CVE-2019-1387, and
-CVE-2019-19604; see the release notes for those versions for details.
diff --git a/third_party/git/Documentation/RelNotes/2.23.2.txt b/third_party/git/Documentation/RelNotes/2.23.2.txt
deleted file mode 100644
index b697cbe0e31a..000000000000
--- a/third_party/git/Documentation/RelNotes/2.23.2.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.23.2 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.4; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.23.3.txt b/third_party/git/Documentation/RelNotes/2.23.3.txt
deleted file mode 100644
index 2e35490137b7..000000000000
--- a/third_party/git/Documentation/RelNotes/2.23.3.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.23.3 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.5; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.24.0.txt b/third_party/git/Documentation/RelNotes/2.24.0.txt
deleted file mode 100644
index bde154124cb8..000000000000
--- a/third_party/git/Documentation/RelNotes/2.24.0.txt
+++ /dev/null
@@ -1,398 +0,0 @@
-Git 2.24 Release Notes
-======================
-
-Updates since v2.23
--------------------
-
-Backward compatibility note
-
- * "filter-branch" is showing its age and alternatives are available.
-   From this release, we started to discourage its use and hint
-   people about filter-repo.
-
-UI, Workflows & Features
-
- * We now have an active interim maintainer for the Git-Gui part of
-   the system.  Praise and thank Pratyush Yadav for volunteering.
-
- * The command line parser learned "--end-of-options" notation; the
-   standard convention for scripters to have hardcoded set of options
-   first on the command line, and force the command to treat end-user
-   input as non-options, has been to use "--" as the delimiter, but
-   that would not work for commands that use "--" as a delimiter
-   between revs and pathspec.
-
- * A mechanism to affect the default setting for a (related) group of
-   configuration variables is introduced.
-
- * "git fetch" learned "--set-upstream" option to help those who first
-   clone from their private fork they intend to push to, add the true
-   upstream via "git remote add" and then "git fetch" from it.
-
- * Device-tree files learned their own userdiff patterns.
-   (merge 3c81760bc6 sb/userdiff-dts later to maint).
-
- * "git rebase --rebase-merges" learned to drive different merge
-   strategies and pass strategy specific options to them.
-
- * A new "pre-merge-commit" hook has been introduced.
-
- * Command line completion updates for "git -c var.name=val" have been
-   added.
-
- * The lazy clone machinery has been taught that there can be more
-   than one promisor remote and consult them in order when downloading
-   missing objects on demand.
-
- * The list-objects-filter API (used to create a sparse/lazy clone)
-   learned to take a combined filter specification.
-
- * The documentation and tests for "git format-patch" have been
-   cleaned up.
-
- * On Windows, the root level of UNC share is now allowed to be used
-   just like any other directory.
-
- * The command line completion support (in contrib/) learned about the
-   "--skip" option of "git revert" and "git cherry-pick".
-
- * "git rebase --keep-base <upstream>" tries to find the original base
-   of the topic being rebased and rebase on top of that same base,
-   which is useful when running the "git rebase -i" (and its limited
-   variant "git rebase -x").
-
-   The command also has learned to fast-forward in more cases where it
-   can instead of replaying to recreate identical commits.
-
- * A configuration variable tells "git fetch" to write the commit
-   graph after finishing.
-
- * "git add -i" has been taught to show the total number of hunks and
-   the hunks that has been processed so far when showing prompts.
-
- * "git fetch --jobs=<n>" allowed <n> parallel jobs when fetching
-   submodules, but this did not apply to "git fetch --multiple" that
-   fetches from multiple remote repositories.  It now does.
-
- * The installation instruction for zsh completion script (in
-   contrib/) has been a bit improved.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * The code to write commit-graph over given commit object names has
-   been made a bit more robust.
-
- * The first line of verbose output from each test piece now carries
-   the test name and number to help scanning with eyeballs.
-
- * Further clean-up of the initialization code.
-
- * xmalloc() used to have a mechanism to ditch memory and address
-   space resources as the last resort upon seeing an allocation
-   failure from the underlying malloc(), which made the code complex
-   and thread-unsafe with dubious benefit, as major memory resource
-   users already do limit their uses with various other mechanisms.
-   It has been simplified away.
-
- * Unnecessary full-tree diff in "git log -L" machinery has been
-   optimized away.
-
- * The http transport lacked some optimization the native transports
-   learned to avoid unnecessary ref advertisement, which has been
-   corrected.
-
- * Preparation for SHA-256 upgrade continues in the test department.
-   (merge 0c37c41d13 bc/hash-independent-tests-part-5 later to maint).
-
- * The memory ownership model of the "git fast-import" got
-   straightened out.
-
- * Output from trace2 subsystem is formatted more prettily now.
-
- * The internal code originally invented for ".gitignore" processing
-   got reshuffled and renamed to make it less tied to "excluding" and
-   stress more that it is about "matching", as it has been reused for
-   things like sparse checkout specification that want to check if a
-   path is "included".
-
- * "git stash" learned to write refreshed index back to disk.
-
- * Coccinelle checks are done on more source files than before now.
-
- * The cache-tree code has been taught to be less aggressive in
-   attempting to see if a tree object it computed already exists in
-   the repository.
-
- * The code to parse and use the commit-graph file has been made more
-   robust against corrupted input.
-
- * The hg-to-git script (in contrib/) has been updated to work with
-   Python 3.
-
- * Update the way build artifacts in t/helper/ directory are ignored.
-
- * Preparation for SHA-256 upgrade continues.
-
- * "git log --graph" for an octopus merge is sometimes colored
-   incorrectly, which is demonstrated and documented but not yet
-   fixed.
-
- * The trace2 output, when sending them to files in a designated
-   directory, can populate the directory with too many files; a
-   mechanism is introduced to set the maximum number of files and
-   discard further logs when the maximum is reached.
-
- * We have adopted a Code-of-conduct document.
-   (merge 3f9ef874a7 jk/coc later to maint).
-
-
-Fixes since v2.23
------------------
-
- * "git grep --recurse-submodules" that looks at the working tree
-   files looked at the contents in the index in submodules, instead of
-   files in the working tree.
-   (merge 6a289d45c0 mt/grep-submodules-working-tree later to maint).
-
- * Codepaths to walk tree objects have been audited for integer
-   overflows and hardened.
-   (merge 5aa02f9868 jk/tree-walk-overflow later to maint).
-
- * "git pack-refs" can lose refs that are created while running, which
-   is getting corrected.
-   (merge a613d4f817 sc/pack-refs-deletion-racefix later to maint).
-
- * "git checkout" and "git restore" to re-populate the index from a
-   tree-ish (typically HEAD) did not work correctly for a path that
-   was removed and then added again with the intent-to-add bit, when
-   the corresponding working tree file was empty.  This has been
-   corrected.
-
- * Compilation fix.
-   (merge 70597e8386 rs/nedalloc-fixlets later to maint).
-
- * "git gui" learned to call the clean-up procedure before exiting.
-   (merge 0d88f3d2c5 py/git-gui-do-quit later to maint).
-
- * We promoted the "indent heuristics" that decides where to split
-   diff hunks from experimental to the default a few years ago, but
-   some stale documentation still marked it as experimental, which has
-   been corrected.
-   (merge 64e5e1fba1 sg/diff-indent-heuristic-non-experimental later to maint).
-
- * Fix a mismerge that happened in 2.22 timeframe.
-   (merge acb7da05ac en/checkout-mismerge-fix later to maint).
-
- * "git archive" recorded incorrect length in extended pax header in
-   some corner cases, which has been corrected.
-   (merge 71d41ff651 rs/pax-extended-header-length-fix later to maint).
-
- * On-demand object fetching in lazy clone incorrectly tried to fetch
-   commits from submodule projects, while still working in the
-   superproject, which has been corrected.
-   (merge a63694f523 jt/diff-lazy-fetch-submodule-fix later to maint).
-
- * Prepare get_short_oid() codepath to be thread-safe.
-   (merge 7cfcb16b0e rs/sort-oid-array-thread-safe later to maint).
-
- * "for-each-ref" and friends that show refs did not protect themselves
-   against ancient tags that did not record tagger names when asked to
-   show "%(taggername)", which have been corrected.
-   (merge 8b3f33ef11 mp/for-each-ref-missing-name-or-email later to maint).
-
- * The "git am" based backend of "git rebase" ignored the result of
-   updating ".gitattributes" done in one step when replaying
-   subsequent steps.
-   (merge 2c65d90f75 bc/reread-attributes-during-rebase later to maint).
-
- * Tell cURL library to use the same malloc() implementation, with the
-   xmalloc() wrapper, as the rest of the system, for consistency.
-   (merge 93b980e58f cb/curl-use-xmalloc later to maint).
-
- * Build fix to adjust .gitignore to unignore a path that we started to track.
-   (merge aac6ff7b5b js/visual-studio later to maint).
-
- * A few implementation fixes in the notes API.
-   (merge 60fe477a0b mh/notes-duplicate-entries later to maint).
-
- * Fix an earlier regression to "git push --all" which should have
-   been forbidden when the target remote repository is set to be a
-   mirror.
-   (merge 8e4c8af058 tg/push-all-in-mirror-forbidden later to maint).
-
- * Fix an earlier regression in the test suite, which mistakenly
-   stopped running HTTPD tests.
-   (merge 3960290675 sg/git-test-boolean later to maint).
-
- * "git rebase --autostash <upstream> <branch>", when <branch> is
-   different from the current branch, incorrectly moved the tip of the
-   current branch, which has been corrected.
-   (merge bf1e28e0ad bw/rebase-autostash-keep-current-branch later to maint).
-
- * Update support for Asciidoctor documentation toolchain.
-   (merge 83b0b8953e ma/asciidoctor-refmiscinfo later to maint).
-
- * Start using DocBook 5 (instead of DocBook 4.5) as Asciidoctor 2.0
-   no longer works with the older one.
-   (merge f6461b82b9 bc/doc-use-docbook-5 later to maint).
-
- * The markup used in user-manual has been updated to work better with
-   asciidoctor.
-   (merge c4d2f6143a ma/user-manual-markup-update later to maint).
-
- * Make sure the grep machinery does not abort when seeing a payload
-   that is not UTF-8 even when JIT is not in use with PCRE1.
-   (merge ad7c543e3b cb/skip-utf8-check-with-pcre1 later to maint).
-
- * The name of the blob object that stores the filter specification
-   for sparse cloning/fetching was interpreted in a wrong place in the
-   code, causing Git to abort.
-
- * "git log --decorate-refs-exclude=<pattern>" was incorrectly
-   overruled when the "--simplify-by-decoration" option is used, which
-   has been corrected.
-   (merge 0cc7380d88 rs/simplify-by-deco-with-deco-refs-exclude later to maint).
-
- * The "upload-pack" (the counterpart of "git fetch") needs to disable
-   commit-graph when responding to a shallow clone/fetch request, but
-   the way this was done made Git panic, which has been corrected.
-
- * The object traversal machinery has been optimized not to load tree
-   objects when we are only interested in commit history.
-   (merge 72ed80c784 jk/list-objects-optim-wo-trees later to maint).
-
- * The object name parser for "Nth parent" syntax has been made more
-   robust against integer overflows.
-   (merge 59fa5f5a25 rs/nth-parent-parse later to maint).
-
- * The code used in following tags in "git fetch" has been optimized.
-   (merge b7e2d8bca5 ms/fetch-follow-tag-optim later to maint).
-
- * Regression fix for progress output.
-   (merge 2bb74b53a4 sg/progress-fix later to maint).
-
- * A bug in merge-recursive code that triggers when a branch with a
-   symbolic link is merged with a branch that replaces it with a
-   directory has been fixed.
-   (merge 83e3ad3b12 jt/merge-recursive-symlink-is-not-a-dir-in-way later to maint).
-
- * The rename detection logic sorts a list of rename source candidates
-   by similarity to pick the best candidate, which means that a tie
-   between sources with the same similarity is broken by the original
-   location in the original candidate list (which is sorted by path).
-   Force the sorting by similarity done with a stable sort, which is
-   not promised by system supplied qsort(3), to ensure consistent
-   results across platforms.
-   (merge 2049b8dc65 js/diff-rename-force-stable-sort later to maint).
-
- * The code to skip "UTF" and "UTF-" prefix, when computing an advice
-   message, did not work correctly when the prefix was "UTF", which
-   has been fixed.
-   (merge b181676ce9 rs/convert-fix-utf-without-dash later to maint).
-
- * The author names taken from SVN repositories may have extra leading
-   or trailing whitespaces, which are now munged away.
-   (merge 4ddd4bddb1 tk/git-svn-trim-author-name later to maint).
-
- * "git rebase -i" showed a wrong HEAD while "reword" open the editor.
-   (merge b0a3186140 pw/rebase-i-show-HEAD-to-reword later to maint).
-
- * A few simplification and bugfixes to PCRE interface.
-   (merge c581e4a749 ab/pcre-jit-fixes later to maint).
-
- * PCRE fixes.
-   (merge ff61681b46 cb/pcre1-cleanup later to maint).
-
- * "git range-diff" segfaulted when diff.noprefix configuration was
-   used, as it blindly expected the patch it internally generates to
-   have the standard a/ and b/ prefixes.  The command now forces the
-   internal patch to be built without any prefix, not to be affected
-   by any end-user configuration.
-   (merge 937b76ed49 js/range-diff-noprefix later to maint).
-
- * "git stash apply" in a subdirectory of a secondary worktree failed
-   to access the worktree correctly, which has been corrected.
-   (merge dfd557c978 js/stash-apply-in-secondary-worktree later to maint).
-
- * The merge-recursive machinery is one of the most complex parts of
-   the system that accumulated cruft over time.  This large series
-   cleans up the implementation quite a bit.
-   (merge b657047719 en/merge-recursive-cleanup later to maint).
-
- * Pretty-printed command line formatter (used in e.g. reporting the
-   command being run by the tracing API) had a bug that lost an
-   argument that is an empty string, which has been corrected.
-   (merge ce2d7ed2fd gs/sq-quote-buf-pretty later to maint).
-
- * "git range-diff" failed to handle mode-only change, which has been
-   corrected.
-   (merge 2b6a9b13ca tg/range-diff-output-update later to maint).
-
- * Dev support update.
-   (merge 4f3c1dc5d6 dl/allow-running-cocci-verbosely later to maint).
-
- * "git format-patch -o <outdir>" did an equivalent of "mkdir <outdir>"
-   not "mkdir -p <outdir>", which was corrected.
-
- * "git stash save" lost local changes to submodules, which has been
-   corrected.
-   (merge 556895d0c8 jj/stash-reset-only-toplevel later to maint).
-
- * The atomic push over smart HTTP transport did not work, which has
-   been corrected.
-   (merge 6f1194246a bc/smart-http-atomic-push later to maint).
-
- * Other code cleanup, docfix, build fix, etc.
-   (merge d1387d3895 en/fast-import-merge-doc later to maint).
-   (merge 1c24a54ea4 bm/repository-layout-typofix later to maint).
-   (merge 415b770b88 ds/midx-expire-repack later to maint).
-   (merge 19800bdc3f nd/diff-parseopt later to maint).
-   (merge 58166c2e9d tg/t0021-racefix later to maint).
-   (merge 7027f508c7 dl/compat-cleanup later to maint).
-   (merge e770fbfeff jc/test-cleanup later to maint).
-   (merge 1fd881d404 rs/trace2-dst-warning later to maint).
-   (merge 7e92756751 mh/http-urlmatch-cleanup later to maint).
-   (merge 9784f97321 mh/release-commit-memory-fix later to maint).
-   (merge 60d198d022 tb/banned-vsprintf-namefix later to maint).
-   (merge 80e3658647 rs/help-unknown-ref-does-not-return later to maint).
-   (merge 0a8bc7068f dt/remote-helper-doc-re-lock-option later to maint).
-   (merge 27fd1e4ea7 en/merge-options-ff-and-friends later to maint).
-   (merge 502c386ff9 sg/clean-nested-repo-with-ignored later to maint).
-   (merge 26e3d1cbea am/mailmap-andrey-mazo later to maint).
-   (merge 47b27c96fa ss/get-time-cleanup later to maint).
-   (merge dd2e50a84e jk/commit-graph-cleanup later to maint).
-   (merge 4fd39c76e6 cs/pretty-formats-doc-typofix later to maint).
-   (merge 40e747e89d dl/submodule-set-branch later to maint).
-   (merge 689a146c91 rs/commit-graph-use-list-count later to maint).
-   (merge 0eb7c37a8a js/doc-patch-text later to maint).
-   (merge 4b3aa170d1 rs/nth-switch-code-simplification later to maint).
-   (merge 0d4304c124 ah/doc-submodule-ignore-submodules later to maint).
-   (merge af78249463 cc/svn-fe-py-shebang later to maint).
-   (merge 7bd97d6dff rs/alias-use-copy-array later to maint).
-   (merge c46ebc2496 sg/travis-help-debug later to maint).
-   (merge 24c681794f ps/my-first-contribution-alphasort later to maint).
-   (merge 75b2c15435 cb/do-not-use-test-cmp-with-a later to maint).
-   (merge cda0d497e3 bw/submodule-helper-usage-fix later to maint).
-   (merge fe0ed5d5e9 am/visual-studio-config-fix later to maint).
-   (merge 2e09c01232 sg/name-rev-cutoff-underflow-fix later to maint).
-   (merge ddb3c856f3 as/shallow-slab-use-fix later to maint).
-   (merge 71f4960b91 js/mingw-spawn-with-spaces-in-path later to maint).
-   (merge 53d687bf5f ah/cleanups later to maint).
-   (merge f537485fa5 rs/test-remove-useless-debugging-cat later to maint).
-   (merge 11a3d3aadd dl/rev-list-doc-cleanup later to maint).
-   (merge d928a8388a am/t0028-utf16-tests later to maint).
-   (merge b05b40930e dl/t0000-skip-test-test later to maint).
-   (merge 03d3b1297c js/xdiffi-comment-updates later to maint).
-   (merge 57d8f4b4c7 js/doc-stash-save later to maint).
-   (merge 8c1cfd58e3 ta/t1308-typofix later to maint).
-   (merge fa364ad790 bb/utf8-wcwidth-cleanup later to maint).
-   (merge 68b69211b2 bb/compat-util-comment-fix later to maint).
-   (merge 5cc6a4be11 rs/http-push-simplify later to maint).
-   (merge a81e42d235 rs/column-use-utf8-strnwidth later to maint).
-   (merge 062a309d36 rs/remote-curl-use-argv-array later to maint).
-   (merge 3b3c79f6c9 nr/diff-highlight-indent-fix later to maint).
-   (merge 3444ec2eb2 wb/fsmonitor-bitmap-fix later to maint).
-   (merge 10da030ab7 cb/pcre2-chartables-leakfix later to maint).
-   (merge 60e6569a12 js/mingw-needs-hiding-fix later to maint).
-   (merge 52bd3e4657 rl/gitweb-blame-prev-fix later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.24.1.txt b/third_party/git/Documentation/RelNotes/2.24.1.txt
deleted file mode 100644
index 18104850fe4e..000000000000
--- a/third_party/git/Documentation/RelNotes/2.24.1.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Git v2.24.1 Release Notes
-=========================
-
-This release merges up the fixes that appear in v2.14.6, v2.15.4,
-v2.17.3, v2.20.2 and in v2.21.1, addressing the security issues
-CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351,
-CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, CVE-2019-1387, and
-CVE-2019-19604; see the release notes for those versions for details.
diff --git a/third_party/git/Documentation/RelNotes/2.24.2.txt b/third_party/git/Documentation/RelNotes/2.24.2.txt
deleted file mode 100644
index 0049f65503eb..000000000000
--- a/third_party/git/Documentation/RelNotes/2.24.2.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.24.2 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.4; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.24.3.txt b/third_party/git/Documentation/RelNotes/2.24.3.txt
deleted file mode 100644
index 5302e0f73b50..000000000000
--- a/third_party/git/Documentation/RelNotes/2.24.3.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.24.3 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.5; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.25.0.txt b/third_party/git/Documentation/RelNotes/2.25.0.txt
deleted file mode 100644
index 91ceb3492707..000000000000
--- a/third_party/git/Documentation/RelNotes/2.25.0.txt
+++ /dev/null
@@ -1,370 +0,0 @@
-Git 2.25 Release Notes
-======================
-
-Updates since v2.24
--------------------
-
-Backward compatibility notes
-
-
-UI, Workflows & Features
-
- * A tutorial on object enumeration has been added.
-
- * The branch description ("git branch --edit-description") has been
-   used to fill the body of the cover letters by the format-patch
-   command; this has been enhanced so that the subject can also be
-   filled.
-
- * "git rebase --preserve-merges" has been marked as deprecated; this
-   release stops advertising it in the "git rebase -h" output.
-
- * The code to generate multi-pack index learned to show (or not to
-   show) progress indicators.
-
- * "git apply --3way" learned to honor merge.conflictStyle
-   configuration variable, like merges would.
-
- * The custom format for "git log --format=<format>" learned the l/L
-   placeholder that is similar to e/E that fills in the e-mail
-   address, but only the local part on the left side of '@'.
-
- * Documentation pages for "git shortlog" now list commit limiting
-   options explicitly.
-
- * The patterns to detect function boundary for Elixir language has
-   been added.
-
- * The completion script (in contrib/) learned that the "--onto"
-   option of "git rebase" can take its argument as the value of the
-   option.
-
- * The userdiff machinery has been taught that "async def" is another
-   way to begin a "function" in Python.
-
- * "git range-diff" learned to take the "--notes=<ref>" and the
-   "--no-notes" options to control the commit notes included in the
-   log message that gets compared.
-
- * "git rev-parse --show-toplevel" run outside of any working tree did
-   not error out, which has been corrected.
-
- * A few commands learned to take the pathspec from the standard input
-   or a named file, instead of taking it as the command line
-   arguments, with the "--pathspec-from-file" option.
-
- * "git submodule" learned a subcommand "set-url".
-
- * "git log" family learned "--pretty=reference" that gives the name
-   of a commit in the format that is often used to refer to it in log
-   messages.
-
- * The interaction between "git clone --recurse-submodules" and
-   alternate object store was ill-designed.  The documentation and
-   code have been taught to make more clear recommendations when the
-   users see failures.
-
- * Management of sparsely checked-out working tree has gained a
-   dedicated "sparse-checkout" command.
-
- * Miscellaneous small UX improvements on "git-p4".
-
- * "git sparse-checkout list" subcommand learned to give its output in
-   a more concise form when the "cone" mode is in effect.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * Debugging support for lazy cloning has been a bit improved.
-
- * Move the definition of a set of bitmask constants from 0ctal
-   literal to (1U<<count) notation.
-
- * Test updates to prepare for SHA-2 transition continues.
-
- * Crufty code and logic accumulated over time around the object
-   parsing and low-level object access used in "git fsck" have been
-   cleaned up.
-
- * The implementation of "git log --graph" got refactored and then its
-   output got simplified.
-
- * Follow recent push to move API docs from Documentation/ to header
-   files and update config.h
-
- * "git bundle" has been taught to use the parse options API.  "git
-   bundle verify" learned "--quiet" and "git bundle create" learned
-   options to control the progress output.
-
- * Handling of commit objects that use non UTF-8 encoding during
-   "rebase -i" has been improved.
-
- * The beginning of rewriting "git add -i" in C.
-
- * A label used in the todo list that are generated by "git rebase
-   --rebase-merges" is used as a part of a refname; the logic to come
-   up with the label has been tightened to avoid names that cannot be
-   used as such.
-
- * The logic to avoid duplicate label names generated by "git rebase
-   --rebase-merges" forgot that the machinery itself uses "onto" as a
-   label name, which must be avoided by auto-generated labels, which
-   has been corrected.
-
- * We have had compatibility fallback macro definitions for "PRIuMAX",
-   "PRIu32", etc. but did not for "PRIdMAX", while the code used the
-   last one apparently without any hiccup reported recently.  The
-   fallback macro definitions for these <inttypes.h> macros that must
-   appear in C99 systems have been removed.
-
- * Recently we have declared that GIT_TEST_* variables take the
-   usual boolean values (it used to be that some used "non-empty
-   means true" and taking GIT_TEST_VAR=YesPlease as true); make
-   sure we notice and fail when non-bool strings are given to
-   these variables.
-
- * Users of oneway_merge() (like "reset --hard") learned to take
-   advantage of fsmonitor to avoid unnecessary lstat(2) calls.
-
- * Performance tweak on "git push" into a repository with many refs
-   that point at objects we have never heard of.
-
- * PerfTest fix to avoid stale result mixed up with the latest round
-   of test results.
-
- * Hide lower-level verify_signed-buffer() API as a pure helper to
-   implement the public check_signature() function, in order to
-   encourage new callers to use the correct and more strict
-   validation.
-
- * Unnecessary reading of state variables back from the disk during
-   sequencer operation has been reduced.
-
- * The code has been made to avoid gmtime() and localtime() and prefer
-   their reentrant counterparts.
-
- * In a repository with many packfiles, the cost of the procedure that
-   avoids registering the same packfile twice was unnecessarily high
-   by using an inefficient search algorithm, which has been corrected.
-
- * Redo "git name-rev" to avoid recursive calls.
-
- * FreeBSD CI support via Cirrus-CI has been added.
-
-
-Fixes since v2.24
------------------
-
- * "rebase -i" ceased to run post-commit hook by mistake in an earlier
-   update, which has been corrected.
-
- * "git notes copy $original" ought to copy the notes attached to the
-   original object to HEAD, but a mistaken tightening to command line
-   parameter validation made earlier disabled that feature by mistake.
-
- * When all files from some subdirectory were renamed to the root
-   directory, the directory rename heuristics would fail to detect that
-   as a rename/merge of the subdirectory to the root directory, which has
-   been corrected.
-
- * Code clean-up and a bugfix in the logic used to tell worktree local
-   and repository global refs apart.
-   (merge f45f88b2e4 sg/dir-trie-fixes later to maint).
-
- * "git stash save" in a working tree that is sparsely checked out
-   mistakenly removed paths that are outside the area of interest.
-   (merge 4a58c3d7f7 js/update-index-ignore-removal-for-skip-worktree later to maint).
-
- * "git rev-parse --git-path HEAD.lock" did not give the right path
-   when run in a secondary worktree.
-   (merge 76a53d640f js/git-path-head-dot-lock-fix later to maint).
-
- * "git merge --no-commit" needs "--no-ff" if you do not want to move
-   HEAD, which has been corrected in the manual page for "git bisect".
-   (merge 8dd327b246 ma/bisect-doc-sample-update later to maint).
-
- * "git worktree add" internally calls "reset --hard" that should not
-   descend into submodules, even when submodule.recurse configuration
-   is set, but it was affected.  This has been corrected.
-   (merge 4782cf2ab6 pb/no-recursive-reset-hard-in-worktree-add later to maint).
-
- * Messages from die() etc. can be mixed up from multiple processes
-   without even line buffering on Windows, which has been worked
-   around.
-   (merge 116d1fa6c6 js/vreportf-wo-buffering later to maint).
-
- * HTTP transport had possible allocator/deallocator mismatch, which
-   has been corrected.
-
- * The watchman integration for fsmonitor was racy, which has been
-   corrected to be more conservative.
-   (merge dd0b61f577 kw/fsmonitor-watchman-fix later to maint).
-
- * Fetching from multiple remotes into the same repository in parallel
-   had a bad interaction with the recent change to (optionally) update
-   the commit-graph after a fetch job finishes, as these parallel
-   fetches compete with each other.  Which has been corrected.
-
- * Recent update to "git stash pop" made the command empty the index
-   when run with the "--quiet" option, which has been corrected.
-
- * "git fetch" codepath had a big "do not lazily fetch missing objects
-   when I ask if something exists" switch.  This has been corrected by
-   marking the "does this thing exist?" calls with "if not please do not
-   lazily fetch it" flag.
-
- * Test update to avoid wasted cycles.
-   (merge e0316695ec sg/skip-skipped-prereq later to maint).
-
- * Error handling after "git push" finishes sending the packdata and
-   waits for the response to the remote side has been improved.
-   (merge ad7a403268 jk/send-pack-remote-failure later to maint).
-
- * Some codepaths in "gitweb" that forgot to escape URLs generated
-   based on end-user input have been corrected.
-   (merge a376e37b2c jk/gitweb-anti-xss later to maint).
-
- * CI jobs for macOS has been made less chatty when updating perforce
-   package used during testing.
-   (merge 0dbc4a0edf jc/azure-ci-osx-fix-fix later to maint).
-
- * "git unpack-objects" used to show progress based only on the number
-   of received and unpacked objects, which stalled when it has to
-   handle an unusually large object.  It now shows the throughput as
-   well.
-   (merge bae60ba7e9 sg/unpack-progress-throughput later to maint).
-
- * The sequencer machinery compared the HEAD and the state it is
-   attempting to commit to decide if the result would be a no-op
-   commit, even when amending a commit, which was incorrect, and
-   has been corrected.
-
- * The code to parse GPG output used to assume incorrectly that the
-   finterprint for the primary key would always be present for a valid
-   signature, which has been corrected.
-   (merge 67a6ea6300 hi/gpg-optional-pkfp-fix later to maint).
-
- * "git submodule status" and "git submodule status --cached" show
-   different things, but the documentation did not cover them
-   correctly, which has been corrected.
-   (merge 8d483c8408 mg/doc-submodule-status-cached later to maint).
-
- * "git reset --patch $object" without any pathspec should allow a
-   tree object to be given, but incorrectly required a committish,
-   which has been corrected.
-
- * "git submodule status" that is run from a subdirectory of the
-   superproject did not work well, which has been corrected.
-   (merge 1f3aea22c7 mg/submodule-status-from-a-subdirectory later to maint).
-
- * The revision walking machinery uses resources like per-object flag
-   bits that need to be reset before a new iteration of walking
-   begins, but the resources related to topological walk were not
-   cleared correctly, which has been corrected.
-   (merge 0aa0c2b2ec mh/clear-topo-walk-upon-reset later to maint).
-
- * TravisCI update.
-   (merge 176441bfb5 sg/osx-force-gcc-9 later to maint).
-
- * While running "revert" or "cherry-pick --edit" for multiple
-   commits, a recent regression incorrectly detected "nothing to
-   commit, working tree clean", instead of replaying the commits,
-   which has been corrected.
-   (merge befd4f6a81 sg/assume-no-todo-update-in-cherry-pick later to maint).
-
- * Work around a issue where a FD that is left open when spawning a
-   child process and is kept open in the child can interfere with the
-   operation in the parent process on Windows.
-
- * One kind of progress messages were always given during commit-graph
-   generation, instead of following the "if it takes more than two
-   seconds, show progress" pattern, which has been corrected.
-
- * "git rebase" did not work well when format.useAutoBase
-   configuration variable is set, which has been corrected.
-
- * The "diff" machinery learned not to lose added/removed blank lines
-   in the context when --ignore-blank-lines and --function-context are
-   used at the same time.
-   (merge 0bb313a552 rs/xdiff-ignore-ws-w-func-context later to maint).
-
- * The test on "fast-import" used to get stuck when "fast-import" died
-   in the middle.
-   (merge 0d9b0d7885 sg/t9300-robustify later to maint).
-
- * "git format-patch" can take a set of configured format.notes values
-   to specify which notes refs to use in the log message part of the
-   output.  The behaviour of this was not consistent with multiple
-   --notes command line options, which has been corrected.
-   (merge e0f9095aaa dl/format-patch-notes-config-fixup later to maint).
-
- * "git p4" used to ignore lfs.storage configuration variable, which
-   has been corrected.
-   (merge ea94b16fb8 rb/p4-lfs later to maint).
-
- * Assorted fixes to the directory traversal API.
-   (merge 6836d2fe06 en/fill-directory-fixes later to maint).
-
- * Forbid pathnames that the platform's filesystem cannot represent on
-   MinGW.
-   (merge 4dc42c6c18 js/mingw-reserved-filenames later to maint).
-
- * "git rebase --signoff" stopped working when the command was written
-   in C, which has been corrected.
-   (merge 4fe7e43c53 en/rebase-signoff-fix later to maint).
-
- * An earlier update to Git for Windows declared that a tree object is
-   invalid if it has a path component with backslash in it, which was
-   overly strict, which has been corrected.  The only protection the
-   Windows users need is to prevent such path (or any path that their
-   filesystem cannot check out) from entering the index.
-   (merge 224c7d70fa js/mingw-loosen-overstrict-tree-entry-checks later to maint).
-
- * The code to write split commit-graph file(s) upon fetching computed
-   bogus value for the parameter used in splitting the resulting
-   files, which has been corrected.
-   (merge 63020f175f ds/commit-graph-set-size-mult later to maint).
-
- * Other code cleanup, docfix, build fix, etc.
-   (merge 80736d7c5e jc/am-show-current-patch-docfix later to maint).
-   (merge 8b656572ca sg/commit-graph-usage-fix later to maint).
-   (merge 6c02042139 mr/clone-dir-exists-to-path-exists later to maint).
-   (merge 44ae131e38 sg/blame-indent-heuristics-is-now-the-default later to maint).
-   (merge 0115e5d929 dl/doc-diff-no-index-implies-exit-code later to maint).
-   (merge 270de6acbe en/t6024-style later to maint).
-   (merge 14c4776d75 ns/test-desc-typofix later to maint).
-   (merge 68d40f30c4 dj/typofix-merge-strat later to maint).
-   (merge f66e0401ab jk/optim-in-pack-idx-conversion later to maint).
-   (merge 169bed7421 rs/parse-options-dup-null-fix later to maint).
-   (merge 51bd6be32d rs/use-copy-array-in-mingw-shell-command-preparation later to maint).
-   (merge b018719927 ma/t7004 later to maint).
-   (merge 932757b0cc ar/install-doc-update-cmds-needing-the-shell later to maint).
-   (merge 46efd28be1 ep/guard-kset-tar-headers later to maint).
-   (merge 9e5afdf997 ec/fetch-mark-common-refs-trace2 later to maint).
-   (merge f0e58b3fe8 pb/submodule-update-fetches later to maint).
-   (merge 2a02262078 dl/t5520-cleanup later to maint).
-   (merge a4fb016ba1 js/pkt-line-h-typofix later to maint).
-   (merge 54a7a64613 rs/simplify-prepare-cmd later to maint).
-   (merge 3eae30e464 jk/lore-is-the-archive later to maint).
-   (merge 14b7664df8 dl/lore-is-the-archive later to maint).
-   (merge 0e40a73a4c po/bundle-doc-clonable later to maint).
-   (merge e714b898c6 as/t7812-missing-redirects-fix later to maint).
-   (merge 528d9e6d01 jk/perf-wo-git-dot-pm later to maint).
-   (merge fc42f20e24 sg/test-squelch-noise-in-commit-bulk later to maint).
-   (merge c64368e3a2 bc/t9001-zsh-in-posix-emulation-mode later to maint).
-   (merge 11de8dd7ef dr/branch-usage-casefix later to maint).
-   (merge e05e8cf074 rs/archive-zip-code-cleanup later to maint).
-   (merge 147ee35558 rs/commit-export-env-simplify later to maint).
-   (merge 4507ecc771 rs/patch-id-use-oid-to-hex later to maint).
-   (merge 51a0a4ed95 mr/bisect-use-after-free later to maint).
-   (merge cc2bd5c45d pb/submodule-doc-xref later to maint).
-   (merge df5be01669 ja/doc-markup-cleanup later to maint).
-   (merge 7c5cea7242 mr/bisect-save-pointer-to-const-string later to maint).
-   (merge 20a67e8ce9 js/use-test-tool-on-path later to maint).
-   (merge 4e61b2214d ew/packfile-syscall-optim later to maint).
-   (merge ace0f86c7f pb/clarify-line-log-doc later to maint).
-   (merge 763a59e71c en/merge-recursive-oid-eq-simplify later to maint).
-   (merge 4e2c4c0d4f do/gitweb-typofix-in-comments later to maint).
-   (merge 421c0ffb02 jb/doc-multi-pack-idx-fix later to maint).
-   (merge f8740c586b pm/am-in-body-header-doc-update later to maint).
-   (merge 5814d44d9b tm/doc-submodule-absorb-fix later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.25.1.txt b/third_party/git/Documentation/RelNotes/2.25.1.txt
deleted file mode 100644
index cd869b02bbbc..000000000000
--- a/third_party/git/Documentation/RelNotes/2.25.1.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-Git 2.25.1 Release Notes
-========================
-
-Fixes since v2.25
------------------
-
- * "git commit" gives output similar to "git status" when there is
-   nothing to commit, but without honoring the advise.statusHints
-   configuration variable, which has been corrected.
-
- * has_object_file() said "no" given an object registered to the
-   system via pretend_object_file(), making it inconsistent with
-   read_object_file(), causing lazy fetch to attempt fetching an
-   empty tree from promisor remotes.
-
- * The code that tries to skip over the entries for the paths in a
-   single directory using the cache-tree was not careful enough
-   against corrupt index file.
-
- * Complete an update to tutorial that encourages "git switch" over
-   "git checkout" that was done only half-way.
-
- * Reduce unnecessary round-trip when running "ls-remote" over the
-   stateless RPC mechanism.
-
- * "git restore --staged" did not correctly update the cache-tree
-   structure, resulting in bogus trees to be written afterwards, which
-   has been corrected.
-
- * The code recently added to move to the entry beyond the ones in the
-   same directory in the index in the sparse-cone mode did not count
-   the number of entries to skip over incorrectly, which has been
-   corrected.
-
- * Work around test breakages caused by custom regex engine used in
-   libasan, when address sanitizer is used with more recent versions
-   of gcc and clang.
-
- * "git fetch --refmap=" option has got a better documentation.
-
- * Corner case bugs in "git clean" that stems from a (necessarily for
-   performance reasons) awkward calling convention in the directory
-   enumeration API has been corrected.
-
- * "git grep --no-index" should not get affected by the contents of
-   the .gitmodules file but when "--recurse-submodules" is given or
-   the "submodule.recurse" variable is set, it did.  Now these
-   settings are ignored in the "--no-index" mode.
-
- * Technical details of the bundle format has been documented.
-
- * Unhelpful warning messages during documentation build have been
-   squelched.
-
-Also contains various documentation updates, code clean-ups and minor fixups.
diff --git a/third_party/git/Documentation/RelNotes/2.25.2.txt b/third_party/git/Documentation/RelNotes/2.25.2.txt
deleted file mode 100644
index 303c53a17fdc..000000000000
--- a/third_party/git/Documentation/RelNotes/2.25.2.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-Git 2.25.2 Release Notes
-========================
-
-Fixes since v2.25.1
--------------------
-
- * Minor bugfixes to "git add -i" that has recently been rewritten in C.
-
- * An earlier update to show the location of working tree in the error
-   message did not consider the possibility that a git command may be
-   run in a bare repository, which has been corrected.
-
- * The "--recurse-submodules" option of various subcommands did not
-   work well when run in an alternate worktree, which has been
-   corrected.
-
- * Running "git rm" on a submodule failed unnecessarily when
-   .gitmodules is only cache-dirty, which has been corrected.
-
- * "git rebase -i" identifies existing commits in its todo file with
-   their abbreviated object name, which could become ambigous as it
-   goes to create new commits, and has a mechanism to avoid ambiguity
-   in the main part of its execution.  A few other cases however were
-   not covered by the protection against ambiguity, which has been
-   corrected.
-
- * The index-pack code now diagnoses a bad input packstream that
-   records the same object twice when it is used as delta base; the
-   code used to declare a software bug when encountering such an
-   input, but it is an input error.
-
- * The code to automatically shrink the fan-out in the notes tree had
-   an off-by-one bug, which has been killed.
-
- * "git check-ignore" did not work when the given path is explicitly
-   marked as not ignored with a negative entry in the .gitignore file.
-
- * The merge-recursive machinery failed to refresh the cache entry for
-   a merge result in a couple of places, resulting in an unnecessary
-   merge failure, which has been fixed.
-
- * Fix for a bug revealed by a recent change to make the protocol v2
-   the default.
-
- * "git merge signed-tag" while lacking the public key started to say
-   "No signature", which was utterly wrong.  This regression has been
-   reverted.
-
- * MinGW's poll() emulation has been improved.
-
- * "git show" and others gave an object name in raw format in its
-   error output, which has been corrected to give it in hex.
-
- * Both "git ls-remote -h" and "git grep -h" give short usage help,
-   like any other Git subcommand, but it is not unreasonable to expect
-   that the former would behave the same as "git ls-remote --head"
-   (there is no other sensible behaviour for the latter).  The
-   documentation has been updated in an attempt to clarify this.
-
-Also contains various documentation updates, code clean-ups and minor fixups.
diff --git a/third_party/git/Documentation/RelNotes/2.25.3.txt b/third_party/git/Documentation/RelNotes/2.25.3.txt
deleted file mode 100644
index 15f7f21f1002..000000000000
--- a/third_party/git/Documentation/RelNotes/2.25.3.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.25.3 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.4; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.25.4.txt b/third_party/git/Documentation/RelNotes/2.25.4.txt
deleted file mode 100644
index 0dbb5daeec3e..000000000000
--- a/third_party/git/Documentation/RelNotes/2.25.4.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.25.4 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.5; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.26.0.txt b/third_party/git/Documentation/RelNotes/2.26.0.txt
deleted file mode 100644
index 3a7a734c2694..000000000000
--- a/third_party/git/Documentation/RelNotes/2.26.0.txt
+++ /dev/null
@@ -1,341 +0,0 @@
-Git 2.26 Release Notes
-======================
-
-Updates since v2.25
--------------------
-
-Backward compatibility notes
-
- * "git rebase" uses a different backend that is based on the 'merge'
-   machinery by default.  There are a few known differences in the
-   behaviour from the traditional machinery based on patch+apply.
-
-   If your workflow is negatively affected by this change, please
-   report it to git@vger.kernel.org so that we can take a look into
-   it.  After doing so, you can set the 'rebase.backend' configuration
-   variable to 'apply', in order to use the old default behaviour in
-   the meantime.
-
-
-UI, Workflows & Features
-
- * Sample credential helper for using .netrc has been updated to work
-   out of the box.
-
- * gpg.minTrustLevel configuration variable has been introduced to
-   tell various signature verification codepaths the required minimum
-   trust level.
-
- * The command line completion (in contrib/) learned to complete
-   subcommands and arguments to "git worktree".
-
- * Disambiguation logic to tell revisions and pathspec apart has been
-   tweaked so that backslash-escaped glob special characters do not
-   count in the "wildcards are pathspec" rule.
-
- * One effect of specifying where the GIT_DIR is (either with the
-   environment variable, or with the "git --git-dir=<where> cmd"
-   option) is to disable the repository discovery.  This has been
-   placed a bit more stress in the documentation, as new users often
-   get confused.
-
- * Two help messages given when "git add" notices the user gave it
-   nothing to add have been updated to use advise() API.
-
- * A new version of fsmonitor-watchman hook has been introduced, to
-   avoid races.
-
- * "git config" learned to show in which "scope", in addition to in
-   which file, each config setting comes from.
-
- * The basic 7 colors learned the brighter counterparts
-   (e.g. "brightred").
-
- * "git sparse-checkout" learned a new "add" subcommand.
-
- * A configuration element used for credential subsystem can now use
-   wildcard pattern to specify for which set of URLs the entry
-   applies.
-
- * "git clone --recurse-submodules --single-branch" now uses the same
-   single-branch option when cloning the submodules.
-
- * "git rm" and "git stash" learns the new "--pathspec-from-file"
-   option.
-
- * "git am --show-current-patch" is a way to show the piece of e-mail
-   for the stopped step, which is not suitable to directly feed "git
-   apply" (it is designed to be a good "git am" input).  It learned a
-   new option to show only the patch part.
-
- * Handling of conflicting renames in merge-recursive have further
-   been made consistent with how existing codepaths try to mimic what
-   is done to add/add conflicts.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * Tell .editorconfig that in this project, *.txt files are indented
-   with tabs.
-
- * The test-lint machinery knew to check "VAR=VAL shell_function"
-   construct, but did not check "VAR= shell_function", which has been
-   corrected.
-
- * Replace "git config --bool" calls with "git config --type=bool" in
-   sample templates.
-
- * The effort to move "git-add--interactive" to C continues.
-
- * Improve error message generation for "git submodule add".
-
- * Preparation of test scripts for the day when the object names will
-   use SHA-256 continues.
-
- * Warn programmers about pretend_object_file() that allows the code
-   to tentatively use in-core objects.
-
- * The way "git pack-objects" reuses objects stored in existing pack
-   to generate its result has been improved.
-
- * The transport protocol version 2 becomes the default one.
-
- * Traditionally, we avoided threaded grep while searching in objects
-   (as opposed to files in the working tree) as accesses to the object
-   layer is not thread-safe.  This limitation is getting lifted.
-
- * "git rebase -i" (and friends) used to unnecessarily check out the
-   tip of the branch to be rebased, which has been corrected.
-
- * A low-level API function get_oid(), that accepts various ways to
-   name an object, used to issue end-user facing error messages
-   without l10n, which has been updated to be translatable.
-
- * Unneeded connectivity check is now disabled in a partial clone when
-   fetching into it.
-
- * Some rough edges in the sparse-checkout feature, especially around
-   the cone mode, have been cleaned up.
-
- * The diff-* plumbing family of subcommands now pay attention to the
-   diff.wsErrorHighlight configuration, which has been ignored before;
-   this allows "git add -p" to also show the whitespace problems to
-   the end user.
-
- * Some codepaths were given a repository instance as a parameter to
-   work in the repository, but passed the_repository instance to its
-   callees, which has been cleaned up (somewhat).
-
- * Memory footprint and performance of "git name-rev" has been
-   improved.
-
- * The object reachability bitmap machinery and the partial cloning
-   machinery were not prepared to work well together, because some
-   object-filtering criteria that partial clones use inherently rely
-   on object traversal, but the bitmap machinery is an optimization
-   to bypass that object traversal.  There however are some cases
-   where they can work together, and they were taught about them.
-
- * "git rebase" has learned to use the merge backend (i.e. the
-   machinery that drives "rebase -i") by default, while allowing
-   "--apply" option to use the "apply" backend (e.g. the moral
-   equivalent of "format-patch piped to am").  The rebase.backend
-   configuration variable can be set to customize.
-
- * Underlying machinery of "git bisect--helper" is being refactored
-   into pieces that are more easily reused.
-
-
-Fixes since v2.25
------------------
-
- * "git commit" gives output similar to "git status" when there is
-   nothing to commit, but without honoring the advise.statusHints
-   configuration variable, which has been corrected.
-
- * has_object_file() said "no" given an object registered to the
-   system via pretend_object_file(), making it inconsistent with
-   read_object_file(), causing lazy fetch to attempt fetching an
-   empty tree from promisor remotes.
-
- * Complete an update to tutorial that encourages "git switch" over
-   "git checkout" that was done only half-way.
-
- * C pedantry ;-) fix.
-
- * The code that tries to skip over the entries for the paths in a
-   single directory using the cache-tree was not careful enough
-   against corrupt index file.
-
- * Reduce unnecessary round-trip when running "ls-remote" over the
-   stateless RPC mechanism.
-
- * "git restore --staged" did not correctly update the cache-tree
-   structure, resulting in bogus trees to be written afterwards, which
-   has been corrected.
-
- * The code recently added to move to the entry beyond the ones in the
-   same directory in the index in the sparse-cone mode did not count
-   the number of entries to skip over incorrectly, which has been
-   corrected.
-
- * Rendering by "git log --graph" of ancestry lines leading to a merge
-   commit were made suboptimal to waste vertical space a bit with a
-   recent update, which has been corrected.
-
- * Work around test breakages caused by custom regex engine used in
-   libasan, when address sanitizer is used with more recent versions
-   of gcc and clang.
-
- * Minor bugfixes to "git add -i" that has recently been rewritten in C.
-
- * "git fetch --refmap=" option has got a better documentation.
-
- * "git checkout X" did not correctly fail when X is not a local
-   branch but could name more than one remote-tracking branches
-   (i.e. to be dwimmed as the starting point to create a corresponding
-   local branch), which has been corrected.
-   (merge fa74180d08 am/checkout-file-and-ref-ref-ambiguity later to maint).
-
- * Corner case bugs in "git clean" that stems from a (necessarily for
-   performance reasons) awkward calling convention in the directory
-   enumeration API has been corrected.
-
- * A fetch that is told to recursively fetch updates in submodules
-   inevitably produces reams of output, and it becomes hard to spot
-   error messages.  The command has been taught to enumerate
-   submodules that had errors at the end of the operation.
-   (merge 0222540827 es/fetch-show-failed-submodules-atend later to maint).
-
- * The "--recurse-submodules" option of various subcommands did not
-   work well when run in an alternate worktree, which has been
-   corrected.
-
- * Futureproofing a test not to depend on the current implementation
-   detail.
-
- * Running "git rm" on a submodule failed unnecessarily when
-   .gitmodules is only cache-dirty, which has been corrected.
-
- * C pedantry ;-) fix.
-
- * "git grep --no-index" should not get affected by the contents of
-   the .gitmodules file but when "--recurse-submodules" is given or
-   the "submodule.recurse" variable is set, it did.  Now these
-   settings are ignored in the "--no-index" mode.
-
- * Technical details of the bundle format has been documented.
-
- * Unhelpful warning messages during documentation build have been squelched.
-
- * "git rebase -i" identifies existing commits in its todo file with
-   their abbreviated object name, which could become ambiguous as it
-   goes to create new commits, and has a mechanism to avoid ambiguity
-   in the main part of its execution.  A few other cases however were
-   not covered by the protection against ambiguity, which has been
-   corrected.
-
- * Allow the rebase.missingCommitsCheck configuration to kick in when
-   "rebase --edit-todo" and "rebase --continue" restarts the procedure.
-   (merge 5a5445d878 ag/edit-todo-drop-check later to maint).
-
- * The way "git submodule status" reports an initialized but not yet
-   populated submodule has not been reimplemented correctly when a
-   part of the "git submodule" command was rewritten in C, which has
-   been corrected.
-   (merge f38c92452d pk/status-of-uncloned-submodule later to maint).
-
- * The code to automatically shrink the fan-out in the notes tree had
-   an off-by-one bug, which has been killed.
-
- * The index-pack code now diagnoses a bad input packstream that
-   records the same object twice when it is used as delta base; the
-   code used to declare a software bug when encountering such an
-   input, but it is an input error.
-
-
- * The code to compute the commit-graph has been taught to use a more
-   robust way to tell if two object directories refer to the same
-   thing.
-   (merge a7df60cac8 tb/commit-graph-object-dir later to maint).
-
- * "git remote rename X Y" needs to adjust configuration variables
-   (e.g. branch.<name>.remote) whose value used to be X to Y.
-   branch.<name>.pushRemote is now also updated.
-
- * Update to doc-diff.
-
- * Doc markup fix.
-
- * "git check-ignore" did not work when the given path is explicitly
-   marked as not ignored with a negative entry in the .gitignore file.
-
- * The merge-recursive machinery failed to refresh the cache entry for
-   a merge result in a couple of places, resulting in an unnecessary
-   merge failure, which has been fixed.
-
- * Fix for a bug revealed by a recent change to make the protocol v2
-   the default.
-
- * In rare cases "git worktree add <path>" could think that <path>
-   was already a registered worktree even when it wasn't and refuse
-   to add the new worktree. This has been corrected.
-   (merge bb69b3b009 es/worktree-avoid-duplication-fix later to maint).
-
- * "git push" should stop from updating a branch that is checked out
-   when receive.denyCurrentBranch configuration is set, but it failed
-   to pay attention to checkouts in secondary worktrees.  This has
-   been corrected.
-   (merge 4d864895a2 hv/receive-denycurrent-everywhere later to maint).
-
- * "git rebase BASE BRANCH" rebased/updated the tip of BRANCH and
-   checked it out, even when the BRANCH is checked out in a different
-   worktree.  This has been corrected.
-   (merge b5cabb4a96 es/do-not-let-rebase-switch-to-protected-branch later to maint).
-
- * "git describe" in a repository with multiple root commits sometimes
-   gave up looking for the best tag to describe a given commit with
-   too early, which has been adjusted.
-
- * "git merge signed-tag" while lacking the public key started to say
-   "No signature", which was utterly wrong.  This regression has been
-   reverted.
-
- * MinGW's poll() emulation has been improved.
-
- * "git show" and others gave an object name in raw format in its
-   error output, which has been corrected to give it in hex.
-
- * "git fetch" over HTTP walker protocol did not show any progress
-   output.  We inherently do not know how much work remains, but still
-   we can show something not to bore users.
-   (merge 7655b4119d rs/show-progress-in-dumb-http-fetch later to maint).
-
- * Both "git ls-remote -h" and "git grep -h" give short usage help,
-   like any other Git subcommand, but it is not unreasonable to expect
-   that the former would behave the same as "git ls-remote --head"
-   (there is no other sensible behaviour for the latter).  The
-   documentation has been updated in an attempt to clarify this.
-
- * Other code cleanup, docfix, build fix, etc.
-   (merge d0d0a357a1 am/update-pathspec-f-f-tests later to maint).
-   (merge f94f7bd00d am/test-pathspec-f-f-error-cases later to maint).
-   (merge c513a958b6 ss/t6025-modernize later to maint).
-   (merge b441717256 dl/test-must-fail-fixes later to maint).
-   (merge d031049da3 mt/sparse-checkout-doc-update later to maint).
-   (merge 145136a95a jc/skip-prefix later to maint).
-   (merge 5290d45134 jk/alloc-cleanups later to maint).
-   (merge 7a9f8ca805 rs/parse-options-concat-dup later to maint).
-   (merge 517b60564e rs/strbuf-insertstr later to maint).
-   (merge f696a2b1c8 jk/mailinfo-cleanup later to maint).
-   (merge de26f02db1 js/test-avoid-pipe later to maint).
-   (merge a2dc43414c es/doc-mentoring later to maint).
-   (merge 02bbbe9df9 es/worktree-cleanup later to maint).
-   (merge 2ce6d075fa rs/micro-cleanups later to maint).
-   (merge 27f182b3fc rs/blame-typefix-for-fingerprint later to maint).
-   (merge 3c29e21eb0 ma/test-cleanup later to maint).
-   (merge 240fc04f81 ag/rebase-remove-redundant-code later to maint).
-   (merge d68ce906c7 rs/commit-graph-code-simplification later to maint).
-   (merge a51d9e8f07 rj/t1050-use-test-path-is-file later to maint).
-   (merge fd0bc17557 kk/complete-diff-color-moved later to maint).
-   (merge 65bf820d0e en/test-cleanup later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.26.1.txt b/third_party/git/Documentation/RelNotes/2.26.1.txt
deleted file mode 100644
index 1b4ecb3fdc54..000000000000
--- a/third_party/git/Documentation/RelNotes/2.26.1.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.26.1 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.4; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.26.2.txt b/third_party/git/Documentation/RelNotes/2.26.2.txt
deleted file mode 100644
index d434d0c695e4..000000000000
--- a/third_party/git/Documentation/RelNotes/2.26.2.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Git v2.26.2 Release Notes
-=========================
-
-This release merges the security fix that appears in v2.17.5; see
-the release notes for that version for details.
diff --git a/third_party/git/Documentation/RelNotes/2.27.0.txt b/third_party/git/Documentation/RelNotes/2.27.0.txt
deleted file mode 100644
index 15518d06c111..000000000000
--- a/third_party/git/Documentation/RelNotes/2.27.0.txt
+++ /dev/null
@@ -1,525 +0,0 @@
-Git 2.27 Release Notes
-======================
-
-Updates since v2.26
--------------------
-
-Backward compatibility notes
-
- * When "git describe C" finds that commit C is pointed by a signed or
-   annotated tag, which records T as its tagname in the object, the
-   command gives T as its answer.  Even if the user renames or moves
-   such a tag from its natural location in the "refs/tags/" hierarchy,
-   "git describe C" would still give T as the answer, but in such a
-   case "git show T^0" would no longer work as expected.  There may be
-   nothing at "refs/tags/T" or even worse there may be a different tag
-   instead.
-
-   Starting from this version, "git describe" will always use the
-   "long" version, as if the "--long" option were given, when giving
-   its output based on such a misplaced tag to work around the problem.
-
- * "git pull" issues a warning message until the pull.rebase
-   configuration variable is explicitly given, which some existing
-   users may find annoying---those who prefer not to rebase need to
-   set the variable to false to squelch the warning.
-
- * The transport protocol version 2, which was promoted to the default
-   in Git 2.26 release, turned out to have some remaining rough edges,
-   so it has been demoted from the default.
-
-
-UI, Workflows & Features
-
- * A handful of options to configure SSL when talking to proxies have
-   been added.
-
- * Smudge/clean conversion filters are now given more information
-   (e.g. the object of the tree-ish in which the blob being converted
-   appears, in addition to its path, which has already been given).
-
- * When "git describe C" finds an annotated tag with tagname A to be
-   the best name to explain commit C, and the tag is stored in a
-   "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the
-   command gave a warning message but used A (not B) to describe C.
-   If C is exactly at the tag, the describe output would be "A", but
-   "git rev-parse A^0" would not be equal as "git rev-parse C^0".  The
-   behavior of the command has been changed to use the "long" form
-   i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse.
-
- * "git pull" learned to warn when no pull.rebase configuration
-   exists, and neither --[no-]rebase nor --ff-only is given (which
-   would result a merge).
-
- * "git p4" learned four new hooks and also "--no-verify" option to
-   bypass them (and the existing "p4-pre-submit" hook).
-
- * "git pull" shares many options with underlying "git fetch", but
-   some of them were not documented and some of those that would make
-   sense to pass down were not passed down.
-
- * "git rebase" learned the "--no-gpg-sign" option to countermand
-   commit.gpgSign the user may have.
-
- * The output from "git format-patch" uses RFC 2047 encoding for
-   non-ASCII letters on From: and Subject: headers, so that it can
-   directly be fed to e-mail programs.  A new option has been added
-   to produce these headers in raw.
-
- * "git log" learned "--show-pulls" that helps pathspec limited
-   history views; a merge commit that takes the whole change from a
-   side branch, which is normally omitted from the output, is shown
-   in addition to the commits that introduce real changes.
-
- * The interactive input from various codepaths are consolidated and
-   any prompt possibly issued earlier are fflush()ed before we read.
-
- * Allow "git rebase" to reapply all local commits, even if the may be
-   already in the upstream, without checking first.
-
- * The 'pack.useSparse' configuration variable now defaults to 'true',
-   enabling an optimization that has been experimental since Git 2.21.
-
- * "git rebase" happens to call some hooks meant for "checkout" and
-   "commit" by this was not a designed behaviour than historical
-   accident.  This has been documented.
-
- * "git merge" learns the "--autostash" option.
-
- * "sparse-checkout" UI improvements.
-
- * "git update-ref --stdin" learned a handful of new verbs to let the
-   user control ref update transactions more explicitly, which helps
-   as an ingredient to implement two-phase commit-style atomic
-   ref-updates across multiple repositories.
-
- * "git commit-graph write" learned different ways to write out split
-   files.
-
- * Introduce an extension to the commit-graph to make it efficient to
-   check for the paths that were modified at each commit using Bloom
-   filters.
-
- * The approxidate parser learns to parse seconds with fraction and
-   ignore fractional part.
-
- * The userdiff patterns for Markdown documents have been added.
-
- * The sparse-checkout patterns have been forbidden from excluding all
-   paths, leaving an empty working tree, for a long time.  This
-   limitation has been lifted.
-
- * "git restore --staged --worktree" now defaults to take the contents
-   out of "HEAD", instead of erring out.
-
- * "git p4" learned to recover from a (broken) state where a directory
-   and a file are recorded at the same path in the Perforce repository
-   the same way as their clients do.
-
- * "git multi-pack-index repack" has been taught to honor some
-   repack.* configuration variables.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * The advise API has been revamped to allow more systematic enumeration of
-   advice knobs in the future.
-
- * SHA-256 transition continues.
-
- * The code to interface with GnuPG has been refactored.
-
- * "git stash" has kept an escape hatch to use the scripted version
-   for a few releases, which got stale.  It has been removed.
-
- * Enable tests that require GnuPG on Windows.
-
- * Minor test usability improvement.
-
- * Trace2 enhancement to allow logging of the environment variables.
-
- * Test clean-up continues.
-
- * Perf-test update.
-
- * A Windows-specific test element has been made more robust against
-   misuse from both user's environment and programmer's errors.
-
- * Various tests have been updated to work around issues found with
-   shell utilities that come with busybox etc.
-
- * The config API made mixed uses of int and size_t types to represent
-   length of various pieces of text it parsed, which has been updated
-   to use the correct type (i.e. size_t) throughout.
-
- * The "--decorate-refs" and "--decorate-refs-exclude" options "git
-   log" takes have learned a companion configuration variable
-   log.excludeDecoration that sits at the lowest priority in the
-   family.
-
- * A new CI job to build and run test suite on linux with musl libc
-   has been added.
-
- * Update the CI configuration to use GitHub Actions, retiring the one
-   based on Azure Pipelines.
-
- * The directory traversal code had redundant recursive calls which
-   made its performance characteristics exponential with respect to
-   the depth of the tree, which was corrected.
-
- * "git blame" learns to take advantage of the "changed-paths" Bloom
-   filter stored in the commit-graph file.
-
- * The "bugreport" tool has been added.
-
- * The object walk with object filter "--filter=tree:0" can now take
-   advantage of the pack bitmap when available.
-
- * Instead of always building all branches at GitHub via Actions,
-   users can specify which branches to build.
-
- * Codepaths that show progress meter have been taught to also use the
-   start_progress() and the stop_progress() calls as a "region" to be
-   traced.
-
- * Instead of downloading Windows SDK for CI jobs for windows builds
-   from an external site (wingit.blob.core.windows.net), use the one
-   created in the windows-build job, to work around quota issues at
-   the external site.
-
-
-Fixes since v2.26
------------------
-
- * The real_path() convenience function can easily be misused; with a
-   bit of code refactoring in the callers' side, its use has been
-   eliminated.
-   (merge 49d3c4b481 am/real-path-fix later to maint).
-
- * Update "git p4" to work with Python 3.
-   (merge 6bb40ed20a yz/p4-py3 later to maint).
-
- * The mechanism to prevent "git commit" from making an empty commit
-   or amending during an interrupted cherry-pick was broken during the
-   rewrite of "git rebase" in C, which has been corrected.
-   (merge 430b75f720 pw/advise-rebase-skip later to maint).
-
- * Fix "git checkout --recurse-submodules" of a nested submodule
-   hierarchy.
-   (merge 846f34d351 pb/recurse-submodules-fix later to maint).
-
- * The "--fork-point" mode of "git rebase" regressed when the command
-   was rewritten in C back in 2.20 era, which has been corrected.
-   (merge f08132f889 at/rebase-fork-point-regression-fix later to maint).
-
- * The import-tars importer (in contrib/fast-import/) used to create
-   phony files at the top-level of the repository when the archive
-   contains global PAX headers, which made its own logic to detect and
-   omit the common leading directory ineffective, which has been
-   corrected.
-   (merge c839fcff65 js/import-tars-do-not-make-phony-files-from-pax-headers later to maint).
-
- * Simplify the commit ancestry connectedness check in a partial clone
-   repository in which "promised" objects are assumed to be obtainable
-   lazily on-demand from promisor remote repositories.
-   (merge 2b98478c6f jt/connectivity-check-optim-in-partial-clone later to maint).
-
- * The server-end of the v2 protocol to serve "git clone" and "git
-   fetch" was not prepared to see a delim packets at unexpected
-   places, which led to a crash.
-   (merge cacae4329f jk/harden-protocol-v2-delim-handling later to maint).
-
- * When fed a midx that records no objects, some codepaths tried to
-   loop from 0 through (num_objects-1), which, due to integer
-   arithmetic wrapping around, made it nonsense operation with out of
-   bounds array accesses.  The code has been corrected to reject such
-   an midx file.
-   (merge 796d61cdc0 dr/midx-avoid-int-underflow later to maint).
-
- * Utitiles run via the run_command() API were not spawned correctly
-   on Cygwin, when the paths to them are given as a full path with
-   backslashes.
-   (merge 05ac8582bc ak/run-command-on-cygwin-fix later to maint).
-
- * "git pull --rebase" tried to run a rebase even after noticing that
-   the pull results in a fast-forward and no rebase is needed nor
-   sensible, for the past few years due to a mistake nobody noticed.
-   (merge fbae70ddc6 en/pull-do-not-rebase-after-fast-forwarding later to maint).
-
- * "git rebase" with the merge backend did not work well when the
-   rebase.abbreviateCommands configuration was set.
-   (merge de9f1d3ef4 ag/rebase-merge-allow-ff-under-abbrev-command later to maint).
-
- * The logic to auto-follow tags by "git clone --single-branch" was
-   not careful to avoid lazy-fetching unnecessary tags, which has been
-   corrected.
-   (merge 167a575e2d jk/use-quick-lookup-in-clone-for-tag-following later to maint).
-
- * "git rebase -i" did not leave the reflog entries correctly.
-   (merge 1f6965f994 en/sequencer-reflog-action later to maint).
-
- * The more aggressive updates to remote-tracking branches we had for
-   the past 7 years or so were not reflected in the documentation,
-   which has been corrected.
-   (merge a44088435c pb/pull-fetch-doc later to maint).
-
- * We've left the command line parsing of "git log :/a/b/" broken for
-   about a full year without anybody noticing, which has been
-   corrected.
-   (merge 0220461071 jc/missing-ref-store-fix later to maint).
-
- * Misc fixes for Windows.
-   (merge 3efc128cd5 js/mingw-fixes later to maint).
-
- * "git rebase" (again) learns to honor "--no-keep-empty", which lets
-   the user to discard commits that are empty from the beginning (as
-   opposed to the ones that become empty because of rebasing).  The
-   interactive rebase also marks commits that are empty in the todo.
-   (merge 50ed76148a en/rebase-no-keep-empty later to maint).
-
- * Parsing the host part out of URL for the credential helper has been corrected.
-   (merge 4c5971e18a jk/credential-parsing-end-of-host-in-URL later to maint).
-
- * Document the recommended way to abort a failing test early (e.g. by
-   exiting a loop), which is to say "return 1".
-   (merge 7cc112dc95 jc/doc-test-leaving-early later to maint).
-
- * The code that refreshes the last access and modified time of
-   on-disk packfiles and loose object files have been updated.
-   (merge 312cd76130 lr/freshen-file-fix later to maint).
-
- * Validation of push certificate has been made more robust against
-   timing attacks.
-   (merge 719483e547 bc/constant-memequal later to maint).
-
- * The custom hash function used by "git fast-import" has been
-   replaced with the one from hashmap.c, which gave us a nice
-   performance boost.
-   (merge d8410a816b jk/fast-import-use-hashmap later to maint).
-
- * The "git submodule" command did not initialize a few variables it
-   internally uses and was affected by variable settings leaked from
-   the environment.
-   (merge 65d100c4dd lx/submodule-clear-variables later to maint).
-
- * Raise the minimum required version of docbook-xsl package to 1.74,
-   as 1.74.0 was from late 2008, which is more than 10 years old, and
-   drop compatibility cruft from our documentation suite.
-   (merge 3c255ad660 ma/doc-discard-docbook-xsl-1.73 later to maint).
-
- * "git log" learns "--[no-]mailmap" as a synonym to "--[no-]use-mailmap"
-   (merge 88acccda38 jc/log-no-mailmap later to maint).
-
- * "git commit-graph write --expire-time=<timestamp>" did not use the
-   given timestamp correctly, which has been corrected.
-   (merge b09b785c78 ds/commit-graph-expiry-fix later to maint).
-
- * Tests update to use "test-chmtime" instead of "touch -t".
-   (merge e892a56845 ds/t5319-touch-fix later to maint).
-
- * "git diff" in a partial clone learned to avoid lazy loading blob
-   objects in more casese when they are not needed.
-   (merge 95acf11a3d jt/avoid-prefetch-when-able-in-diff later to maint).
-
- * "git push --atomic" used to show failures for refs that weren't
-   even pushed, which has been corrected.
-   (merge dfe1b7f19c jx/atomic-push later to maint).
-
- * Code in builtin/*, i.e. those can only be called from within
-   built-in subcommands, that implements bulk of a couple of
-   subcommands have been moved to libgit.a so that they could be used
-   by others.
-   (merge 9460fd48b5 dl/libify-a-few later to maint).
-
- * Allowing the user to split a patch hunk while "git stash -p" does
-   not work well; a band-aid has been added to make this (partially)
-   work better.
-
- * "git diff-tree --pretty --notes" used to hit an assertion failure,
-   as it forgot to initialize the notes subsystem.
-   (merge 5778b22b3d tb/diff-tree-with-notes later to maint).
-
- * "git range-diff" fixes.
-   (merge 8d1675eb7f vd/range-diff-with-custom-pretty-format-fix later to maint).
-
- * "git grep" did not quote a path with unusual character like other
-   commands (like "git diff", "git status") do, but did quote when run
-   from a subdirectory, both of which has been corrected.
-   (merge 45115d8490 mt/grep-cquote-path later to maint).
-
- * GNU/Hurd is also among the ones that need the fopen() wrapper.
-   (merge 274a1328fb jc/gnu-hurd-lets-fread-read-dirs later to maint).
-
- * Those fetching over protocol v2 from linux-next and other kernel
-   repositories are reporting that v2 often fetches way too much than
-   needed.
-   (merge 11c7f2a30b jn/demote-proto2-from-default later to maint).
-
- * The upload-pack protocol v2 gave up too early before finding a
-   common ancestor, resulting in a wasteful fetch from a fork of a
-   project.  This has been corrected to match the behaviour of v0
-   protocol.
-   (merge 2f0a093dd6 jt/v2-fetch-nego-fix later to maint).
-
- * The build procedure did not use the libcurl library and its include
-   files correctly for a custom-built installation.
-   (merge 0573831950 jk/build-with-right-curl later to maint).
-
- * Tighten "git mailinfo" to notice and error out when decoded result
-   contains NUL in it.
-   (merge 3919997447 dd/mailinfo-with-nul later to maint).
-
- * Fix in-core inconsistency after fetching into a shallow repository
-   that broke the code to write out commit-graph.
-   (merge 37b9dcabfc tb/reset-shallow later to maint).
-
- * The commit-graph code exhausted file descriptors easily when it
-   does not have to.
-   (merge c8828530b7 tb/commit-graph-fd-exhaustion-fix later to maint).
-
- * The multi-pack-index left mmapped file descriptors open when it
-   does not have to.
-   (merge 6c7ff7cf7f ds/multi-pack-index later to maint).
-
- * Recent update to Homebrew used by macOS folks breaks build by
-   moving gettext library and necessary headers.
-   (merge a0b3108618 ds/build-homebrew-gettext-fix later to maint).
-
- * Incompatible options "--root" and "--fork-point" of "git rebase"
-   have been marked and documented as being incompatible.
-   (merge a35413c378 en/rebase-root-and-fork-point-are-incompatible later to maint).
-
- * Error and verbose trace messages from "git push" did not redact
-   credential material embedded in URLs.
-   (merge d192fa5006 js/anonymise-push-url-in-errors later to maint).
-
- * Update the parser used for credential.<URL>.<variable>
-   configuration, to handle <URL>s with '/' in them correctly.
-   (merge b44d0118ac bc/wildcard-credential later to maint).
-
- * Recent updates broke parsing of "credential.<url>.<key>" where
-   <url> is not a full URL (e.g. [credential "https://"] helper = ...)
-   stopped working, which has been corrected.
-   (merge 9a121b0d22 js/partial-urlmatch-2.17 later to maint).
-   (merge cd93e6c029 js/partial-urlmatch later to maint).
-
- * Some of the files commit-graph subsystem keeps on disk did not
-   correctly honor the core.sharedRepository settings and some were
-   left read-write.
-
- * In error messages that "git switch" mentions its option to create a
-   new branch, "-b/-B" options were shown, where "-c/-C" options
-   should be, which has been corrected.
-   (merge 7c16ef7577 dl/switch-c-option-in-error-message later to maint).
-
- * With the recent tightening of the code that is used to parse
-   various parts of a URL for use in the credential subsystem, a
-   hand-edited credential-store file causes the credential helper to
-   die, which is a bit too harsh to the users.  Demote the error
-   behaviour to just ignore and keep using well-formed lines instead.
-   (merge c03859a665 cb/credential-store-ignore-bogus-lines later to maint).
-
- * The samples in the credential documentation has been updated to
-   make it clear that we depict what would appear in the .git/config
-   file, by adding appropriate quotes as needed..
-   (merge 177681a07e jk/credential-sample-update later to maint).
-
- * "git branch" and other "for-each-ref" variants accepted multiple
-   --sort=<key> options in the increasing order of precedence, but it
-   had a few breakages around "--ignore-case" handling, and tie-breaking
-   with the refname, which have been fixed.
-   (merge 7c5045fc18 jk/for-each-ref-multi-key-sort-fix later to maint).
-
- * The coding guideline for shell scripts instructed to refer to a
-   variable with dollar-sign inside arithmetic expansion to work
-   around a bug in old versions of dash, which is a thing of the past.
-   Now we are not forbidden from writing $((var+1)).
-   (merge 32b5fe7f0e jk/arith-expansion-coding-guidelines later to maint).
-
- * The <stdlib.h> header on NetBSD brings in its own definition of
-   hmac() function (eek), which conflicts with our own and unrelated
-   function with the same name.  Our function has been renamed to work
-   around the issue.
-   (merge 3013118eb8 cb/avoid-colliding-with-netbsd-hmac later to maint).
-
- * The basic test did not honor $TEST_SHELL_PATH setting, which has
-   been corrected.
-   (merge 0555e4af58 cb/t0000-use-the-configured-shell later to maint).
-
- * Minor in-code comments and documentation updates around credential
-   API.
-   (merge 1aed817f99 cb/credential-doc-fixes later to maint).
-
- * Teach "am", "commit", "merge" and "rebase", when they are run with
-   the "--quiet" option, to pass "--quiet" down to "gc --auto".
-   (merge 7c3e9e8cfb jc/auto-gc-quiet later to maint).
-
- * The code to skip unmerged paths in the index when sparse checkout
-   is in use would have made out-of-bound access of the in-core index
-   when the last path was unmerged, which has been corrected.
-
- * Serving a "git fetch" client over "git://" and "ssh://" protocols
-   using the on-wire protocol version 2 was buggy on the server end
-   when the client needs to make a follow-up request to
-   e.g. auto-follow tags.
-   (merge 08450ef791 cc/upload-pack-v2-fetch-fix later to maint).
-
- * "git bisect replay" had trouble with input files when they used
-   CRLF line ending, which has been corrected.
-   (merge 6c722cbe5a cw/bisect-replay-with-dos later to maint).
-
- * "rebase -i" segfaulted when rearranging a sequence that has a
-   fix-up that applies another fix-up (which may or may not be a
-   fix-up of yet another step).
-   (merge 02471e7e20 js/rebase-autosquash-double-fixup-fix later to maint).
-
- * "git fsck" ensures that the paths recorded in tree objects are
-   sorted and without duplicates, but it failed to notice a case where
-   a blob is followed by entries that sort before a tree with the same
-   name.  This has been corrected.
-   (merge 9068cfb20f rs/fsck-duplicate-names-in-trees later to maint).
-
- * Code clean-up by removing a compatibility implementation of a
-   function we no longer use.
-   (merge 84b0115f0d cb/no-more-gmtime later to maint).
-
- * When a binary file gets modified and renamed on both sides of history
-   to different locations, both files would be written to the working
-   tree but both would have the contents from "ours".  This has been
-   corrected so that the path from each side gets their original content.
-
- * Fix for a copy-and-paste error introduced during 2.20 era.
-   (merge e68a5272b1 ds/multi-pack-verify later to maint).
-
- * Update an unconditional use of "grep -a" with a perl script in a test.
-   (merge 1eb7371236 dd/t5703-grep-a-fix later to maint).
-
- * Other code cleanup, docfix, build fix, etc.
-   (merge 564956f358 jc/maintain-doc later to maint).
-   (merge 7422b2a0a1 sg/commit-slab-clarify-peek later to maint).
-   (merge 9c688735f6 rs/doc-passthru-fetch-options later to maint).
-   (merge 757c2ba3e2 en/oidset-uninclude-hashmap later to maint).
-   (merge 8312aa7d74 jc/config-tar later to maint).
-   (merge d00a5bdd50 ss/submodule-foreach-cb later to maint).
-   (merge 64d1022e14 ar/test-style-fixes later to maint).
-   (merge 4a465443a6 ds/doc-clone-filter later to maint).
-   (merge bb2dbe301b jk/t3419-drop-expensive-tests later to maint).
-   (merge d3507cc712 js/test-junit-finalization-fix later to maint).
-   (merge 2149b6748f bc/faq later to maint).
-   (merge 12dc0879f1 jk/test-cleanup later to maint).
-   (merge 344420bf0f pb/rebase-doc-typofix later to maint).
-   (merge 7cd54d37dc dl/wrapper-fix-indentation later to maint).
-   (merge 78725ebda9 jc/allow-strlen-substitution-in-shell-scripts later to maint).
-   (merge 2ecfcdecc6 jm/gitweb-fastcgi-utf8 later to maint).
-   (merge 0740d0a5d3 jk/oid-array-cleanups later to maint).
-   (merge a1aba0c95c js/t0007-typofix later to maint).
-   (merge 76ba7fa225 ma/config-doc-fix later to maint).
-   (merge 826f0c0df2 js/subtree-doc-update-to-asciidoctor-2 later to maint).
-   (merge 88eaf361e0 eb/mboxrd-doc later to maint).
-   (merge 051cc54941 tm/zsh-complete-switch-restore later to maint).
-   (merge 39102cf4fe ms/doc-revision-illustration-fix later to maint).
-   (merge 4d9378bfad eb/gitweb-more-trailers later to maint).
-   (merge bdccbf7047 mt/doc-worktree-ref later to maint).
-   (merge ce9baf234f dl/push-recurse-submodules-fix later to maint).
-   (merge 4153274052 bc/doc-credential-helper-value later to maint).
-   (merge 5c7bb0146e jc/codingstyle-compare-with-null later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.28.0.txt b/third_party/git/Documentation/RelNotes/2.28.0.txt
deleted file mode 100644
index 6baf781380b5..000000000000
--- a/third_party/git/Documentation/RelNotes/2.28.0.txt
+++ /dev/null
@@ -1,236 +0,0 @@
-Git 2.28 Release Notes
-======================
-
-Updates since v2.27
--------------------
-
-Backward compatibility notes
-
- * "fetch.writeCommitGraph" is deemed to be still a bit too risky and
-   is no longer part of the "feature.experimental" set.
-
-
-UI, Workflows & Features
-
- * The commands in the "diff" family learned to honor "diff.relative"
-   configuration variable.
-
- * The check in "git fsck" to ensure that the tree objects are sorted
-   still had corner cases it missed unsorted entries.
-
- * The interface to redact sensitive information in the trace output
-   has been simplified.
-
- * The command line completion (in contrib/) learned to complete
-   options that the "git switch" command takes.
-
- * "git diff" used to take arguments in random and nonsense range
-   notation, e.g. "git diff A..B C", "git diff A..B C...D", etc.,
-   which has been cleaned up.
-
- * "git diff-files" has been taught to say paths that are marked as
-   intent-to-add are new files, not modified from an empty blob.
-
- * "git status" learned to report the status of sparse checkout.
-
- * "git difftool" has trouble dealing with paths added to the index
-   with the intent-to-add bit.
-
- * "git fast-export --anonymize" learned to take customized mapping to
-   allow its users to tweak its output more usable for debugging.
-
- * The command line completion support (in contrib/) used to be
-   prepared to work with "set -u" but recent changes got a bit more
-   sloppy.  This has been corrected.
-
- * "git gui" now allows opening work trees from the start-up dialog.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * Code optimization for a common case.
-   (merge 8777616e4d an/merge-single-strategy-optim later to maint).
-
- * We've adopted a convention that any on-stack structure can be
-   initialized to have zero values in all fields with "= { 0 }",
-   even when the first field happens to be a pointer, but sparse
-   complained that a null pointer should be spelled NULL for a long
-   time.  Start using -Wno-universal-initializer option to squelch
-   it (the latest sparse has it on by default).
-
- * "git log -L..." now takes advantage of the "which paths are touched
-   by this commit?" info stored in the commit-graph system.
-
- * As FreeBSD is not the only platform whose regexp library reports
-   a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that
-   automatically and skip the affected tests.
-
- * "git bugreport" learns to report what shell is in use.
-
- * Support for GIT_CURL_VERBOSE has been rewritten in terms of
-   GIT_TRACE_CURL.
-
- * Preliminary clean-ups around refs API, plus file format
-   specification documentation for the reftable backend.
-
- * Workaround breakage in MSVC build, where "curl-config --cflags"
-   gives settings appropriate for GCC build.
-
- * Code clean-up of "git clean" resulted in a fix of recent
-   performance regression.
-
- * Code clean-up in the codepath that serves "git fetch" continues.
-
- * "git merge-base --is-ancestor" is taught to take advantage of the
-   commit graph.
-
- * Rewrite of parts of the scripted "git submodule" Porcelain command
-   continues; this time it is "git submodule set-branch" subcommand's
-   turn.
-
- * The "fetch/clone" protocol has been updated to allow the server to
-   instruct the clients to grab pre-packaged packfile(s) in addition
-   to the packed object data coming over the wire.
-
- * A misdesigned strbuf_write_fd() function has been retired.
-
- * SHA-256 migration work continues, including CVS/SVN interface.
-
- * A few fields in "struct commit" that do not have to always be
-   present have been moved to commit slabs.
-
- * API cleanup for get_worktrees()
-
- * By renumbering object flag bits, "struct object" managed to lose
-   bloated inter-field padding.
-
- * The name of the primary branch in existing repositories, and the
-   default name used for the first branch in newly created
-   repositories, is made configurable, so that we can eventually wean
-   ourselves off of the hardcoded 'master'.
-
- * The effort to avoid using test_must_fail on non-git command continues.
-
- * In 2.28-rc0, we corrected a bug that some repository extensions are
-   honored by mistake even in a version 0 repositories (these
-   configuration variables in extensions.* namespace were supposed to
-   have special meaning in repositories whose version numbers are 1 or
-   higher), but this was a bit too big a change.  The behaviour in
-   recent versions of Git where certain extensions.* were honored by
-   mistake even in version 0 repositories has been restored.
-
-
-Fixes since v2.27
------------------
-
- * The "--prepare-p4-only" option of "git p4" is supposed to stop
-   after replaying one changeset, but kept going (by mistake?)
-
- * The error message from "git checkout -b foo -t bar baz" was
-   confusing.
-
- * Some repositories in the wild have commits that record nonsense
-   committer timezone (e.g. rails.git); "git fast-import" learned an
-   option to pass these nonsense timestamps intact to allow recreating
-   existing repositories as-is.
-   (merge d42a2fb72f en/fast-import-looser-date later to maint).
-
- * The command line completion script (in contrib/) tried to complete
-   "git stash -p" as if it were "git stash push -p", but it was too
-   aggressive and also affected "git stash show -p", which has been
-   corrected.
-   (merge fffd0cf520 vs/complete-stash-show-p-fix later to maint).
-
- * On-the-wire protocol v2 easily falls into a deadlock between the
-   remote-curl helper and the fetch-pack process when the server side
-   prematurely throws an error and disconnects.  The communication has
-   been updated to make it more robust.
-
- * "git checkout -p" did not handle a newly added path at all.
-   (merge 2c8bd8471a js/checkout-p-new-file later to maint).
-
- * The code to parse "git bisect start" command line was lax in
-   validating the arguments.
-   (merge 4d9005ff5d cb/bisect-helper-parser-fix later to maint).
-
- * Reduce memory usage during "diff --quiet" in a worktree with too
-   many stat-unmatched paths.
-   (merge d2d7fbe129 jk/diff-memuse-optim-with-stat-unmatch later to maint).
-
- * The reflog entries for "git clone" and "git fetch" did not
-   anonymize the URL they operated on.
-   (merge 46da295a77 js/reflog-anonymize-for-clone-and-fetch later to maint).
-
- * The behaviour of "sparse-checkout" in the state "git clone
-   --no-checkout" left was changed accidentally in 2.27, which has
-   been corrected.
-
- * Use of negative pathspec, while collecting paths including
-   untracked ones in the working tree, was broken.
-
- * The same worktree directory must be registered only once, but
-   "git worktree move" allowed this invariant to be violated, which
-   has been corrected.
-   (merge 810382ed37 es/worktree-duplicate-paths later to maint).
-
- * The effect of sparse checkout settings on submodules is documented.
-   (merge e7d7c73249 en/sparse-with-submodule-doc later to maint).
-
- * Code clean-up around "git branch" with a minor bugfix.
-   (merge dc44639904 dl/branch-cleanup later to maint).
-
- * A branch name used in a test has been clarified to match what is
-   going on.
-   (merge 08dc26061f pb/t4014-unslave later to maint).
-
- * An in-code comment in "git diff" has been updated.
-   (merge c592fd4c83 dl/diff-usage-comment-update later to maint).
-
- * The documentation and some tests have been adjusted for the recent
-   renaming of "pu" branch to "seen".
-   (merge 6dca5dbf93 js/pu-to-seen later to maint).
-
- * The code to push changes over "dumb" HTTP had a bad interaction
-   with the commit reachability code due to incorrect allocation of
-   object flag bits, which has been corrected.
-   (merge 64472d15e9 bc/http-push-flagsfix later to maint).
-
- * "git send-email --in-reply-to=<msg>" did not use the In-Reply-To:
-   header with the value given from the command line, and let it be
-   overridden by the value on In-Reply-To: header in the messages
-   being sent out (if exists).
-   (merge f9f60d7066 ra/send-email-in-reply-to-from-command-line-wins later to maint).
-
- * "git log -Lx,y:path --before=date" lost track of where the range
-   should be because it didn't take the changes made by the youngest
-   commits that are omitted from the output into account.
-
- * When "fetch.writeCommitGraph" configuration is set in a shallow
-   repository and a fetch moves the shallow boundary, we wrote out
-   broken commit-graph files that do not match the reality, which has
-   been corrected.
-
- * "git checkout" failed to catch an error from fstat() after updating
-   a path in the working tree.
-   (merge 35e6e212fd mt/entry-fstat-fallback-fix later to maint).
-
- * When an aliased command, whose output is piped to a pager by git,
-   gets killed by a signal, the pager got into a funny state, which
-   has been corrected (again).
-   (merge c0d73a59c9 ta/wait-on-aliased-commands-upon-signal later to maint).
-
- * The code to produce progress output from "git commit-graph --write"
-   had a few breakages, which have been fixed.
-
- * Other code cleanup, docfix, build fix, etc.
-   (merge 2c31a7aa44 jx/pkt-line-doc-count-fix later to maint).
-   (merge d63ae31962 cb/t5608-cleanup later to maint).
-   (merge 788db145c7 dl/t-readme-spell-git-correctly later to maint).
-   (merge 45a87a83bb dl/python-2.7-is-the-floor-version later to maint).
-   (merge b75a219904 es/advertise-contribution-doc later to maint).
-   (merge 0c9a4f638a rs/pull-leakfix later to maint).
-   (merge d546fe2874 rs/commit-reach-leakfix later to maint).
-   (merge 087bf5409c mk/pb-pretty-email-without-domain-part-fix later to maint).
-   (merge 5f4ee57ad9 es/worktree-code-cleanup later to maint).
-   (merge 0172f7834a cc/cat-file-usage-update later to maint).
-   (merge 81de0c01cf ma/rebase-doc-typofix later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.29.0.txt b/third_party/git/Documentation/RelNotes/2.29.0.txt
deleted file mode 100644
index 06ba2f803f66..000000000000
--- a/third_party/git/Documentation/RelNotes/2.29.0.txt
+++ /dev/null
@@ -1,514 +0,0 @@
-Git 2.29 Release Notes
-======================
-
-Updates since v2.28
--------------------
-
-UI, Workflows & Features
-
- * "git help log" has been enhanced by sharing more material from the
-   documentation for the underlying "git rev-list" command.
-
- * "git for-each-ref --format=<>" learned %(contents:size).
-
- * "git merge" learned to selectively omit " into <branch>" at the end
-   of the title of default merge message with merge.suppressDest
-   configuration.
-
- * The component to respond to "git fetch" request is made more
-   configurable to selectively allow or reject object filtering
-   specification used for partial cloning.
-
- * Stop when "sendmail.*" configuration variables are defined, which
-   could be a mistaken attempt to define "sendemail.*" variables.
-
- * The existing backends for "git mergetool" based on variants of vim
-   have been refactored and then support for "nvim" has been added.
-
- * "git bisect" learns the "--first-parent" option to find the first
-   breakage along the first-parent chain.
-
- * "git log --first-parent -p" showed patches only for single-parent
-   commits on the first-parent chain; the "--first-parent" option has
-   been made to imply "-m".  Use "--no-diff-merges" to restore the
-   previous behaviour to omit patches for merge commits.
-
- * The commit labels used to explain each side of conflicted hunks
-   placed by the sequencer machinery have been made more readable by
-   humans.
-
- * The "--batch-size" option of "git multi-pack-index repack" command
-   is now used to specify that very small packfiles are collected into
-   one until the total size roughly exceeds it.
-
- * The recent addition of SHA-256 support is marked as experimental in
-   the documentation.
-
- * "git fetch" learned --no-write-fetch-head option to avoid writing
-   the FETCH_HEAD file.
-
- * Command line completion (in contrib/) usually omits redundant,
-   deprecated and/or dangerous options from its output; it learned to
-   optionally include all of them.
-
- * The output from the "diff" family of the commands had abbreviated
-   object names of blobs involved in the patch, but its length was not
-   affected by the --abbrev option.  Now it is.
-
- * "git worktree" gained a "repair" subcommand to help users recover
-   after moving the worktrees or repository manually without telling
-   Git.  Also, "git init --separate-git-dir" no longer corrupts
-   administrative data related to linked worktrees.
-
- * The "--format=" option to the "for-each-ref" command and friends
-   learned a few more tricks, e.g. the ":short" suffix that applies to
-   "objectname" now also can be used for "parent", "tree", etc.
-
- * "git worktree add" learns that the "-d" is a synonym to "--detach"
-   option to create a new worktree without being on a branch.
-
- * "format-patch --range-diff=<prev> <origin>..HEAD" has been taught
-   not to ignore <origin> when <prev> is a single version.
-
- * "add -p" now allows editing paths that were only added in intent.
-
- * The 'meld' backend of the "git mergetool" learned to give the
-   underlying 'meld' the '--auto-merge' option, which would help
-   reduce the amount of text that requires manual merging.
-
- * "git for-each-ref" and friends that list refs used to allow only
-   one --merged or --no-merged to filter them; they learned to take
-   combination of both kind of filtering.
-
- * "git maintenance", a "git gc"'s big brother, has been introduced to
-   take care of more repository maintenance tasks, not limited to the
-   object database cleaning.
-
- * "git receive-pack" that accepts requests by "git push" learned to
-   outsource most of the ref updates to the new "proc-receive" hook.
-
- * "git push" that wants to be atomic and wants to send push
-   certificate learned not to prepare and sign the push certificate
-   when it fails the local check (hence due to atomicity it is known
-   that no certificate is needed).
-
- * "git commit-graph write" learned to limit the number of bloom
-   filters that are computed from scratch with the --max-new-filters
-   option.
-
- * The transport protocol v2 has become the default again.
-
- * The installation procedure learned to optionally omit "git-foo"
-   executable files for each 'foo' built-in subcommand, which are only
-   required by old timers that still rely on the age old promise that
-   prepending "git --exec-path" output to PATH early in their script
-   will keep the "git-foo" calls they wrote working.
-
- * The command line completion (in contrib/) learned that "git restore
-   -s <TAB>" is often followed by a refname.
-
- * "git shortlog" has been taught to group commits by the contents of
-   the trailer lines, like "Reviewed-by:", "Coauthored-by:", etc.
-
- * "git archive" learns the "--add-file" option to include untracked
-   files into a snapshot from a tree-ish.
-
- * "git fetch" and "git push" support negative refspecs.
-
- * "git format-patch" learns to take "whenAble" as a possible value
-   for the format.useAutoBase configuration variable to become no-op
-   when the  automatically computed base does not make sense.
-
- * Credential helpers are now allowed to terminate lines with CRLF
-   line ending, as well as LF line ending.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * The changed-path Bloom filter is improved using ideas from an
-   independent implementation.
-
- * Updates to the changed-paths bloom filter.
-
- * The test framework has been updated so that most tests will run
-   with predictable (artificial) timestamps.
-
- * Preliminary clean-up of the refs API in preparation for adding a
-   new refs backend "reftable".
-
- * Dev support to limit the use of test_must_fail to only git commands.
-
- * While packing many objects in a repository with a promissor remote,
-   lazily fetching missing objects from the promissor remote one by
-   one may be inefficient---the code now attempts to fetch all the
-   missing objects in batch (obviously this won't work for a lazy
-   clone that lazily fetches tree objects as you cannot even enumerate
-   what blobs are missing until you learn which trees are missing).
-
- * The pretend-object mechanism checks if the given object already
-   exists in the object store before deciding to keep the data
-   in-core, but the check would have triggered lazy fetching of such
-   an object from a promissor remote.
-
- * The argv_array API is useful for not just managing argv but any
-   "vector" (NULL-terminated array) of strings, and has seen adoption
-   to a certain degree.  It has been renamed to "strvec" to reduce the
-   barrier to adoption.
-
- * The final leg of SHA-256 transition plus doc updates.  Note that
-   there is no interoperability between SHA-1 and SHA-256
-   repositories yet.
-
- * CMake support to build with MSVC for Windows bypassing the Makefile.
-
- * A new helper function has_object() has been introduced to make it
-   easier to mark object existence checks that do and don't want to
-   trigger lazy fetches, and a few such checks are converted using it.
-
- * A no-op replacement function implemented as a C preprocessor macro
-   does not perform as good a job as one implemented as a "static
-   inline" function in catching errors in parameters; replace the
-   former with the latter in <git-compat-util.h> header.
-
- * Test framework update.
-   (merge d572f52a64 es/test-cmp-typocatcher later to maint).
-
- * Updates to "git merge" tests, in preparation for a new merge
-   strategy backend.
-
- * midx and commit-graph files now use the byte defined in their file
-   format specification for identifying the hash function used for
-   object names.
-
- * The FETCH_HEAD is now always read from the filesystem regardless of
-   the ref backend in use, as its format is much richer than the
-   normal refs, and written directly by "git fetch" as a plain file..
-
- * An unused binary has been discarded, and and a bunch of commands
-   have been turned into into built-in.
-
- * A handful of places in in-tree code still relied on being able to
-   execute the git subcommands, especially built-ins, in "git-foo"
-   form, which have been corrected.
-
- * When a packfile is removed by "git repack", multi-pack-index gets
-   cleared; the code was taught to do so less aggressively by first
-   checking if the midx actually refers to a pack that no longer
-   exists.
-
- * Internal API clean-up to handle two options "diff-index" and "log"
-   have, which happen to share the same short form, more sensibly.
-
- * The "add -i/-p" machinery has been written in C but it is not used
-   by default yet.  It is made default to those who are participating
-   in feature.experimental experiment.
-
- * Allow maintainers to tweak $(TAR) invocations done while making
-   distribution tarballs.
-
- * "git index-pack" learned to resolve deltified objects with greater
-   parallelism.
-
- * "diff-highlight" (in contrib/) had a logic to flush its output upon
-   seeing a blank line but the way it detected a blank line was broken.
-
- * The logic to skip testing on the tagged commit and the tag itself
-   was not quite consistent which led to failure of Windows test
-   tasks.  It has been revamped to consistently skip revisions that
-   have already been tested, based on the tree object of the revision.
-
-
-Fixes since v2.28
------------------
-
- * The "mediawiki" remote backend which lives in contrib/mw-to-git/
-   and is not built with git by default, had an RCE bug allowing a
-   malicious MediaWiki server operator to inject arbitrary commands
-   for execution by a cloning client. This has been fixed.
-
-   The bug was discovered and reported by Joern Schneeweisz of GitLab
-   to the git-security mailing list. Its practical impact due to the
-   obscurity of git-remote-mediawiki was deemed small enough to forgo
-   a dedicated security release.
-
- * "git clone --separate-git-dir=$elsewhere" used to stomp on the
-   contents of the existing directory $elsewhere, which has been
-   taught to fail when $elsewhere is not an empty directory.
-   (merge dfaa209a79 bw/fail-cloning-into-non-empty later to maint).
-
- * With the base fix to 2.27 regresion, any new extensions in a v0
-   repository would still be silently honored, which is not quite
-   right.  Instead, complain and die loudly.
-   (merge ec91ffca04 jk/reject-newer-extensions-in-v0 later to maint).
-
- * Fetching from a lazily cloned repository resulted at the server
-   side in attempts to lazy fetch objects that the client side has,
-   many of which will not be available from the third-party anyway.
-   (merge 77aa0941ce jt/avoid-lazy-fetching-upon-have-check later to maint).
-
- * Fix to an ancient bug caused by an over-eager attempt for
-   optimization.
-   (merge a98f7fb366 rs/add-index-entry-optim-fix later to maint).
-
- * Pushing a ref whose name contains non-ASCII character with the
-   "--force-with-lease" option did not work over smart HTTP protocol,
-   which has been corrected.
-   (merge cd85b447bf bc/push-cas-cquoted-refname later to maint).
-
- * "git mv src dst", when src is an unmerged path, errored out
-   correctly but with an incorrect error message to claim that src is
-   not tracked, which has been clarified.
-   (merge 9b906af657 ct/mv-unmerged-path-error later to maint).
-
- * Fix to a regression introduced during 2.27 cycle.
-   (merge cada7308ad en/fill-directory-exponential later to maint).
-
- * Command line completion (in contrib/) update.
-   (merge 688b87c81b mp/complete-show-color-moved later to maint).
-
- * All "mergy" operations that internally use the merge-recursive
-   machinery should honor the merge.renormalize configuration, but
-   many of them didn't.
-
- * Doc cleanup around "worktree".
-   (merge dc9c144be5 es/worktree-doc-cleanups later to maint).
-
- * The "git blame --first-parent" option was not documented, but now
-   it is.
-   (merge 11bc12ae1e rp/blame-first-parent-doc later to maint).
-
- * The logic to find the ref transaction hook script attempted to
-   cache the path to the found hook without realizing that it needed
-   to keep a copied value, as the API it used returned a transitory
-   buffer space.  This has been corrected.
-   (merge 09b2aa30c9 ps/ref-transaction-hook later to maint).
-
- * Recent versions of "git diff-files" shows a diff between the index
-   and the working tree for "intent-to-add" paths as a "new file"
-   patch; "git apply --cached" should be able to take "git diff-files"
-   and should act as an equivalent to "git add" for the path, but the
-   command failed to do so for such a path.
-   (merge 4c025c667e rp/apply-cached-with-i-t-a later to maint).
-
- * "git diff [<tree-ish>] $path" for a $path that is marked with i-t-a
-   bit was not showing the mode bits from the working tree.
-   (merge cb0dd22b82 rp/ita-diff-modefix later to maint).
-
- * Ring buffer with size 4 used for bin-hex translation resulted in a
-   wrong object name in the sequencer's todo output, which has been
-   corrected.
-   (merge 5da69c0dac ak/sequencer-fix-find-uniq-abbrev later to maint).
-
- * When given more than one target line ranges, "git blame -La,b
-   -Lc,d" was over-eager to coalesce groups of original lines and
-   showed incorrect results, which has been corrected.
-   (merge c2ebaa27d6 jk/blame-coalesce-fix later to maint).
-
- * The regexp to identify the function boundary for FORTRAN programs
-   has been updated.
-   (merge 75c3b6b2e8 pb/userdiff-fortran-update later to maint).
-
- * A few end-user facing messages have been updated to be
-   hash-algorithm agnostic.
-   (merge 4279000d3e jc/object-names-are-not-sha-1 later to maint).
-
- * "unlink" emulation on MinGW has been optimized.
-   (merge 680e0b4524 jh/mingw-unlink later to maint).
-
- * The purpose of "git init --separate-git-dir" is to initialize a
-   new project with the repository separate from the working tree,
-   or, in the case of an existing project, to move the repository
-   (the .git/ directory) out of the working tree. It does not make
-   sense to use --separate-git-dir with a bare repository for which
-   there is no working tree, so disallow its use with bare
-   repositories.
-   (merge ccf236a23a es/init-no-separate-git-dir-in-bare later to maint).
-
- * "ls-files -o" mishandled the top-level directory of another git
-   working tree that hangs in the current git working tree.
-   (merge ab282aa548 en/dir-nonbare-embedded later to maint).
-
- * Fix some incorrect UNLEAK() annotations.
-   (merge 3e19816dc0 jk/unleak-fixes later to maint).
-
- * Use more buffered I/O where we used to call many small write(2)s.
-   (merge a698d67b08 rs/more-buffered-io later to maint).
-
- * The patch-id computation did not ignore the "incomplete last line"
-   marker like whitespaces.
-   (merge 82a62015a7 rs/patch-id-with-incomplete-line later to maint).
-
- * Updates into a lazy/partial clone with a submodule did not work
-   well with transfer.fsckobjects set.
-
- * The parser for "git for-each-ref --format=..." was too loose when
-   parsing the "%(trailers...)" atom, and forgot that "trailers" and
-   "trailers:<modifiers>" are the only two allowed forms, which has
-   been corrected.
-   (merge 2c22e102f8 hv/ref-filter-trailers-atom-parsing-fix later to maint).
-
- * Long ago, we decided to use 3 threads by default when running the
-   index-pack task in parallel, which has been adjusted a bit upwards.
-   (merge fbff95b67f jk/index-pack-w-more-threads later to maint).
-
- * "git restore/checkout --no-overlay" with wildcarded pathspec
-   mistakenly removed matching paths in subdirectories, which has been
-   corrected.
-   (merge bfda204ade rs/checkout-no-overlay-pathspec-fix later to maint).
-
- * The description of --cached/--index options in "git apply --help"
-   has been updated.
-   (merge d064702be3 rp/apply-cached-doc later to maint).
-
- * Feeding "$ZERO_OID" to "git log --ignore-missing --stdin", and
-   running "git log --ignore-missing $ZERO_OID" fell back to start
-   digging from HEAD; it has been corrected to become a no-op, like
-   "git log --tags=no-tag-matches-this-pattern" does.
-   (merge 04a0e98515 jk/rev-input-given-fix later to maint).
-
- * Various callers of run_command API have been modernized.
-   (merge afbdba391e jc/run-command-use-embedded-args later to maint).
-
- * List of options offered and accepted by "git add -i/-p" were
-   inconsistent, which have been corrected.
-   (merge ce910287e7 pw/add-p-allowed-options-fix later to maint).
-
- * "git diff --stat -w" showed 0-line changes for paths whose changes
-   were only whitespaces, which was not intuitive.  We now omit such
-   paths from the stat output.
-   (merge 1cf3d5db9b mr/diff-hide-stat-wo-textual-change later to maint).
-
- * It was possible for xrealloc() to send a non-NULL pointer that has
-   been freed, which has been fixed.
-   (merge 6479ea4a8a jk/xrealloc-avoid-use-after-free later to maint).
-
- * "git status" has trouble showing where it came from by interpreting
-   reflog entries that record certain events, e.g. "checkout @{u}", and
-   gives a hard/fatal error.  Even though it inherently is impossible
-   to give a correct answer because the reflog entries lose some
-   information (e.g. "@{u}" does not record what branch the user was
-   on hence which branch 'the upstream' needs to be computed, and even
-   if the record were available, the relationship between branches may
-   have changed), at least hide the error and allow "status" to show its
-   output.
-
- * "git status --short" quoted a path with SP in it when tracked, but
-   not those that are untracked, ignored or unmerged.  They are all
-   shown quoted consistently.
-
- * "git diff/show" on a change that involves a submodule used to read
-   the information on commits in the submodule from a wrong repository
-   and gave a wrong information when the commit-graph is involved.
-   (merge 85a1ec2c32 mf/submodule-summary-with-correct-repository later to maint).
-
- * Unlike "git config --local", "git config --worktree" did not fail
-   early and cleanly when started outside a git repository.
-   (merge 378fe5fc3d mt/config-fail-nongit-early later to maint).
-
- * There is a logic to estimate how many objects are in the
-   repository, which is meant to run once per process invocation, but
-   it ran every time the estimated value was requested.
-   (merge 67bb65de5d jk/dont-count-existing-objects-twice later to maint).
-
- * "git remote set-head" that failed still said something that hints
-   the operation went through, which was misleading.
-   (merge 5a07c6c3c2 cs/don-t-pretend-a-failed-remote-set-head-succeeded later to maint).
-
- * "git fetch --all --ipv4/--ipv6" forgot to pass the protocol options
-   to instances of the "git fetch" that talk to individual remotes,
-   which has been corrected.
-   (merge 4e735c1326 ar/fetch-ipversion-in-all later to maint).
-
- * The "unshelve" subcommand of "git p4" incorrectly used commit^N
-   where it meant to say commit~N to name the Nth generation
-   ancestor, which has been corrected.
-   (merge 0acbf5997f ld/p4-unshelve-fix later to maint).
-
- * "git clone" that clones from SHA-1 repository, while
-   GIT_DEFAULT_HASH set to use SHA-256 already, resulted in an
-   unusable repository that half-claims to be SHA-256 repository
-   with SHA-1 objects and refs.  This has been corrected.
-
- * Adjust sample hooks for hash algorithm other than SHA-1.
-   (merge d8d3d632f4 dl/zero-oid-in-hooks later to maint).
-
- * "git range-diff" showed incorrect diffstat, which has been
-   corrected.
-
- * Earlier we taught "git pull" to warn when the user does not say the
-   histories need to be merged, rebased or accepts only fast-
-   forwarding, but the warning triggered for those who have set the
-   pull.ff configuration variable.
-   (merge 54200cef86 ah/pull later to maint).
-
- * Compilation fix around type punning.
-   (merge 176380fd11 jk/drop-unaligned-loads later to maint).
-
- * "git blame --ignore-rev/--ignore-revs-file" failed to validate
-   their input are valid revision, and failed to take into account
-   that the user may want to give an annotated tag instead of a
-   commit, which has been corrected.
-   (merge 610e2b9240 jc/blame-ignore-fix later to maint).
-
- * "git bisect start X Y", when X and Y are not valid committish
-   object names, should take X and Y as pathspec, but didn't.
-   (merge 73c6de06af cc/bisect-start-fix later to maint).
-
- * The explanation of the "scissors line" has been clarified.
-   (merge 287416dba6 eg/mailinfo-doc-scissors later to maint).
-
- * A race that leads to an access to a free'd data was corrected in
-   the codepath that reads pack files.
-   (merge bda959c476 mt/delta-base-cache-races later to maint).
-
- * in_merge_bases_many(), a way to see if a commit is reachable from
-   any commit in a set of commits, was totally broken when the
-   commit-graph feature was in use, which has been corrected.
-   (merge 8791bf1841 ds/in-merge-bases-many-optim-bug later to maint).
-
- * "git submodule update --quiet" did not squelch underlying "rebase"
-   and "pull" commands.
-   (merge 3ad0401e9e td/submodule-update-quiet later to maint).
-
- * The lazy fetching done internally to make missing objects available
-   in a partial clone incorrectly made permanent damage to the partial
-   clone filter in the repository, which has been corrected.
-
- * "log -c --find-object=X" did not work well to find a merge that
-   involves a change to an object X from only one parent.
-   (merge 957876f17d jk/diff-cc-oidfind-fix later to maint).
-
- * Other code cleanup, docfix, build fix, etc.
-   (merge 84544f2ea3 sk/typofixes later to maint).
-   (merge b17f411ab5 ar/help-guides-doc later to maint).
-   (merge 98c6871fad rs/grep-simpler-parse-object-or-die-call later to maint).
-   (merge 861c4ce141 en/typofixes later to maint).
-   (merge 60e47f6773 sg/ci-git-path-fix-with-pyenv later to maint).
-   (merge e2bfa50ac3 jb/doc-packfile-name later to maint).
-   (merge 918d8ff780 es/worktree-cleanup later to maint).
-   (merge dc156bc31f ma/t1450-quotefix later to maint).
-   (merge 56e743426b en/merge-recursive-comment-fixes later to maint).
-   (merge 7d23ff818f rs/bisect-oid-to-hex-fix later to maint).
-   (merge de20baf2c9 ny/notes-doc-sample-update later to maint).
-   (merge f649aaaf82 so/rev-parser-errormessage-fix later to maint).
-   (merge 6103d58b7f bc/sha-256-cvs-svn-updates later to maint).
-   (merge ac900fddb7 ma/stop-progress-null-fix later to maint).
-   (merge e767963ab6 rs/upload-pack-sigchain-fix later to maint).
-   (merge a831908599 rs/preserve-merges-unused-code-removal later to maint).
-   (merge 6dfefe70a9 jb/commit-graph-doc-fix later to maint).
-   (merge 847b37271e pb/set-url-docfix later to maint).
-   (merge 748f733d54 mt/checkout-entry-dead-code-removal later to maint).
-   (merge ce820cbd58 dl/subtree-docs later to maint).
-   (merge 55fe225dde jk/leakfix later to maint).
-   (merge ee22a29215 so/pretty-abbrev-doc later to maint).
-   (merge 3100fd5588 jc/post-checkout-doc later to maint).
-   (merge 17bae89476 pb/doc-external-diff-env later to maint).
-   (merge 27ed6ccc12 jk/worktree-check-clean-leakfix later to maint).
-   (merge 1302badd16 ea/blame-use-oideq later to maint).
-   (merge e6d5a11fed al/t3200-back-on-a-branch later to maint).
-   (merge 324efcf6b6 pw/add-p-leakfix later to maint).
-   (merge 1c6ffb546b jk/add-i-fixes later to maint).
-   (merge e40e936551 cd/commit-graph-doc later to maint).
-   (merge 0512eabd91 jc/sequencer-stopped-sha-simplify later to maint).
-   (merge d01141de5a so/combine-diff-simplify later to maint).
-   (merge 3be01e5ab1 sn/fast-import-doc later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.29.1.txt b/third_party/git/Documentation/RelNotes/2.29.1.txt
deleted file mode 100644
index 295ee2135f48..000000000000
--- a/third_party/git/Documentation/RelNotes/2.29.1.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Git v2.29.1 Release Notes
-=========================
-
-This is to fix the build procedure change in 2.28 where we failed to
-install a few programs that should be installed in /usr/bin (namely,
-receive-pack, upload-archive and upload-pack) when the non-default
-SKIP_DASHED_BUILT_INS installation option is in effect.
-
-A minor glitch in a non-default installation may usually not deserve
-a hotfix, but I know Git for Windows ship binaries built with this
-option, so let's make an exception.
diff --git a/third_party/git/Documentation/RelNotes/2.29.2.txt b/third_party/git/Documentation/RelNotes/2.29.2.txt
deleted file mode 100644
index 632b5b580ac3..000000000000
--- a/third_party/git/Documentation/RelNotes/2.29.2.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Git v2.29.2 Release Notes
-=========================
-
-This release is primarily to fix brown-paper-bag breakages in the
-2.29.0 release.
-
-Fixes since v2.29.1
--------------------
-
- * In 2.29, "--committer-date-is-author-date" option of "rebase" and
-   "am" subcommands lost the e-mail address by mistake, which has been
-   corrected.
diff --git a/third_party/git/Documentation/RelNotes/2.3.0.txt b/third_party/git/Documentation/RelNotes/2.3.0.txt
deleted file mode 100644
index e3c639c8407f..000000000000
--- a/third_party/git/Documentation/RelNotes/2.3.0.txt
+++ /dev/null
@@ -1,300 +0,0 @@
-Git v2.3 Release Notes
-======================
-
-This one ended up to be a release with lots of small corrections and
-improvements without big uncomfortably exciting features.  The recent
-security fix that went to 2.2.1 and older maintenance tracks is also
-contained in this update.
-
-
-Updates since v2.2
-------------------
-
-Ports
-
- * Recent gcc toolchain on Cygwin started throwing compilation warning,
-   which has been squelched.
-
- * A few updates to build on platforms that lack tv_nsec,
-   clock_gettime, CLOCK_MONOTONIC and HMAC_CTX_cleanup (e.g. older
-   RHEL) have been added.
-
-
-UI, Workflows & Features
-
- * It was cumbersome to use "GIT_SSH" mechanism when the user wanted
-   to pass an extra set of arguments to the underlying ssh.  A new
-   environment variable GIT_SSH_COMMAND can be used for this.
-
- * A request to store an empty note via "git notes" meant to remove
-   note from the object but with --allow-empty we will store a
-   (surprise!)  note that is empty.
-
- * "git interpret-trailers" learned to properly handle the
-   "Conflicts:" block at the end.
-
- * "git am" learned "--message-id" option to copy the message ID of
-   the incoming e-mail to the log message of resulting commit.
-
- * "git clone --reference=<over there>" learned the "--dissociate"
-   option to go with it; it borrows objects from the reference object
-   store while cloning only to reduce network traffic and then
-   dissociates the resulting clone from the reference by performing
-   local copies of borrowed objects.
-
- * "git send-email" learned "--transfer-encoding" option to force a
-   non-fault Content-Transfer-Encoding header (e.g. base64).
-
- * "git send-email" normally identifies itself via X-Mailer: header in
-   the message it sends out.  A new command line flag --no-xmailer
-   allows the user to squelch the header.
-
- * "git push" into a repository with a working tree normally refuses
-   to modify the branch that is checked out.  The command learned to
-   optionally do an equivalent of "git reset --hard" only when there
-   is no change to the working tree and the index instead, which would
-   be useful to "deploy" by pushing into a repository.
-
- * "git new-workdir" (in contrib/) can be used to populate an empty
-   and existing directory now.
-
- * Credential helpers are asked in turn until one of them give
-   positive response, which is cumbersome to turn off when you need to
-   run Git in an automated setting.  The credential helper interface
-   learned to allow a helper to say "stop, don't ask other helpers."
-   Also GIT_TERMINAL_PROMPT environment can be set to false to disable
-   our built-in prompt mechanism for passwords.
-
- * "git branch -d" (delete) and "git branch -m" (move) learned to
-   honor "-f" (force) flag; unlike many other subcommands, the way to
-   force these have been with separate "-D/-M" options, which was
-   inconsistent.
-
- * "diff-highlight" filter (in contrib/) allows its color output to be
-   customized via configuration variables.
-
- * "git imap-send" learned to take "-v" (verbose) and "-q" (quiet)
-   command line options.
-
- * "git remote add $name $URL" is now allowed when "url.$URL.insteadOf"
-   is already defined.
-
- * "git imap-send" now can be built to use cURL library to talk to
-   IMAP servers (if the library is recent enough, of course).
-   This allows you to use authenticate method other than CRAM-MD5,
-   among other things.
-
- * "git imap-send" now allows GIT_CURL_VERBOSE environment variable to
-   control the verbosity when talking via the cURL library.
-
- * The prompt script (in contrib/) learned to optionally hide prompt
-   when in an ignored directory by setting GIT_PS1_HIDE_IF_PWD_IGNORED
-   shell variable.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * Earlier we made "rev-list --object-edge" more aggressively list the
-   objects at the edge commits, in order to reduce number of objectsใ€€
-   fetched into a shallow repository, but the change affected cases
-   other than "fetching into a shallow repository" and made it
-   unusably slow (e.g. fetching into a normal repository should not
-   have to suffer the overhead from extra processing).  Limit it to a
-   more specific case by introducing --objects-edge-aggressive, a new
-   option to rev-list.
-
- * Squelched useless compiler warnings on Mac OS X regarding the
-   crypto API.
-
- * The procedure to generate unicode table has been simplified.
-
- * Some filesystems assign filemodes in a strange way, fooling then
-   automatic "filemode trustability" check done during a new
-   repository creation.  The initialization codepath has been hardened
-   against this issue.
-
- * The codepath in "git remote update --prune" to drop many refs has
-   been optimized.
-
- * The API into get_merge_bases*() family of functions was easy to
-   misuse, which has been corrected to make it harder to do so.
-
- * Long overdue departure from the assumption that S_IFMT is shared by
-   everybody made in 2005, which was necessary to port to z/OS.
-
- * "git push" and "git fetch" did not communicate an overlong refname
-   correctly.  Now it uses 64kB sideband to accommodate longer ones.
-
- * Recent GPG changes the keyring format and drops support for RFC1991
-   formatted signatures, breaking our existing tests.
-
- * "git-prompt" (in contrib/) used a variable from the global scope,
-   possibly contaminating end-user's namespace.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.2
-----------------
-
-Unless otherwise noted, all the fixes since v2.2 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * "git http-push" over WebDAV (aka dumb http-push) was broken in
-   v2.2.2 when parsing a symbolic ref, resulting in a bogus request
-   that gets rejected by recent versions of cURL library.
-   (merge f6786c8 jk/http-push-symref-fix later to maint).
-
- * The logic in "git bisect bad HEAD" etc. to avoid forcing the test
-   of the common ancestor of bad and good commits was broken.
-   (merge 07913d5 cc/bisect-rev-parsing later to maint).
-
- * "git checkout-index --temp=$target $path" did not work correctly
-   for paths outside the current subdirectory in the project.
-   (merge 74c4de5 es/checkout-index-temp later to maint).
-
- * The report from "git checkout" on a branch that builds on another
-   local branch by setting its branch.*.merge to branch name (not a
-   full refname) incorrectly said that the upstream is gone.
-   (merge 05e7368 jc/checkout-local-track-report later to maint).
-
- * With The git-prompt support (in contrib/), using the exit status of
-   the last command in the prompt, e.g.  PS1='$(__git_ps1) $? ', did
-   not work well, because the helper function stomped on the exit
-   status.
-   (merge 6babe76 tf/prompt-preserve-exit-status later to maint).
-
- * Recent update to "git commit" broke amending an existing commit
-   with bogus author/committer lines without a valid e-mail address.
-   (merge c83a509 jk/commit-date-approxidate later to maint).
-
- * The lockfile API used to get confused which file to clean up when
-   the process moved the $cwd after creating a lockfile.
-   (merge fa137f6 nd/lockfile-absolute later to maint).
-
- * Traditionally we tried to avoid interpreting date strings given by
-   the user as future dates, e.g. GIT_COMMITTER_DATE=2014-12-10 when
-   used early November 2014 was taken as "October 12, 2014" because it
-   is likely that a date in the future, December 10, is a mistake.
-   This heuristics has been loosened to allow people to express future
-   dates (most notably, --until=<date> may want to be far in the
-   future) and we no longer tiebreak by future-ness of the date when
-
-    (1) ISO-like format is used, and
-    (2) the string can make sense interpreted as both y-m-d and y-d-m.
-
-   Git may still have to use the heuristics to tiebreak between dd/mm/yy
-   and mm/dd/yy, though.
-   (merge d372395 jk/approxidate-avoid-y-d-m-over-future-dates later to maint).
-
- * Git did not correctly read an overlong refname from a packed refs
-   file.
-   (merge ea41783 jk/read-packed-refs-without-path-max later to maint).
-
- * "git apply" was described in the documentation to take --ignore-date
-   option, which it does not.
-   (merge 0cef4e7 rw/apply-does-not-take-ignore-date later to maint).
-
- * "git add -i" did not notice when the interactive command input
-   stream went away and kept asking the same question.
-   (merge a8bec7a jk/add-i-read-error later to maint).
-
- * "git send-email" did not handle RFC 2047 encoded headers quite
-   right.
-   (merge ab47e2a rd/send-email-2047-fix later to maint).
-
- * New tag object format validation added in 2.2 showed garbage after
-   a tagname it reported in its error message.
-   (merge a1e920a js/fsck-tag-validation later to maint).
-
- * The code that reads the reflog from the newer to the older entries
-   did not handle an entry that crosses a boundary of block it uses to
-   read them correctly.
-   (merge 69216bf jk/for-each-reflog-ent-reverse later to maint).
-
- * "git diff -B -M" after making a new copy B out of an existing file
-   A and then editing A extensively ought to report that B was created
-   by copying A and A was modified, which is what "git diff -C"
-   reports, but it instead said A was renamed to B and A was edited
-   heavily in place.  This was not just incoherent but also failed to
-   apply with "git apply".  The report has been corrected to match what
-   "git diff -C" produces for this case.
-   (merge 6936b58 jc/diff-b-m later to maint).
-
- * In files we pre-populate for the user to edit with commented hints,
-   a line of hint that is indented with a tab used to show as '#' (or
-   any comment char), ' ' (space), and then the hint text that began
-   with the tab, which some editors flag as an indentation error (tab
-   following space).  We now omit the space after the comment char in
-   such a case.
-   (merge d55aeb7 jc/strbuf-add-lines-avoid-sp-ht-sequence later to maint).
-
- * "git ls-tree" does not support path selection based on negative
-   pathspecs, but did not error out when negative pathspecs are given.
-   (merge f1f6224 nd/ls-tree-pathspec later to maint).
-
- * The function sometimes returned a non-freeable memory and some
-   other times returned a piece of memory that must be freed, leading
-   to inevitable leaks.
-   (merge 59362e5 jc/exec-cmd-system-path-leak-fix later to maint).
-
- * The code to abbreviate an object name to its short unique prefix
-   has been optimized when no abbreviation was requested.
-   (merge 61e704e mh/find-uniq-abbrev later to maint).
-
- * "git add --ignore-errors ..." did not ignore an error to
-   give a file that did not exist.
-   (merge 1d31e5a mg/add-ignore-errors later to maint).
-
- * "git checkout $treeish $path", when $path in the index and the
-   working tree already matched what is in $treeish at the $path,
-   still overwrote the $path unnecessarily.
-   (merge c5326bd jk/checkout-from-tree later to maint).
-
- * "git config --get-color" did not parse its command line arguments
-   carefully.
-   (merge cb35722 jk/colors-fix later to maint).
-
- * open() emulated on Windows platforms did not give EISDIR upon
-   an attempt to open a directory for writing.
-   (merge ba6fad0 js/windows-open-eisdir-error later to maint).
-
- * A few code paths used abs() when they should have used labs() on
-   long integers.
-   (merge 83915ba rs/maint-config-use-labs later to maint).
-   (merge 31a8aa1 rs/receive-pack-use-labs later to maint).
-
- * "gitweb" used to depend on a behaviour recent CGI.pm deprecated.
-   (merge 13dbf46 jk/gitweb-with-newer-cgi-multi-param later to maint).
-
- * "git init" (hence "git clone") initialized the per-repository
-   configuration file .git/config with x-bit by mistake.
-   (merge 1f32ecf mh/config-flip-xbit-back-after-checking later to maint).
-
- * Recent update in Git 2.2 started creating objects/info/packs and
-   info/refs files with permission bits tighter than user's umask.
-   (merge d91175b jk/prune-packed-server-info later to maint).
-
- * Git 2.0 was supposed to make the "simple" mode for the default of
-   "git push", but it didn't.
-   (merge 00a6fa0 jk/push-simple later to maint).
-
- * "Everyday" document had a broken link.
-   (merge 366c8d4 po/everyday-doc later to maint).
-
- * A few test fixes.
-   (merge 880ef58 jk/no-perl-tests later to maint).
-
- * The build procedure did not bother fixing perl and python scripts
-   when NO_PERL and NO_PYTHON build-time configuration changed.
-   (merge ca2051d jk/rebuild-perl-scripts-with-no-perl-seting-change later to maint).
-
- * The usage string of "git log" command was marked incorrectly for
-   l10n.
-   (merge e66dc0c km/log-usage-string-i18n later to maint).
-
- * "git for-each-ref" mishandled --format="%(upstream:track)" when a
-   branch is marked to have forked from a non-existing branch.
-   (merge b6160d9 rc/for-each-ref-tracking later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.3.1.txt b/third_party/git/Documentation/RelNotes/2.3.1.txt
deleted file mode 100644
index cf9618628874..000000000000
--- a/third_party/git/Documentation/RelNotes/2.3.1.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-Git v2.3.1 Release Notes
-========================
-
-Fixes since v2.3
-----------------
-
- * The interactive "show a list and let the user choose from it"
-   interface "add -i" used showed and prompted to the user even when
-   the candidate list was empty, against which the only "choice" the
-   user could have made was to choose nothing.
-
- * "git apply --whitespace=fix" used to under-allocate the memory
-   when the fix resulted in a longer text than the original patch.
-
- * "git log --help" used to show rev-list options that are irrelevant
-   to the "log" command.
-
- * The error message from "git commit", when a non-existing author
-   name was given as value to the "--author=" parameter, has been
-   reworded to avoid misunderstanding.
-
- * A broken pack .idx file in the receiving repository prevented the
-   dumb http transport from fetching a good copy of it from the other
-   side.
-
- * The documentation incorrectly said that C(opy) and R(ename) are the
-   only ones that can be followed by the score number in the output in
-   the --raw format.
-
- * Fix a misspelled conditional that is always true.
-
- * Code to read branch name from various files in .git/ directory
-   would have misbehaved if the code to write them left an empty file.
-
- * The "git push" documentation made the "--repo=<there>" option
-   easily misunderstood.
-
- * After attempting and failing a password-less authentication
-   (e.g. kerberos), libcURL refuses to fall back to password based
-   Basic authentication without a bit of help/encouragement.
-
- * Setting diff.submodule to 'log' made "git format-patch" produce
-   broken patches.
-
- * "git rerere" (invoked internally from many mergy operations) did
-   not correctly signal errors when told to update the working tree
-   files and failed to do so for whatever reason.
-
- * "git blame HEAD -- missing" failed to correctly say "HEAD" when it
-   tried to say "No such path 'missing' in HEAD".
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.3.10.txt b/third_party/git/Documentation/RelNotes/2.3.10.txt
deleted file mode 100644
index 20c2d2caccfb..000000000000
--- a/third_party/git/Documentation/RelNotes/2.3.10.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Git v2.3.10 Release Notes
-=========================
-
-Fixes since v2.3.9
-------------------
-
- * xdiff code we use to generate diffs is not prepared to handle
-   extremely large files.  It uses "int" in many places, which can
-   overflow if we have a very large number of lines or even bytes in
-   our input files, for example.  Cap the input size to somewhere
-   around 1GB for now.
-
- * Some protocols (like git-remote-ext) can execute arbitrary code
-   found in the URL.  The URLs that submodules use may come from
-   arbitrary sources (e.g., .gitmodules files in a remote
-   repository), and can hurt those who blindly enable recursive
-   fetch.  Restrict the allowed protocols to well known and safe
-   ones.
diff --git a/third_party/git/Documentation/RelNotes/2.3.2.txt b/third_party/git/Documentation/RelNotes/2.3.2.txt
deleted file mode 100644
index 93462e45c2e9..000000000000
--- a/third_party/git/Documentation/RelNotes/2.3.2.txt
+++ /dev/null
@@ -1,79 +0,0 @@
-Git v2.3.2 Release Notes
-========================
-
-Fixes since v2.3.1
-------------------
-
- * "update-index --refresh" used to leak when an entry cannot be
-   refreshed for whatever reason.
-
- * "git fast-import" used to crash when it could not close and
-   conclude the resulting packfile cleanly.
-
- * "git blame" died, trying to free an uninitialized piece of memory.
-
- * "git merge-file" did not work correctly in a subdirectory.
-
- * "git submodule add" failed to squash "path/to/././submodule" to
-   "path/to/submodule".
-
- * In v2.2.0, we broke "git prune" that runs in a repository that
-   borrows from an alternate object store.
-
- * Certain older vintages of cURL give irregular output from
-   "curl-config --vernum", which confused our build system.
-
- * An earlier workaround to squelch unhelpful deprecation warnings
-   from the compiler on Mac OSX unnecessarily set minimum required
-   version of the OS, which the user might want to raise (or lower)
-   for other reasons.
-
- * Longstanding configuration variable naming rules has been added to
-   the documentation.
-
- * The credential helper for Windows (in contrib/) used to mishandle
-   a user name with an at-sign in it.
-
- * Older GnuPG implementations may not correctly import the keyring
-   material we prepare for the tests to use.
-
- * Clarify in the documentation that "remote.<nick>.pushURL" and
-   "remote.<nick>.URL" are there to name the same repository accessed
-   via different transports, not two separate repositories.
-
- * The pack bitmap support did not build with older versions of GCC.
-
- * Reading configuration from a blob object, when it ends with a lone
-   CR, use to confuse the configuration parser.
-
- * We didn't format an integer that wouldn't fit in "int" but in
-   "uintmax_t" correctly.
-
- * "git push --signed" gave an incorrectly worded error message when
-   the other side did not support the capability.
-
- * "git fetch" over a remote-helper that cannot respond to "list"
-   command could not fetch from a symbolic reference e.g. HEAD.
-
- * The insn sheet "git rebase -i" creates did not fully honor
-   core.abbrev settings.
-
- * The tests that wanted to see that file becomes unreadable after
-   running "chmod a-r file", and the tests that wanted to make sure it
-   is not run as root, we used "can we write into the / directory?" as
-   a cheap substitute, but on some platforms that is not a good
-   heuristics.  The tests and their prerequisites have been updated to
-   check what they really require.
-
- * The configuration variable 'mailinfo.scissors' was hard to
-   discover in the documentation.
-
- * Correct a breakage to git-svn around v2.2 era that triggers
-   premature closing of FileHandle.
-
- * Even though we officially haven't dropped Perl 5.8 support, the
-   Getopt::Long package that came with it does not support "--no-"
-   prefix to negate a boolean option; manually add support to help
-   people with older Getopt::Long package.
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.3.3.txt b/third_party/git/Documentation/RelNotes/2.3.3.txt
deleted file mode 100644
index 850dc68edef0..000000000000
--- a/third_party/git/Documentation/RelNotes/2.3.3.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-Git v2.3.3 Release Notes
-========================
-
-Fixes since v2.3.2
-------------------
-
- * A corrupt input to "git diff -M" used cause us to segfault.
-
- * The borrowed code in kwset API did not follow our usual convention
-   to use "unsigned char" to store values that range from 0-255.
-
- * Description given by "grep -h" for its --exclude-standard option
-   was phrased poorly.
-
- * Documentation for "git remote add" mentioned "--tags" and
-   "--no-tags" and it was not clear that fetch from the remote in
-   the future will use the default behaviour when neither is given
-   to override it.
-
- * "git diff --shortstat --dirstat=changes" showed a dirstat based on
-   lines that was never asked by the end user in addition to the
-   dirstat that the user asked for.
-
- * The interaction between "git submodule update" and the
-   submodule.*.update configuration was not clearly documented.
-
- * "git apply" was not very careful about reading from, removing,
-   updating and creating paths outside the working tree (under
-   --index/--cached) or the current directory (when used as a
-   replacement for GNU patch).
-
- * "git daemon" looked up the hostname even when "%CH" and "%IP"
-   interpolations are not requested, which was unnecessary.
-
- * The "interpolated-path" option of "git daemon" inserted any string
-   client declared on the "host=" capability request without checking.
-   Sanitize and limit %H and %CH to a saner and a valid DNS name.
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.3.4.txt b/third_party/git/Documentation/RelNotes/2.3.4.txt
deleted file mode 100644
index 094c7b853bfc..000000000000
--- a/third_party/git/Documentation/RelNotes/2.3.4.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Git v2.3.4 Release Notes
-========================
-
-Fixes since v2.3.3
-------------------
-
- * The 'color.status.unmerged' configuration was not described.
-
- * "git log --decorate" did not reset colors correctly around the
-   branch names.
-
- * "git -C '' subcmd" refused to work in the current directory, unlike
-   "cd ''" which silently behaves as a no-op.
-
- * "git imap-send" learned to optionally talk with an IMAP server via
-   libcURL; because there is no other option when Git is built with
-   NO_OPENSSL option, use that codepath by default under such
-   configuration.
-
- * A workaround for certain build of GPG that triggered false breakage
-   in a test has been added.
-
- * "git rebase -i" recently started to include the number of
-   commits in the insn sheet to be processed, but on a platform
-   that prepends leading whitespaces to "wc -l" output, the numbers
-   are shown with extra whitespaces that aren't necessary.
-
- * We did not parse username followed by literal IPv6 address in SSH
-   transport URLs, e.g. ssh://user@[2001:db8::1]:22/repo.git
-   correctly.
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.3.5.txt b/third_party/git/Documentation/RelNotes/2.3.5.txt
deleted file mode 100644
index 5b309db68924..000000000000
--- a/third_party/git/Documentation/RelNotes/2.3.5.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-Git v2.3.5 Release Notes
-========================
-
-Fixes since v2.3.4
-------------------
-
- * The prompt script (in contrib/) did not show the untracked sign
-   when working in a subdirectory without any untracked files.
-
- * Even though "git grep --quiet" is run merely to ask for the exit
-   status, we spawned the pager regardless.  Stop doing that.
-
- * Recommend format-patch and send-email for those who want to submit
-   patches to this project.
-
- * An failure early in the "git clone" that started creating the
-   working tree and repository could have resulted in some directories
-   and files left without getting cleaned up.
-
- * "git fetch" that fetches a commit using the allow-tip-sha1-in-want
-   extension could have failed to fetch all the requested refs.
-
- * The split-index mode introduced at v2.3.0-rc0~41 was broken in the
-   codepath to protect us against a broken reimplementation of Git
-   that writes an invalid index with duplicated index entries, etc.
-
- * "git prune" used to largely ignore broken refs when deciding which
-   objects are still being used, which could spread an existing small
-   damage and make it a larger one.
-
- * "git tag -h" used to show the "--column" and "--sort" options
-   that are about listing in a wrong section.
-
- * The transfer.hiderefs support did not quite work for smart-http
-   transport.
-
- * The code that reads from the ctags file in the completion script
-   (in contrib/) did not spell ${param/pattern/string} substitution
-   correctly, which happened to work with bash but not with zsh.
-
- * The explanation on "rebase --preserve-merges", "pull --rebase=preserve",
-   and "push --force-with-lease" in the documentation was unclear.
-
-Also contains typofixes, documentation updates and trivial code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.3.6.txt b/third_party/git/Documentation/RelNotes/2.3.6.txt
deleted file mode 100644
index 432f770ef3d2..000000000000
--- a/third_party/git/Documentation/RelNotes/2.3.6.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Git v2.3.6 Release Notes
-========================
-
-Fixes since v2.3.5
-------------------
-
- * "diff-highlight" (in contrib/) used to show byte-by-byte
-   differences, which meant that multi-byte characters can be chopped
-   in the middle.  It learned to pay attention to character boundaries
-   (assuming the UTF-8 payload).
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.3.7.txt b/third_party/git/Documentation/RelNotes/2.3.7.txt
deleted file mode 100644
index 576918408161..000000000000
--- a/third_party/git/Documentation/RelNotes/2.3.7.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Git v2.3.7 Release Notes
-========================
-
-Fixes since v2.3.6
-------------------
-
- * An earlier update to the parser that dissects a URL broke an
-   address, followed by a colon, followed by an empty string (instead
-   of the port number), e.g. ssh://example.com:/path/to/repo.
-
- * The completion script (in contrib/) contaminated global namespace
-   and clobbered on a shell variable $x.
-
- * The "git push --signed" protocol extension did not limit what the
-   "nonce" that is a server-chosen string can contain or how long it
-   can be, which was unnecessarily lax.  Limit both the length and the
-   alphabet to a reasonably small space that can still have enough
-   entropy.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.3.8.txt b/third_party/git/Documentation/RelNotes/2.3.8.txt
deleted file mode 100644
index 0b67268a9660..000000000000
--- a/third_party/git/Documentation/RelNotes/2.3.8.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Git v2.3.8 Release Notes
-========================
-
-Fixes since v2.3.7
-------------------
-
- * The usual "git diff" when seeing a file turning into a directory
-   showed a patchset to remove the file and create all files in the
-   directory, but "git diff --no-index" simply refused to work.  Also,
-   when asked to compare a file and a directory, imitate POSIX "diff"
-   and compare the file with the file with the same name in the
-   directory, instead of refusing to run.
-
- * The default $HOME/.gitconfig file created upon "git config --global"
-   that edits it had incorrectly spelled user.name and user.email
-   entries in it.
-
- * "git commit --date=now" or anything that relies on approxidate lost
-   the daylight-saving-time offset.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.3.9.txt b/third_party/git/Documentation/RelNotes/2.3.9.txt
deleted file mode 100644
index 1a2ad3235a52..000000000000
--- a/third_party/git/Documentation/RelNotes/2.3.9.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Git v2.3.9 Release Notes
-========================
-
-Fixes since v2.3.8
-------------------
-
- * A handful of codepaths that used to use fixed-sized arrays to hold
-   pathnames have been corrected to use strbuf and other mechanisms to
-   allow longer pathnames without fearing overflows.
diff --git a/third_party/git/Documentation/RelNotes/2.4.0.txt b/third_party/git/Documentation/RelNotes/2.4.0.txt
deleted file mode 100644
index cde64be5359b..000000000000
--- a/third_party/git/Documentation/RelNotes/2.4.0.txt
+++ /dev/null
@@ -1,514 +0,0 @@
-Git 2.4 Release Notes
-=====================
-
-Backward compatibility warning(s)
----------------------------------
-
-This release has a few changes in the user-visible output from
-Porcelain commands. These are not meant to be parsed by scripts, but
-users still may want to be aware of the changes:
-
- * The output from "git log --decorate" (and, more generally, the "%d"
-   format specifier used in the "--format=<string>" parameter to the
-   "git log" family of commands) has changed. It used to list "HEAD"
-   just like other branches; e.g.,
-
-     $ git log --decorate -1 master
-     commit bdb0f6788fa5e3cacc4315e9ff318a27b2676ff4 (HEAD, master)
-     ...
-
-   This release changes the output slightly when HEAD refers to a
-   branch whose name is also shown in the output. The above is now
-   shown as:
-
-     $ git log --decorate -1 master
-     commit bdb0f6788fa5e3cacc4315e9ff318a27b2676ff4 (HEAD -> master)
-     ...
-
- * The phrasing "git branch" uses to describe a detached HEAD has been
-   updated to agree with the phrasing used by "git status":
-
-    - When HEAD is at the same commit as when it was originally
-      detached, they now both show "detached at <commit object name>".
-
-    - When HEAD has moved since it was originally detached, they now
-      both show "detached from <commit object name>".
-
-   Previously, "git branch" always used "from".
-
-
-Updates since v2.3
-------------------
-
-Ports
-
- * Our default I/O size (8 MiB) for large files was too large for some
-   platforms with smaller SSIZE_MAX, leading to read(2)/write(2)
-   failures.
-
- * We did not check the curl library version before using the
-   CURLOPT_PROXYAUTH feature, which did not exist in older versions of
-   the library.
-
- * We now detect number of CPUs on older BSD-derived systems.
-
- * Portability fixes and workarounds for shell scripts have been added
-   to help BSD-derived systems.
-
-
-UI, Workflows & Features
-
- * The command usage info strings given by "git cmd -h" and in
-   documentation have been tweaked for consistency.
-
- * The "sync" subcommand of "git p4" now allows users to exclude
-   subdirectories like its "clone" subcommand does.
-
- * "git log --invert-grep --grep=WIP" will show only commits that do
-   not have the string "WIP" in their messages.
-
- * "git push" has been taught an "--atomic" option that makes a push
-   that updates more than one ref an "all-or-none" affair.
-
- * Extending the "push to deploy" feature that was added in 2.3, the
-   behaviour of "git push" when updating the branch that is checked
-   out can now be tweaked by a "push-to-checkout" hook.
-
- * HTTP-based transports now send Accept-Language when making
-   requests. The languages to accept are inferred from environment
-   variables on the client side (LANGUAGE, etc).
-
- * "git send-email" used to accept a mistaken "y" (or "yes") as an
-   answer to "What encoding do you want to use [UTF-8]?" without
-   questioning. Now it asks for confirmation when the answer looks too
-   short to be a valid encoding name.
-
- * When "git apply --whitespace=fix" fixed whitespace errors in the
-   common context lines, the command reports that it did so.
-
- * "git status" now allows the "-v" option to be given twice, in which
-   case it also shows the differences in the working tree that are not
-   staged to be committed.
-
- * "git cherry-pick" used to clean up the log message even when it is
-   merely replaying an existing commit. It now replays the message
-   verbatim unless you are editing the message of the resulting
-   commit.
-
- * "git archive" can now be told to set the 'text' attribute in the
-   resulting zip archive.
-
- * Output from "git log --decorate" now distinguishes between a
-   detached HEAD vs. a HEAD that points at a branch.
-
-   This is a potentially backward-incompatible change; see above for
-   more information.
-
- * When HEAD was detached when at commit xyz and hasn't been moved
-   since it was detached, "git status" would report "detached at xyz"
-   whereas "git branch" would report "detached from xyz". Now the
-   output of "git branch" agrees with that of "git status".
-
-   This is a potentially backward-incompatible change; see above for
-   more information.
-
- * "git -C '' subcmd" now works in the current directory (analogously
-   to "cd ''") rather than dying with an error message.
-   (merge 6a536e2 kn/git-cd-to-empty later to maint).
-
- * The versionsort.prereleaseSuffix configuration variable can be used
-   to specify that, for example, v1.0-pre1 comes before v1.0.
-
- * A new "push.followTags" configuration turns the "--follow-tags"
-   option on by default for the "git push" command.
-
- * "git log --graph --no-walk A B..." is a nonsensical combination of
-   options: "--no-walk" requests discrete points in the history, while
-   "--graph" asks to draw connections between these discrete points.
-   Forbid the use of these options together.
-
- * "git rev-list --bisect --first-parent" does not work (yet) and can
-   even cause SEGV; forbid it. "git log --bisect --first-parent" would
-   not be useful until "git bisect --first-parent" materializes, so
-   also forbid it for now.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * Slightly change the implementation of the N_() macro to help us
-   detect mistakes.
-
- * Restructure the implementation of "reflog expire" to fit better
-   with the recently updated reference API.
-
- * The transport-helper did not pass transport options such as
-   verbosity, progress, cloning, etc. to import and export based
-   helpers, like it did for fetch and push based helpers, robbing them
-   of the chance to honor the wish of the end-users better.
-
- * The tests that wanted to see that a file becomes unreadable after
-   running "chmod a-r file", and the tests that wanted to make sure
-   that they are not run as root, used "can we write into the /
-   directory?" as a cheap substitute. But on some platforms that is
-   not a good heuristic. The tests and their prerequisites have been
-   updated to check what they really require.
-   (merge f400e51 jk/sanity later to maint).
-
- * Various issues around "reflog expire", e.g. using --updateref when
-   expiring a reflog for a symbolic reference, have been corrected
-   and/or made saner.
-
- * The documentation for the strbuf API had been split between the API
-   documentation and the header file. Consolidate the documentation in
-   strbuf.h.
-
- * The error handling functions and conventions are now documented in
-   the API manual (in api-error-handling.txt).
-
- * Optimize gitattribute look-up, mostly useful in "git grep" on a
-   project that does not use many attributes, by avoiding it when we
-   (should) know that the attributes are not defined in the first
-   place.
-
- * Typofix in comments.
-   (merge ef2956a ak/git-pm-typofix later to maint).
-
- * Code clean-up.
-   (merge 0b868f0 sb/hex-object-name-is-at-most-41-bytes-long later to maint).
-   (merge 5d30851 dp/remove-duplicated-header-inclusion later to maint).
-
- * Simplify the ref transaction API for verifying that "the ref should
-   be pointing at this object".
-
- * Simplify the code in "git daemon" that parses out and holds
-   hostnames used in request interpolation.
-
- * Restructure the "git push" codepath to make it easier to add new
-   configuration bits.
-
- * The run-command interface made it easy to make a pipe for us to
-   read from a process, wait for the process to finish, and then
-   attempt to read its output. But this pattern can lead to deadlock.
-   So introduce a helper to do this correctly (i.e., first read, and
-   then wait the process to finish) and also add code to prevent such
-   abuse in the run-command helper.
-
- * People often forget to chain the commands in their test together
-   with &&, letting a failure from an earlier command in the test go
-   unnoticed. The new GIT_TEST_CHAIN_LINT mechanism allows you to
-   catch such a mistake more easily.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.3
-----------------
-
-Unless otherwise noted, all the fixes since v2.3 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * "git blame HEAD -- missing" failed to correctly say "HEAD" when it
-   tried to say "No such path 'missing' in HEAD".
-   (merge a46442f jk/blame-commit-label later to maint).
-
- * "git rerere" (invoked internally from many mergy operations) did
-   not correctly signal errors when it attempted to update the working
-   tree files but failed for whatever reason.
-   (merge 89ea903 jn/rerere-fail-on-auto-update-failure later to maint).
-
- * Setting diff.submodule to 'log' made "git format-patch" produce
-   broken patches.
-   (merge 339de50 dk/format-patch-ignore-diff-submodule later to maint).
-
- * After attempting and failing a password-less authentication (e.g.,
-   Kerberos), libcURL refuses to fall back to password-based Basic
-   authentication without a bit of help/encouragement.
-   (merge 4dbe664 bc/http-fallback-to-password-after-krb-fails later to maint).
-
- * The "git push" documentation for the "--repo=<there>" option was
-   easily misunderstood.
-   (merge 57b92a7 mg/push-repo-option-doc later to maint).
-
- * Code to read a branch name from various files in the .git/
-   directory would have overrun array limits if asked to read an empty
-   file.
-   (merge 66ec904 jk/status-read-branch-name-fix later to maint).
-
- * Remove a superfluous conditional that is always true.
-   (merge 94ee8e2 jk/remote-curl-an-array-in-struct-cannot-be-null later to maint).
-
- * The "git diff --raw" documentation incorrectly implied that C(opy)
-   and R(ename) are the only statuses that can be followed by a score
-   number.
-   (merge ac1c2d9 jc/diff-format-doc later to maint).
-
- * A broken pack .idx file in the receiving repository prevented the
-   dumb http transport from fetching a good copy of it from the other
-   side.
-   (merge 8b9c2dd jk/dumb-http-idx-fetch-fix later to maint).
-
- * The error message from "git commit", when a non-existing author
-   name was given as value to the "--author=" parameter, has been
-   reworded to avoid misunderstanding.
-   (merge 1044b1f mg/commit-author-no-match-malformed-message later to maint).
-
- * "git log --help" used to show rev-list options that are irrelevant
-   to the "log" command.
-   (merge 3cab02d jc/doc-log-rev-list-options later to maint).
-
- * "git apply --whitespace=fix" used to under-allocate memory when the
-   fix resulted in a longer text than the original patch.
-   (merge 407a792 jc/apply-ws-fix-expands later to maint).
-
- * The interactive "show a list and let the user choose from it"
-   interface used by "git add -i" unnecessarily prompted the user even
-   when the candidate list was empty, against which the only "choice"
-   the user could have made was to choose nothing.
-   (merge a9c4641 ak/add-i-empty-candidates later to maint).
-
- * The todo list created by "git rebase -i" did not fully honor
-   core.abbrev settings.
-   (merge edb72d5 ks/rebase-i-abbrev later to maint).
-
- * "git fetch" over a remote-helper that cannot respond to the "list"
-   command could not fetch from a symbolic reference (e.g., HEAD).
-   (merge 33cae54 mh/deref-symref-over-helper-transport later to maint).
-
- * "git push --signed" gave an incorrectly worded error message when
-   the other side did not support the capability.
-
- * The "git push --signed" protocol extension did not limit what the
-   "nonce" (a server-chosen string) could contain nor how long it
-   could be, which was unnecessarily lax. Limit both the length and
-   the alphabet to a reasonably small space that can still have enough
-   entropy.
-   (merge afcb6ee jc/push-cert later to maint).
-
- * The completion script (in contrib/) clobbered the shell variable $x
-   in the global shell namespace.
-   (merge 852ff1c ma/bash-completion-leaking-x later to maint).
-
- * We incorrectly formatted a "uintmax_t" integer that doesn't fit in
-   "int".
-   (merge d306f3d jk/decimal-width-for-uintmax later to maint).
-
- * The configuration parser used to be confused when reading
-   configuration from a blob object that ends with a lone CR.
-   (merge 1d0655c jk/config-no-ungetc-eof later to maint).
-
- * The pack bitmap support did not build with older versions of GCC.
-   (merge bd4e882 jk/pack-bitmap later to maint).
-
- * The documentation wasn't clear that "remote.<nick>.pushURL" and
-   "remote.<nick>.URL" are there to name the same repository accessed
-   via different transports, not two separate repositories.
-   (merge 697f652 jc/remote-set-url-doc later to maint).
-
- * Older GnuPG implementations may not correctly import the keyring
-   material we prepare for the tests to use.
-   (merge 1f985d6 ch/new-gpg-drops-rfc-1991 later to maint).
-
- * The credential helper for Windows (in contrib/) used to mishandle
-   user names that contain an at-sign.
-   (merge 13d261e av/wincred-with-at-in-username-fix later to maint).
-
- * "diff-highlight" (in contrib/) used to show byte-by-byte
-   differences, which could cause multi-byte characters to be chopped
-   in the middle. It learned to pay attention to character boundaries
-   (assuming UTF-8).
-   (merge 8d00662 jk/colors later to maint).
-
- * Document longstanding configuration variable naming rules in
-   CodingGuidelines.
-   (merge 35840a3 jc/conf-var-doc later to maint).
-
- * An earlier workaround to squelch unhelpful deprecation warnings
-   from the compiler on OS X unnecessarily set a minimum required
-   version of the OS, which the user might want to raise (or lower)
-   for other reasons.
-   (merge 88c03eb es/squelch-openssl-warnings-on-macosx later to maint).
-
- * Certain older vintages of cURL give irregular output from
-   "curl-config --vernum", which confused our build system.
-   (merge 3af6792 tc/curl-vernum-output-broken-in-7.11 later to maint).
-
- * In v2.2.0, we broke "git prune" that runs in a repository that
-   borrows from an alternate object store.
-   (merge b0a4264 jk/prune-mtime later to maint).
-
- * "git submodule add" failed to squash "path/to/././submodule" to
-   "path/to/submodule".
-   (merge 8196e72 ps/submodule-sanitize-path-upon-add later to maint).
-
- * "git merge-file" did not work correctly when invoked in a
-   subdirectory.
-   (merge 204a8ff ab/merge-file-prefix later to maint).
-
- * "git blame" could die trying to free an uninitialized piece of
-   memory.
-   (merge e600592 es/blame-commit-info-fix later to maint).
-
- * "git fast-import" used to crash when it could not close and
-   finalize the resulting packfile cleanly.
-   (merge 5e915f3 jk/fast-import-die-nicely-fix later to maint).
-
- * "update-index --refresh" used to leak memory when an entry could
-   not be refreshed for whatever reason.
-   (merge bc1c2ca sb/plug-leak-in-make-cache-entry later to maint).
-
- * The "interpolated-path" option of "git daemon" inserted any string
-   the client declared on the "host=" capability request without
-   checking. Sanitize and limit %H and %CH to a saner and a valid DNS
-   name.
-   (merge b485373 jk/daemon-interpolate later to maint).
-
- * "git daemon" unnecessarily looked up the hostname even when "%CH"
-   and "%IP" interpolations were not requested.
-   (merge dc8edc8 rs/daemon-interpolate later to maint).
-
- * We relied on "--no-" prefix handling in Perl's Getopt::Long
-   package, even though that support didn't exist in Perl 5.8 (which
-   we still support). Manually add support to help people with older
-   Getopt::Long packages.
-   (merge f471494 km/send-email-getopt-long-workarounds later to maint).
-
- * "git apply" was not very careful about reading from, removing,
-   updating and creating paths outside the working tree (under
-   --index/--cached) or the current directory (when used as a
-   replacement for GNU patch).
-   (merge e0d201b jc/apply-beyond-symlink later to maint).
-
- * Correct a breakage in git-svn, introduced around the v2.2 era, that
-   can cause FileHandles to be closed prematurely.
-   (merge e426311 ew/svn-maint-fixes later to maint).
-
- * We did not parse usernames followed by literal IPv6 addresses
-   correctly in SSH transport URLs; e.g.,
-   ssh://user@[2001:db8::1]:22/repo.git.
-   (merge 6b6c5f7 tb/connect-ipv6-parse-fix later to maint).
-
- * The configuration variable 'mailinfo.scissors' was hard to
-   discover in the documentation.
-   (merge afb5de7 mm/am-c-doc later to maint).
-
- * The interaction between "git submodule update" and the
-   submodule.*.update configuration was not clearly documented.
-   (merge 5c31acf ms/submodule-update-config-doc later to maint).
-
- * "git diff --shortstat" used together with "--dirstat=changes" or
-   "--dirstat=files" incorrectly output dirstat information twice.
-   (merge ab27389 mk/diff-shortstat-dirstat-fix later to maint).
-
- * The manpage for "git remote add" mentioned "--tags" and "--no-tags"
-   but did not explain what happens if neither option is provided.
-   (merge aaba0ab mg/doc-remote-tags-or-not later to maint).
-
- * The description of "--exclude-standard option" in the output of
-   "git grep -h" was phrased poorly.
-   (merge 77fdb8a nd/grep-exclude-standard-help-fix later to maint).
-
- * "git rebase -i" recently started to include the number of commits
-   in the todo list, but that output included extraneous whitespace on
-   a platform that prepends leading whitespaces to its "wc -l" output.
-   (merge 2185d3b es/rebase-i-count-todo later to maint).
-
- * The borrowed code in the kwset API did not follow our usual
-   convention to use "unsigned char" to store values that range from
-   0-255.
-   (merge 189c860 bw/kwset-use-unsigned later to maint).
-
- * A corrupt input to "git diff -M" used to cause it to segfault.
-   (merge 4d6be03 jk/diffcore-rename-duplicate later to maint).
-
- * Certain builds of GPG triggered false breakages in a test.
-   (merge 3f88c1b mg/verify-commit later to maint).
-
- * "git imap-send" learned to optionally talk with an IMAP server via
-   libcURL. Because there is no other option when Git is built with
-   the NO_OPENSSL option, use libcURL by default in that case.
-   (merge dcd01ea km/imap-send-libcurl-options later to maint).
-
- * "git log --decorate" did not reset colors correctly around the
-   branch names.
-   (merge 5ee8758 jc/decorate-leaky-separator-color later to maint).
-
- * The code that reads from the ctags file in the completion script
-   (in contrib/) did not spell ${param/pattern/string} substitution
-   correctly, which happened to work with bash but not with zsh.
-   (merge db8d750 js/completion-ctags-pattern-substitution-fix later to maint).
-
- * The transfer.hiderefs support did not quite work for smart-http
-   transport.
-   (merge 8ddf3ca jk/smart-http-hide-refs later to maint).
-
- * In the "git tag -h" output, move the documentation for the
-   "--column" and "--sort" options to the "Tag listing options"
-   section.
-   (merge dd059c6 jk/tag-h-column-is-a-listing-option later to maint).
-
- * "git prune" used to largely ignore broken refs when deciding which
-   objects are still being used, which could cause reference
-   corruption to lead to object loss.
-   (merge ea56c4e jk/prune-with-corrupt-refs later to maint).
-
- * The split-index mode introduced in v2.3.0-rc0~41 was broken in the
-   codepath to protect us against a broken reimplementation of Git
-   that writes an invalid index with duplicated index entries, etc.
-   (merge 03f15a7 tg/fix-check-order-with-split-index later to maint).
-
- * "git fetch", when fetching a commit using the
-   allow-tip-sha1-in-want extension, could have failed to fetch all of
-   the requested refs.
-   (merge 32d0462 jk/fetch-pack later to maint).
-
- * An failure early in the "git clone" that started creating the
-   working tree and repository could have resulted in the failure to
-   clean up some directories and files.
-   (merge 16eff6c jk/cleanup-failed-clone later to maint).
-
- * Recommend format-patch and send-email for those who want to submit
-   patches to this project.
-   (merge b25c469 jc/submitting-patches-mention-send-email later to maint).
-
- * Do not spawn the pager when "git grep" is run with "--quiet".
-   (merge c2048f0 ws/grep-quiet-no-pager later to maint).
-
- * The prompt script (in contrib/) did not show the untracked sign
-   when working in a subdirectory without any untracked files.
-   (merge 9bdc517 ct/prompt-untracked-fix later to maint).
-
- * An earlier update to the URL parser broke an address that contains
-   a colon but an empty string for the port number, like
-   ssh://example.com:/path/to/repo.
-   (merge 6b6c5f7 tb/connect-ipv6-parse-fix later to maint).
-
- * Code cleanups and documentation updates.
-   (merge 2ce63e9 rs/simple-cleanups later to maint).
-   (merge 33baa69 rj/no-xopen-source-for-cygwin later to maint).
-   (merge 817d03e jc/diff-test-updates later to maint).
-   (merge eb32c66 ak/t5516-typofix later to maint).
-   (merge bcd57cb mr/doc-clean-f-f later to maint).
-   (merge 0d6accc mg/doc-status-color-slot later to maint).
-   (merge 53e53c7 sg/completion-remote later to maint).
-   (merge 8fa7975 ak/git-done-help-cleanup later to maint).
-   (merge 9a6f128 rs/deflate-init-cleanup later to maint).
-   (merge 6f75d45 rs/use-isxdigit later to maint).
-   (merge 376e4b3 jk/test-annoyances later to maint).
-   (merge 7032054 nd/doc-git-index-version later to maint).
-   (merge e869c5e tg/test-index-v4 later to maint).
-   (merge 599d223 jk/simplify-csum-file-sha1fd-check later to maint).
-   (merge 260d585 sg/completion-gitcomp-nl-for-refs later to maint).
-   (merge 777c55a jc/report-path-error-to-dir later to maint).
-   (merge fddfaf8 ph/push-doc-cas later to maint).
-   (merge d50d31e ss/pull-rebase-preserve later to maint).
-   (merge c8c3f1d pt/enter-repo-comment-fix later to maint).
-   (merge d7bfb9e jz/gitweb-conf-doc-fix later to maint).
-   (merge f907282 jk/cherry-pick-docfix later to maint).
-   (merge d3c0811 iu/fix-parse-options-h-comment later to maint).
-   (merge 6c3b2af jg/cguide-we-cannot-count later to maint).
-   (merge 2b8bd44 jk/pack-corruption-post-mortem later to maint).
-   (merge 9585cb8 jn/doc-fast-import-no-16-octopus-limit later to maint).
-   (merge 5dcd1b1 ps/grep-help-all-callback-arg later to maint).
-   (merge f1f4c84 va/fix-git-p4-tests later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.4.1.txt b/third_party/git/Documentation/RelNotes/2.4.1.txt
deleted file mode 100644
index a65a6c582929..000000000000
--- a/third_party/git/Documentation/RelNotes/2.4.1.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-Git v2.4.1 Release Notes
-========================
-
-Fixes since v2.4
-----------------
-
- * The usual "git diff" when seeing a file turning into a directory
-   showed a patchset to remove the file and create all files in the
-   directory, but "git diff --no-index" simply refused to work.  Also,
-   when asked to compare a file and a directory, imitate POSIX "diff"
-   and compare the file with the file with the same name in the
-   directory, instead of refusing to run.
-
- * The default $HOME/.gitconfig file created upon "git config --global"
-   that edits it had incorrectly spelled user.name and user.email
-   entries in it.
-
- * "git commit --date=now" or anything that relies on approxidate lost
-   the daylight-saving-time offset.
-
- * "git cat-file bl $blob" failed to barf even though there is no
-   object type that is "bl".
-
- * Teach the codepaths that read .gitignore and .gitattributes files
-   that these files encoded in UTF-8 may have UTF-8 BOM marker at the
-   beginning; this makes it in line with what we do for configuration
-   files already.
-
- * Access to objects in repositories that borrow from another one on a
-   slow NFS server unnecessarily got more expensive due to recent code
-   becoming more cautious in a naive way not to lose objects to pruning.
-
- * We avoid setting core.worktree when the repository location is the
-   ".git" directory directly at the top level of the working tree, but
-   the code misdetected the case in which the working tree is at the
-   root level of the filesystem (which arguably is a silly thing to
-   do, but still valid).
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.4.10.txt b/third_party/git/Documentation/RelNotes/2.4.10.txt
deleted file mode 100644
index 702d8d4e224e..000000000000
--- a/third_party/git/Documentation/RelNotes/2.4.10.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Git v2.4.10 Release Notes
-=========================
-
-Fixes since v2.4.9
-------------------
-
- * xdiff code we use to generate diffs is not prepared to handle
-   extremely large files.  It uses "int" in many places, which can
-   overflow if we have a very large number of lines or even bytes in
-   our input files, for example.  Cap the input size to somewhere
-   around 1GB for now.
-
- * Some protocols (like git-remote-ext) can execute arbitrary code
-   found in the URL.  The URLs that submodules use may come from
-   arbitrary sources (e.g., .gitmodules files in a remote
-   repository), and can hurt those who blindly enable recursive
-   fetch.  Restrict the allowed protocols to well known and safe
-   ones.
diff --git a/third_party/git/Documentation/RelNotes/2.4.11.txt b/third_party/git/Documentation/RelNotes/2.4.11.txt
deleted file mode 100644
index 723360295c12..000000000000
--- a/third_party/git/Documentation/RelNotes/2.4.11.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Git v2.4.11 Release Notes
-=========================
-
-Fixes since v2.4.10
--------------------
-
- * Bugfix patches were backported from the 'master' front to plug heap
-   corruption holes, to catch integer overflow in the computation of
-   pathname lengths, and to get rid of the name_path API.  Both of
-   these would have resulted in writing over an under-allocated buffer
-   when formulating pathnames while tree traversal.
diff --git a/third_party/git/Documentation/RelNotes/2.4.12.txt b/third_party/git/Documentation/RelNotes/2.4.12.txt
deleted file mode 100644
index 7d15f94725f1..000000000000
--- a/third_party/git/Documentation/RelNotes/2.4.12.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Git v2.4.12 Release Notes
-=========================
-
-Fixes since v2.4.11
--------------------
-
- * "git-shell" rejects a request to serve a repository whose name
-   begins with a dash, which makes it no longer possible to get it
-   confused into spawning service programs like "git-upload-pack" with
-   an option like "--help", which in turn would spawn an interactive
-   pager, instead of working with the repository user asked to access
-   (i.e. the one whose name is "--help").
diff --git a/third_party/git/Documentation/RelNotes/2.4.2.txt b/third_party/git/Documentation/RelNotes/2.4.2.txt
deleted file mode 100644
index 250cdc423c9f..000000000000
--- a/third_party/git/Documentation/RelNotes/2.4.2.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-Git v2.4.2 Release Notes
-========================
-
-Fixes since v2.4.1
-------------------
-
- * "git rev-list --objects $old --not --all" to see if everything that
-   is reachable from $old is already connected to the existing refs
-   was very inefficient.
-
- * "hash-object --literally" introduced in v2.2 was not prepared to
-   take a really long object type name.
-
- * "git rebase --quiet" was not quite quiet when there is nothing to
-   do.
-
- * The completion for "log --decorate=" parameter value was incorrect.
-
- * "filter-branch" corrupted commit log message that ends with an
-   incomplete line on platforms with some "sed" implementations that
-   munge such a line.  Work it around by avoiding to use "sed".
-
- * "git daemon" fails to build from the source under NO_IPV6
-   configuration (regression in 2.4).
-
- * "git stash pop/apply" forgot to make sure that not just the working
-   tree is clean but also the index is clean. The latter is important
-   as a stash application can conflict and the index will be used for
-   conflict resolution.
-
- * We have prepended $GIT_EXEC_PATH and the path "git" is installed in
-   (typically "/usr/bin") to $PATH when invoking subprograms and hooks
-   for almost eternity, but the original use case the latter tried to
-   support was semi-bogus (i.e. install git to /opt/foo/git and run it
-   without having /opt/foo on $PATH), and more importantly it has
-   become less and less relevant as Git grew more mainstream (i.e. the
-   users would _want_ to have it on their $PATH).  Stop prepending the
-   path in which "git" is installed to users' $PATH, as that would
-   interfere the command search order people depend on (e.g. they may
-   not like versions of programs that are unrelated to Git in /usr/bin
-   and want to override them by having different ones in /usr/local/bin
-   and have the latter directory earlier in their $PATH).
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.4.3.txt b/third_party/git/Documentation/RelNotes/2.4.3.txt
deleted file mode 100644
index 422e930aa2b2..000000000000
--- a/third_party/git/Documentation/RelNotes/2.4.3.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-Git v2.4.3 Release Notes
-========================
-
-Fixes since v2.4.3
-------------------
-
- * Error messages from "git branch" called remote-tracking branches as
-   "remote branches".
-
- * "git rerere forget" in a repository without rerere enabled gave a
-   cryptic error message; it should be a silent no-op instead.
-
- * "git pull --log" and "git pull --no-log" worked as expected, but
-   "git pull --log=20" did not.
-
- * The pull.ff configuration was supposed to override the merge.ff
-   configuration, but it didn't.
-
- * The code to read pack-bitmap wanted to allocate a few hundred
-   pointers to a structure, but by mistake allocated and leaked memory
-   enough to hold that many actual structures.  Correct the allocation
-   size and also have it on stack, as it is small enough.
-
- * Various documentation mark-up fixes to make the output more
-   consistent in general and also make AsciiDoctor (an alternative
-   formatter) happier.
-
- * "git bundle verify" did not diagnose extra parameters on the
-   command line.
-
- * Multi-ref transaction support we merged a few releases ago
-   unnecessarily kept many file descriptors open, risking to fail with
-   resource exhaustion.
-
- * The ref API did not handle cases where 'refs/heads/xyzzy/frotz' is
-   removed at the same time as 'refs/heads/xyzzy' is added (or vice
-   versa) very well.
-
- * The "log --decorate" enhancement in Git 2.4 that shows the commit
-   at the tip of the current branch e.g. "HEAD -> master", did not
-   work with --decorate=full.
-
- * There was a commented-out (instead of being marked to expect
-   failure) test that documented a breakage that was fixed since the
-   test was written; turn it into a proper test.
-
- * core.excludesfile (defaulting to $XDG_HOME/git/ignore) is supposed
-   to be overridden by repository-specific .git/info/exclude file, but
-   the order was swapped from the beginning. This belatedly fixes it.
-
- * The connection initiation code for "ssh" transport tried to absorb
-   differences between the stock "ssh" and Putty-supplied "plink" and
-   its derivatives, but the logic to tell that we are using "plink"
-   variants were too loose and falsely triggered when "plink" appeared
-   anywhere in the path (e.g. "/home/me/bin/uplink/ssh").
-
- * "git rebase -i" moved the "current" command from "todo" to "done" a
-   bit too prematurely, losing a step when a "pick" did not even start.
-
- * "git add -e" did not allow the user to abort the operation by
-   killing the editor.
-
- * Git 2.4 broke setting verbosity and progress levels on "git clone"
-   with native transports.
-
- * Some time ago, "git blame" (incorrectly) lost the convert_to_git()
-   call when synthesizing a fake "tip" commit that represents the
-   state in the working tree, which broke folks who record the history
-   with LF line ending to make their project portable across
-   platforms while terminating lines in their working tree files with
-   CRLF for their platform.
-
- * Code clean-up for xdg configuration path support.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.4.4.txt b/third_party/git/Documentation/RelNotes/2.4.4.txt
deleted file mode 100644
index f1ccd001bec3..000000000000
--- a/third_party/git/Documentation/RelNotes/2.4.4.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-Git v2.4.4 Release Notes
-========================
-
-Fixes since v2.4.3
-------------------
-
- * l10n updates for German.
-
- * An earlier leakfix to bitmap testing code was incomplete.
-
- * "git clean pathspec..." tried to lstat(2) and complain even for
-   paths outside the given pathspec.
-
- * Communication between the HTTP server and http_backend process can
-   lead to a dead-lock when relaying a large ref negotiation request.
-   Diagnose the situation better, and mitigate it by reading such a
-   request first into core (to a reasonable limit).
-
- * The clean/smudge interface did not work well when filtering an
-   empty contents (failed and then passed the empty input through).
-   It can be argued that a filter that produces anything but empty for
-   an empty input is nonsense, but if the user wants to do strange
-   things, then why not?
-
- * Make "git stash something --help" error out, so that users can
-   safely say "git stash drop --help".
-
- * Clarify that "log --raw" and "log --format=raw" are unrelated
-   concepts.
-
- * Catch a programmer mistake to feed a pointer not an array to
-   ARRAY_SIZE() macro, by using a couple of GCC extensions.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.4.5.txt b/third_party/git/Documentation/RelNotes/2.4.5.txt
deleted file mode 100644
index 568297ccb7f1..000000000000
--- a/third_party/git/Documentation/RelNotes/2.4.5.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-Git v2.4.5 Release Notes
-========================
-
-Fixes since v2.4.4
-------------------
-
- * The setup code used to die when core.bare and core.worktree are set
-   inconsistently, even for commands that do not need working tree.
-
- * There was a dead code that used to handle "git pull --tags" and
-   show special-cased error message, which was made irrelevant when
-   the semantics of the option changed back in Git 1.9 days.
-
- * "color.diff.plain" was a misnomer; give it 'color.diff.context' as
-   a more logical synonym.
-
- * The configuration reader/writer uses mmap(2) interface to access
-   the files; when we find a directory, it barfed with "Out of memory?".
-
- * Recent "git prune" traverses young unreachable objects to safekeep
-   old objects in the reachability chain from them, which sometimes
-   showed unnecessary error messages that are alarming.
-
- * "git rebase -i" fired post-rewrite hook when it shouldn't (namely,
-   when it was told to stop sequencing with 'exec' insn).
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.4.6.txt b/third_party/git/Documentation/RelNotes/2.4.6.txt
deleted file mode 100644
index b53f3539399a..000000000000
--- a/third_party/git/Documentation/RelNotes/2.4.6.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Git v2.4.6 Release Notes
-========================
-
-Fixes since v2.4.5
-------------------
-
- * "git fetch --depth=<depth>" and "git clone --depth=<depth>" issued
-   a shallow transfer request even to an upload-pack that does not
-   support the capability.
-
- * "git fsck" used to ignore missing or invalid objects recorded in reflog.
-
- * The tcsh completion writes a bash scriptlet but that would have
-   failed for users with noclobber set.
-
- * Recent Mac OS X updates breaks the logic to detect that the machine
-   is on the AC power in the sample pre-auto-gc script.
-
- * "git format-patch --ignore-if-upstream A..B" did not like to be fed
-   tags as boundary commits.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.4.7.txt b/third_party/git/Documentation/RelNotes/2.4.7.txt
deleted file mode 100644
index b3ac412b829c..000000000000
--- a/third_party/git/Documentation/RelNotes/2.4.7.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-Git v2.4.7 Release Notes
-========================
-
-Fixes since v2.4.6
-------------------
-
- * A minor regression to "git fsck" in v2.2 era was fixed; it
-   complained about a body-less tag object when it lacked a
-   separator empty line after its header to separate it with a
-   non-existent body.
-
- * We used to ask libCURL to use the most secure authentication method
-   available when talking to an HTTP proxy only when we were told to
-   talk to one via configuration variables.  We now ask libCURL to
-   always use the most secure authentication method, because the user
-   can tell libCURL to use an HTTP proxy via an environment variable
-   without using configuration variables.
-
- * When you say "!<ENTER>" while running say "git log", you'd confuse
-   yourself in the resulting shell, that may look as if you took
-   control back to the original shell you spawned "git log" from but
-   that isn't what is happening.  To that new shell, we leaked
-   GIT_PAGER_IN_USE environment variable that was meant as a local
-   communication between the original "Git" and subprocesses that was
-   spawned by it after we launched the pager, which caused many
-   "interesting" things to happen, e.g. "git diff | cat" still paints
-   its output in color by default.
-
-   Stop leaking that environment variable to the pager's half of the
-   fork; we only need it on "Git" side when we spawn the pager.
-
- * Avoid possible ssize_t to int truncation.
-
- * "git config" failed to update the configuration file when the
-   underlying filesystem is incapable of renaming a file that is still
-   open.
-
- * A minor bugfix when pack bitmap is used with "rev-list --count".
-
- * An ancient test framework enhancement to allow color was not
-   entirely correct; this makes it work even when tput needs to read
-   from the ~/.terminfo under the user's real HOME directory.
-
- * Fix a small bug in our use of umask() return value.
-
- * "git rebase" did not exit with failure when format-patch it invoked
-   failed for whatever reason.
-
- * Disable "have we lost a race with competing repack?" check while
-   receiving a huge object transfer that runs index-pack.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.4.8.txt b/third_party/git/Documentation/RelNotes/2.4.8.txt
deleted file mode 100644
index ad946b267378..000000000000
--- a/third_party/git/Documentation/RelNotes/2.4.8.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Git v2.4.8 Release Notes
-========================
-
-Fixes since v2.4.7
-------------------
-
- * Abandoning an already applied change in "git rebase -i" with
-   "--continue" left CHERRY_PICK_HEAD and confused later steps.
-
- * Various fixes around "git am" that applies a patch to a history
-   that is not there yet.
-
- * "git for-each-ref" reported "missing object" for 0{40} when it
-   encounters a broken ref.  The lack of object whose name is 0{40} is
-   not the problem; the ref being broken is.
-
- * "git commit --cleanup=scissors" was not careful enough to protect
-   against getting fooled by a line that looked like scissors.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.4.9.txt b/third_party/git/Documentation/RelNotes/2.4.9.txt
deleted file mode 100644
index 09af9ddbc77b..000000000000
--- a/third_party/git/Documentation/RelNotes/2.4.9.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Git v2.4.9 Release Notes
-========================
-
-Fixes since v2.4.9
-------------------
-
- * A handful of codepaths that used to use fixed-sized arrays to hold
-   pathnames have been corrected to use strbuf and other mechanisms to
-   allow longer pathnames without fearing overflows.
diff --git a/third_party/git/Documentation/RelNotes/2.5.0.txt b/third_party/git/Documentation/RelNotes/2.5.0.txt
deleted file mode 100644
index 84723f912a9c..000000000000
--- a/third_party/git/Documentation/RelNotes/2.5.0.txt
+++ /dev/null
@@ -1,564 +0,0 @@
-Git 2.5 Release Notes
-=====================
-
-Updates since v2.4
-------------------
-
-UI, Workflows & Features
-
- * The bash completion script (in contrib/) learned a few options that
-   "git revert" takes.
-
- * Whitespace breakages in deleted and context lines can also be
-   painted in the output of "git diff" and friends with the new
-   --ws-error-highlight option.
-
- * List of commands shown by "git help" are grouped along the workflow
-   elements to help early learners.
-
- * "git p4" now detects the filetype (e.g. binary) correctly even when
-   the files are opened exclusively.
-
- * git p4 attempts to better handle branches in Perforce.
-
- * "git p4" learned "--changes-block-size <n>" to read the changes in
-   chunks from Perforce, instead of making one call to "p4 changes"
-   that may trigger "too many rows scanned" error from Perforce.
-
- * More workaround for Perforce's row number limit in "git p4".
-
- * Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the
-   command and initial options (e.g. "/path/to/emacs -nw"), 'git p4'
-   did not let the shell interpolate the contents of the environment
-   variable that name the editor "$P4EDITOR" (and "$EDITOR", too).
-   This release makes it in line with the rest of Git, as well as with
-   Perforce.
-
- * A new short-hand <branch>@{push} denotes the remote-tracking branch
-   that tracks the branch at the remote the <branch> would be pushed
-   to.
-
- * "git show-branch --topics HEAD" (with no other arguments) did not
-   do anything interesting.  Instead, contrast the given revision
-   against all the local branches by default.
-
- * A replacement for contrib/workdir/git-new-workdir that does not
-   rely on symbolic links and make sharing of objects and refs safer
-   by making the borrowee and borrowers aware of each other.
-
-   Consider this as still an experimental feature; its UI is still
-   likely to change.
-
- * Tweak the sample "store" backend of the credential helper to honor
-   XDG configuration file locations when specified.
-
- * A heuristic we use to catch mistyped paths on the command line
-   "git <cmd> <revs> <pathspec>" is to make sure that all the non-rev
-   parameters in the later part of the command line are names of the
-   files in the working tree, but that means "git grep $str -- \*.c"
-   must always be disambiguated with "--", because nobody sane will
-   create a file whose name literally is asterisk-dot-see.  Loosen the
-   heuristic to declare that with a wildcard string the user likely
-   meant to give us a pathspec.
-
- * "git merge FETCH_HEAD" learned that the previous "git fetch" could
-   be to create an Octopus merge, i.e. recording multiple branches
-   that are not marked as "not-for-merge"; this allows us to lose an
-   old style invocation "git merge <msg> HEAD $commits..." in the
-   implementation of "git pull" script; the old style syntax can now
-   be deprecated (but not removed yet).
-
- * Filter scripts were run with SIGPIPE disabled on the Git side,
-   expecting that they may not read what Git feeds them to filter.
-   We however treated a filter that does not read its input fully
-   before exiting as an error.  We no longer do and ignore EPIPE
-   when writing to feed the filter scripts.
-
-   This changes semantics, but arguably in a good way.  If a filter
-   can produce its output without fully consuming its input using
-   whatever magic, we now let it do so, instead of diagnosing it
-   as a programming error.
-
- * Instead of dying immediately upon failing to obtain a lock, the
-   locking (of refs etc) retries after a short while with backoff.
-
- * Introduce http.<url>.SSLCipherList configuration variable to tweak
-   the list of cipher suite to be used with libcURL when talking with
-   https:// sites.
-
- * "git subtree" script (in contrib/) used "echo -n" to produce
-   progress messages in a non-portable way.
-
- * "git subtree" script (in contrib/) does not have --squash option
-   when pushing, but the documentation and help text pretended as if
-   it did.
-
- * The Git subcommand completion (in contrib/) no longer lists credential
-   helpers among candidates; they are not something the end user would
-   invoke interactively.
-
- * The index file can be taught with "update-index --untracked-cache"
-   to optionally remember already seen untracked files, in order to
-   speed up "git status" in a working tree with tons of cruft.
-
- * "git mergetool" learned to drive WinMerge as a backend.
-
- * "git upload-pack" that serves "git fetch" can be told to serve
-   commits that are not at the tip of any ref, as long as they are
-   reachable from a ref, with uploadpack.allowReachableSHA1InWant
-   configuration variable.
-
- * "git cat-file --batch(-check)" learned the "--follow-symlinks"
-   option that follows an in-tree symbolic link when asked about an
-   object via extended SHA-1 syntax, e.g. HEAD:RelNotes that points at
-   Documentation/RelNotes/2.5.0.txt.  With the new option, the command
-   behaves as if HEAD:Documentation/RelNotes/2.5.0.txt was given as
-   input instead.
-
-   Consider this as still an experimental and incomplete feature:
-
-    - We may want to do the same for in-index objects, e.g.
-      asking for :RelNotes with this option should give
-      :Documentation/RelNotes/2.5.0.txt, too
-
-    - "git cat-file --follow-symlinks blob HEAD:RelNotes"
-      may also be something we want to allow in the future.
-
- * "git send-email" learned the alias file format used by the sendmail
-   program (in a simplified form; we obviously do not feed pipes).
-
- * Traditionally, external low-level 3-way merge drivers are expected
-   to produce their results based solely on the contents of the three
-   variants given in temporary files named by %O, %A and %B on their
-   command line.  Additionally allow them to look at the final path
-   (given by %P).
-
- * "git blame" learned blame.showEmail configuration variable.
-
- * "git apply" cannot diagnose a patch corruption when the breakage is
-   to mark the length of the hunk shorter than it really is on the
-   hunk header line "@@ -l,k +m,n @@"; one special case it could is
-   when the hunk becomes no-op (e.g. k == n == 2 for two-line context
-   patch output), and it learned to do so in this special case.
-
- * Add the "--allow-unknown-type" option to "cat-file" to allow
-   inspecting loose objects of an experimental or a broken type.
-
- * Many long-running operations show progress eye-candy, even when
-   they are later backgrounded.  Hide the eye-candy when the process
-   is sent to the background instead.
-   (merge a4fb76c lm/squelch-bg-progress later to maint).
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * "unsigned char [20]" used throughout the code to represent object
-   names are being converted into a semi-opaque "struct object_id".
-   This effort is expected to interfere with other topics in flight,
-   but hopefully will give us one extra level of abstraction in the
-   end, when completed.
-
- * for_each_ref() callback functions were taught to name the objects
-   not with "unsigned char sha1[20]" but with "struct object_id".
-
- * Catch a programmer mistake to feed a pointer not an array to
-   ARRAY_SIZE() macro, by using a couple of GCC extensions.
-
- * Some error messages in "git config" were emitted without calling
-   the usual error() facility.
-
- * When "add--interactive" splits a hunk into two overlapping hunks
-   and then let the user choose only one, it sometimes feeds an
-   incorrect patch text to "git apply".  Add tests to demonstrate
-   this.
-
-   I have a slight suspicion that this may be
-   cf. <7vtzf77wjp.fsf@gitster.siamese.dyndns.org> coming back
-   and biting us (I seem to have said "let's run with this and see
-   what happens" back then).
-
- * More line-ending tests.
-
- * An earlier rewrite to use strbuf_getwholeline() instead of fgets(3)
-   to read packed-refs file revealed that the former is unacceptably
-   inefficient.  It has been optimized by using getdelim(3) when
-   available.
-
- * The refs API uses ref_lock struct which had its own "int fd", even
-   though the same file descriptor was in the lock struct it contains.
-   Clean-up the code to lose this redundant field.
-
- * There was a dead code that used to handle "git pull --tags" and
-   show special-cased error message, which was made irrelevant when
-   the semantics of the option changed back in Git 1.9 days.
-   (merge 19d122b pt/pull-tags-error-diag later to maint).
-
- * Help us to find broken test script that splits the body part of the
-   test by mistaken use of wrong kind of quotes.
-   (merge d93d5d5 jc/test-prereq-validate later to maint).
-
- * Developer support to automatically detect broken &&-chain in the
-   test scripts is now turned on by default.
-   (merge 92b269f jk/test-chain-lint later to maint).
-
- * Error reporting mechanism used in "refs" API has been made more
-   consistent.
-
- * "git pull" has more test coverage now.
-
- * "git pull" has become more aware of the options meant for
-   underlying "git fetch" and then learned to use parse-options
-   parser.
-
- * Clarify in the Makefile a guideline to decide use of USE_NSEC.
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.4
-----------------
-
-Unless otherwise noted, all the fixes since v2.4 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * Git 2.4 broke setting verbosity and progress levels on "git clone"
-   with native transports.
-   (merge 822f0c4 mh/clone-verbosity-fix later to maint).
-
- * "git add -e" did not allow the user to abort the operation by
-   killing the editor.
-   (merge cb64800 jk/add-e-kill-editor later to maint).
-
- * Memory usage of "git index-pack" has been trimmed by tens of
-   per-cent.
-   (merge f0e7f11 nd/slim-index-pack-memory-usage later to maint).
-
- * "git rev-list --objects $old --not --all" to see if everything that
-   is reachable from $old is already connected to the existing refs
-   was very inefficient.
-   (merge b6e8a3b jk/still-interesting later to maint).
-
- * "hash-object --literally" introduced in v2.2 was not prepared to
-   take a really long object type name.
-   (merge 1427a7f jc/hash-object later to maint).
-
- * "git rebase --quiet" was not quite quiet when there is nothing to
-   do.
-   (merge 22946a9 jk/rebase-quiet-noop later to maint).
-
- * The completion for "log --decorate=" parameter value was incorrect.
-   (merge af16bda sg/complete-decorate-full-not-long later to maint).
-
- * "filter-branch" corrupted commit log message that ends with an
-   incomplete line on platforms with some "sed" implementations that
-   munge such a line.  Work it around by avoiding to use "sed".
-   (merge df06201 jk/filter-branch-use-of-sed-on-incomplete-line later to maint).
-
- * "git daemon" fails to build from the source under NO_IPV6
-   configuration (regression in 2.4).
-   (merge d358f77 jc/daemon-no-ipv6-for-2.4.1 later to maint).
-
- * Some time ago, "git blame" (incorrectly) lost the convert_to_git()
-   call when synthesizing a fake "tip" commit that represents the
-   state in the working tree, which broke folks who record the history
-   with LF line ending to make their project portable across platforms
-   while terminating lines in their working tree files with CRLF for
-   their platform.
-   (merge 4bf256d tb/blame-resurrect-convert-to-git later to maint).
-
- * We avoid setting core.worktree when the repository location is the
-   ".git" directory directly at the top level of the working tree, but
-   the code misdetected the case in which the working tree is at the
-   root level of the filesystem (which arguably is a silly thing to
-   do, but still valid).
-   (merge 84ccad8 jk/init-core-worktree-at-root later to maint).
-
- * "git commit --date=now" or anything that relies on approxidate lost
-   the daylight-saving-time offset.
-   (merge f6e6362 jc/epochtime-wo-tz later to maint).
-
- * Access to objects in repositories that borrow from another one on a
-   slow NFS server unnecessarily got more expensive due to recent code
-   becoming more cautious in a naive way not to lose objects to pruning.
-   (merge ee1c6c3 jk/prune-mtime later to maint).
-
- * The codepaths that read .gitignore and .gitattributes files have been
-   taught that these files encoded in UTF-8 may have UTF-8 BOM marker at
-   the beginning; this makes it in line with what we do for configuration
-   files already.
-   (merge 27547e5 cn/bom-in-gitignore later to maint).
-
- * a few helper scripts in the test suite did not report errors
-   correctly.
-   (merge de248e9 ep/fix-test-lib-functions-report later to maint).
-
- * The default $HOME/.gitconfig file created upon "git config --global"
-   that edits it had incorrectly spelled user.name and user.email
-   entries in it.
-   (merge 7e11052 oh/fix-config-default-user-name-section later to maint).
-
- * "git cat-file bl $blob" failed to barf even though there is no
-   object type that is "bl".
-   (merge b7994af jk/type-from-string-gently later to maint).
-
- * The usual "git diff" when seeing a file turning into a directory
-   showed a patchset to remove the file and create all files in the
-   directory, but "git diff --no-index" simply refused to work.  Also,
-   when asked to compare a file and a directory, imitate POSIX "diff"
-   and compare the file with the file with the same name in the
-   directory, instead of refusing to run.
-   (merge 0615173 jc/diff-no-index-d-f later to maint).
-
- * "git rebase -i" moved the "current" command from "todo" to "done" a
-   bit too prematurely, losing a step when a "pick" did not even start.
-   (merge 8cbc57c ph/rebase-i-redo later to maint).
-
- * The connection initiation code for "ssh" transport tried to absorb
-   differences between the stock "ssh" and Putty-supplied "plink" and
-   its derivatives, but the logic to tell that we are using "plink"
-   variants were too loose and falsely triggered when "plink" appeared
-   anywhere in the path (e.g. "/home/me/bin/uplink/ssh").
-   (merge baaf233 bc/connect-plink later to maint).
-
- * We have prepended $GIT_EXEC_PATH and the path "git" is installed in
-   (typically "/usr/bin") to $PATH when invoking subprograms and hooks
-   for almost eternity, but the original use case the latter tried to
-   support was semi-bogus (i.e. install git to /opt/foo/git and run it
-   without having /opt/foo on $PATH), and more importantly it has
-   become less and less relevant as Git grew more mainstream (i.e. the
-   users would _want_ to have it on their $PATH).  Stop prepending the
-   path in which "git" is installed to users' $PATH, as that would
-   interfere the command search order people depend on (e.g. they may
-   not like versions of programs that are unrelated to Git in /usr/bin
-   and want to override them by having different ones in /usr/local/bin
-   and have the latter directory earlier in their $PATH).
-   (merge a0b4507 jk/git-no-more-argv0-path-munging later to maint).
-
- * core.excludesfile (defaulting to $XDG_HOME/git/ignore) is supposed
-   to be overridden by repository-specific .git/info/exclude file, but
-   the order was swapped from the beginning. This belatedly fixes it.
-   (merge 099d2d8 jc/gitignore-precedence later to maint).
-
- * There was a commented-out (instead of being marked to expect
-   failure) test that documented a breakage that was fixed since the
-   test was written; turn it into a proper test.
-   (merge 66d2e04 sb/t1020-cleanup later to maint).
-
- * The "log --decorate" enhancement in Git 2.4 that shows the commit
-   at the tip of the current branch e.g. "HEAD -> master", did not
-   work with --decorate=full.
-   (merge 429ad20 mg/log-decorate-HEAD later to maint).
-
- * The ref API did not handle cases where 'refs/heads/xyzzy/frotz' is
-   removed at the same time as 'refs/heads/xyzzy' is added (or vice
-   versa) very well.
-   (merge c628edf mh/ref-directory-file later to maint).
-
- * Multi-ref transaction support we merged a few releases ago
-   unnecessarily kept many file descriptors open, risking to fail with
-   resource exhaustion.  This is for 2.4.x track.
-   (merge 185ce3a mh/write-refs-sooner-2.4 later to maint).
-
- * "git bundle verify" did not diagnose extra parameters on the
-   command line.
-   (merge 7886cfa ps/bundle-verify-arg later to maint).
-
- * Various documentation mark-up fixes to make the output more
-   consistent in general and also make AsciiDoctor (an alternative
-   formatter) happier.
-   (merge d0258b9 jk/asciidoc-markup-fix later to maint).
-   (merge ad3967a jk/stripspace-asciidoctor-fix later to maint).
-   (merge 975e382 ja/tutorial-asciidoctor-fix later to maint).
-
- * The code to read pack-bitmap wanted to allocate a few hundred
-   pointers to a structure, but by mistake allocated and leaked memory
-   enough to hold that many actual structures.  Correct the allocation
-   size and also have it on stack, as it is small enough.
-   (merge 599dc76 rs/plug-leak-in-pack-bitmaps later to maint).
-
- * The pull.ff configuration was supposed to override the merge.ff
-   configuration, but it didn't.
-   (merge db9bb28 pt/pull-ff-vs-merge-ff later to maint).
-
- * "git pull --log" and "git pull --no-log" worked as expected, but
-   "git pull --log=20" did not.
-   (merge 5061a44 pt/pull-log-n later to maint).
-
- * "git rerere forget" in a repository without rerere enabled gave a
-   cryptic error message; it should be a silent no-op instead.
-   (merge 0544574 jk/rerere-forget-check-enabled later to maint).
-
- * "git rebase -i" fired post-rewrite hook when it shouldn't (namely,
-   when it was told to stop sequencing with 'exec' insn).
-   (merge 141ff8f mm/rebase-i-post-rewrite-exec later to maint).
-
- * Clarify that "log --raw" and "log --format=raw" are unrelated
-   concepts.
-   (merge 92de921 mm/log-format-raw-doc later to maint).
-
- * Make "git stash something --help" error out, so that users can
-   safely say "git stash drop --help".
-   (merge 5ba2831 jk/stash-options later to maint).
-
- * The clean/smudge interface did not work well when filtering an
-   empty contents (failed and then passed the empty input through).
-   It can be argued that a filter that produces anything but empty for
-   an empty input is nonsense, but if the user wants to do strange
-   things, then why not?
-   (merge f6a1e1e jh/filter-empty-contents later to maint).
-
- * Communication between the HTTP server and http_backend process can
-   lead to a dead-lock when relaying a large ref negotiation request.
-   Diagnose the situation better, and mitigate it by reading such a
-   request first into core (to a reasonable limit).
-   (merge 636614f jk/http-backend-deadlock later to maint).
-
- * "git clean pathspec..." tried to lstat(2) and complain even for
-   paths outside the given pathspec.
-   (merge 838d6a9 dt/clean-pathspec-filter-then-lstat later to maint).
-
- * Recent "git prune" traverses young unreachable objects to safekeep
-   old objects in the reachability chain from them, which sometimes
-   caused error messages that are unnecessarily alarming.
-   (merge ce4e7b2 jk/squelch-missing-link-warning-for-unreachable later to maint).
-
- * The configuration reader/writer uses mmap(2) interface to access
-   the files; when we find a directory, it barfed with "Out of memory?".
-   (merge 9ca0aaf jk/diagnose-config-mmap-failure later to maint).
-
- * "color.diff.plain" was a misnomer; give it 'color.diff.context' as
-   a more logical synonym.
-   (merge 8dbf3eb jk/color-diff-plain-is-context later to maint).
-
- * The setup code used to die when core.bare and core.worktree are set
-   inconsistently, even for commands that do not need working tree.
-   (merge fada767 jk/die-on-bogus-worktree-late later to maint).
-
- * Recent Mac OS X updates breaks the logic to detect that the machine
-   is on the AC power in the sample pre-auto-gc script.
-   (merge c54c7b3 pa/auto-gc-mac-osx later to maint).
-
- * "git commit --cleanup=scissors" was not careful enough to protect
-   against getting fooled by a line that looked like scissors.
-   (merge fbfa097 sg/commit-cleanup-scissors later to maint).
-
- * "Have we lost a race with competing repack?" check was too
-   expensive, especially while receiving a huge object transfer
-   that runs index-pack (e.g. "clone" or "fetch").
-   (merge 0eeb077 jk/index-pack-reduce-recheck later to maint).
-
- * The tcsh completion writes a bash scriptlet but that would have
-   failed for users with noclobber set.
-   (merge 0b1f688 af/tcsh-completion-noclobber later to maint).
-
- * "git for-each-ref" reported "missing object" for 0{40} when it
-   encounters a broken ref.  The lack of object whose name is 0{40} is
-   not the problem; the ref being broken is.
-   (merge 501cf47 mh/reporting-broken-refs-from-for-each-ref later to maint).
-
- * Various fixes around "git am" that applies a patch to a history
-   that is not there yet.
-   (merge 6ea3b67 pt/am-abort-fix later to maint).
-
- * "git fsck" used to ignore missing or invalid objects recorded in reflog.
-   (merge 19bf6c9 mh/fsck-reflog-entries later to maint).
-
- * "git format-patch --ignore-if-upstream A..B" did not like to be fed
-   tags as boundary commits.
-   (merge 9b7a61d jc/do-not-feed-tags-to-clear-commit-marks later to maint).
-
- * "git fetch --depth=<depth>" and "git clone --depth=<depth>" issued
-   a shallow transfer request even to an upload-pack that does not
-   support the capability.
-   (merge eb86a50 me/fetch-into-shallow-safety later to maint).
-
- * "git rebase" did not exit with failure when format-patch it invoked
-   failed for whatever reason.
-   (merge 60d708b cb/rebase-am-exit-code later to maint).
-
- * Fix a small bug in our use of umask() return value.
-   (merge 3096b2e jk/fix-refresh-utime later to maint).
-
- * An ancient test framework enhancement to allow color was not
-   entirely correct; this makes it work even when tput needs to read
-   from the ~/.terminfo under the user's real HOME directory.
-   (merge d5c1b7c rh/test-color-avoid-terminfo-in-original-home later to maint).
-
- * A minor bugfix when pack bitmap is used with "rev-list --count".
-   (merge c8a70d3 jk/rev-list-no-bitmap-while-pruning later to maint).
-
- * "git config" failed to update the configuration file when the
-   underlying filesystem is incapable of renaming a file that is still
-   open.
-   (merge 7a64592 kb/config-unmap-before-renaming later to maint).
-
- * Avoid possible ssize_t to int truncation.
-   (merge 6c8afe4 mh/strbuf-read-file-returns-ssize-t later to maint).
-
- * When you say "!<ENTER>" while running say "git log", you'd confuse
-   yourself in the resulting shell, that may look as if you took
-   control back to the original shell you spawned "git log" from but
-   that isn't what is happening.  To that new shell, we leaked
-   GIT_PAGER_IN_USE environment variable that was meant as a local
-   communication between the original "Git" and subprocesses that was
-   spawned by it after we launched the pager, which caused many
-   "interesting" things to happen, e.g. "git diff | cat" still paints
-   its output in color by default.
-
-   Stop leaking that environment variable to the pager's half of the
-   fork; we only need it on "Git" side when we spawn the pager.
-   (merge 124b519 jc/unexport-git-pager-in-use-in-pager later to maint).
-
- * Abandoning an already applied change in "git rebase -i" with
-   "--continue" left CHERRY_PICK_HEAD and confused later steps.
-   (merge 0e0aff4 js/rebase-i-clean-up-upon-continue-to-skip later to maint).
-
- * We used to ask libCURL to use the most secure authentication method
-   available when talking to an HTTP proxy only when we were told to
-   talk to one via configuration variables.  We now ask libCURL to
-   always use the most secure authentication method, because the user
-   can tell libCURL to use an HTTP proxy via an environment variable
-   without using configuration variables.
-   (merge 5841520 et/http-proxyauth later to maint).
-
- * A fix to a minor regression to "git fsck" in v2.2 era that started
-   complaining about a body-less tag object when it lacks a separator
-   empty line after its header to separate it with a non-existent body.
-   (merge 84d18c0 jc/fsck-retire-require-eoh later to maint).
-
- * Code cleanups and documentation updates.
-   (merge 0269f96 mm/usage-log-l-can-take-regex later to maint).
-   (merge 64f2589 nd/t1509-chroot-test later to maint).
-   (merge d201a1e sb/test-bitmap-free-at-end later to maint).
-   (merge 05bfc7d sb/line-log-plug-pairdiff-leak later to maint).
-   (merge 846e5df pt/xdg-config-path later to maint).
-   (merge 1154aa4 jc/plug-fmt-merge-msg-leak later to maint).
-   (merge 319b678 jk/sha1-file-reduce-useless-warnings later to maint).
-   (merge 9a35c14 fg/document-commit-message-stripping later to maint).
-   (merge bbf431c ps/doc-packfile-vs-pack-file later to maint).
-   (merge 309a9e3 jk/skip-http-tests-under-no-curl later to maint).
-   (merge ccd593c dl/branch-error-message later to maint).
-   (merge 22570b6 rs/janitorial later to maint).
-   (merge 5c2a581 mc/commit-doc-grammofix later to maint).
-   (merge ce41720 ah/usage-strings later to maint).
-   (merge e6a268c sb/glossary-submodule later to maint).
-   (merge ec48a76 sb/submodule-doc-intro later to maint).
-   (merge 14f8b9b jk/clone-dissociate later to maint).
-   (merge 055c7e9 sb/pack-protocol-mention-smart-http later to maint).
-   (merge 7c37a5d jk/make-fix-dependencies later to maint).
-   (merge fc0aa39 sg/merge-summary-config later to maint).
-   (merge 329af6c pt/t0302-needs-sanity later to maint).
-   (merge d614f07 fk/doc-format-patch-vn later to maint).
-   (merge 72dbb36 sg/completion-commit-cleanup later to maint).
-   (merge e654eb2 es/utf8-stupid-compiler-workaround later to maint).
-   (merge 34b935c es/osx-header-pollutes-mask-macro later to maint).
-   (merge ab7fade jc/prompt-document-ps1-state-separator later to maint).
-   (merge 25f600e mm/describe-doc later to maint).
-   (merge 83fe167 mm/branch-doc-updates later to maint).
-   (merge 75d2e5a ls/hint-rev-list-count later to maint).
-   (merge edc8f71 cb/subtree-tests-update later to maint).
-   (merge 5330e6e sb/p5310-and-chain later to maint).
-   (merge c4ac525 tb/checkout-doc later to maint).
-   (merge e479c5f jk/pretty-encoding-doc later to maint).
-   (merge 7e837c6 ss/clone-guess-dir-name-simplify later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.5.1.txt b/third_party/git/Documentation/RelNotes/2.5.1.txt
deleted file mode 100644
index b70553308af8..000000000000
--- a/third_party/git/Documentation/RelNotes/2.5.1.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-Git v2.5.1 Release Notes
-========================
-
-Fixes since v2.5
-----------------
-
- * Running an aliased command from a subdirectory when the .git thing
-   in the working tree is a gitfile pointing elsewhere did not work.
-
- * Often a fast-import stream builds a new commit on top of the
-   previous commit it built, and it often unconditionally emits a
-   "from" command to specify the first parent, which can be omitted in
-   such a case.  This caused fast-import to forget the tree of the
-   previous commit and then re-read it from scratch, which was
-   inefficient.  Optimize for this common case.
-
- * The "rev-parse --parseopt" mode parsed the option specification
-   and the argument hint in a strange way to allow '=' and other
-   special characters in the option name while forbidding them from
-   the argument hint.  This made it impossible to define an option
-   like "--pair <key>=<value>" with "pair=key=value" specification,
-   which instead would have defined a "--pair=key <value>" option.
-
- * A "rebase" replays changes of the local branch on top of something
-   else, as such they are placed in stage #3 and referred to as
-   "theirs", while the changes in the new base, typically a foreign
-   work, are placed in stage #2 and referred to as "ours".  Clarify
-   the "checkout --ours/--theirs".
-
- * An experimental "untracked cache" feature used uname(2) in a
-   slightly unportable way.
-
- * "sparse checkout" misbehaved for a path that is excluded from the
-   checkout when switching between branches that differ at the path.
-
- * The low-level "git send-pack" did not honor 'user.signingkey'
-   configuration variable when sending a signed-push.
-
- * An attempt to delete a ref by pushing into a repository whose HEAD
-   symbolic reference points at an unborn branch that cannot be
-   created due to ref D/F conflict (e.g. refs/heads/a/b exists, HEAD
-   points at refs/heads/a) failed.
-
- * "git subtree" (in contrib/) depended on "git log" output to be
-   stable, which was a no-no.  Apply a workaround to force a
-   particular date format.
-
- * "git clone $URL" in recent releases of Git contains a regression in
-   the code that invents a new repository name incorrectly based on
-   the $URL.  This has been corrected.
-   (merge db2e220 jk/guess-repo-name-regression-fix later to maint).
-
- * Running tests with the "-x" option to make them verbose had some
-   unpleasant interactions with other features of the test suite.
-   (merge 9b5fe78 jk/test-with-x later to maint).
-
- * "git pull" in recent releases of Git has a regression in the code
-   that allows custom path to the --upload-pack=<program>.  This has
-   been corrected.
-
- * pipe() emulation used in Git for Windows looked at a wrong variable
-   when checking for an error from an _open_osfhandle() call.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.5.2.txt b/third_party/git/Documentation/RelNotes/2.5.2.txt
deleted file mode 100644
index 3f749398bbc8..000000000000
--- a/third_party/git/Documentation/RelNotes/2.5.2.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-Git v2.5.2 Release Notes
-========================
-
-Fixes since v2.5.1
-------------------
-
- * "git init empty && git -C empty log" said "bad default revision 'HEAD'",
-   which was found to be a bit confusing to new users.
-
- * The "interpret-trailers" helper mistook a multi-paragraph title of
-   a commit log message with a colon in it as the end of the trailer
-   block.
-
- * When re-priming the cache-tree opportunistically while committing
-   the in-core index as-is, we mistakenly invalidated the in-core
-   index too aggressively, causing the experimental split-index code
-   to unnecessarily rewrite the on-disk index file(s).
-
- * "git archive" did not use zip64 extension when creating an archive
-   with more than 64k entries, which nobody should need, right ;-)?
-
- * The code in "multiple-worktree" support that attempted to recover
-   from an inconsistent state updated an incorrect file.
-
- * "git rev-list" does not take "--notes" option, but did not complain
-   when one is given.
-
- * Because the configuration system does not allow "alias.0foo" and
-   "pager.0foo" as the configuration key, the user cannot use '0foo'
-   as a custom command name anyway, but "git 0foo" tried to look these
-   keys up and emitted useless warnings before saying '0foo is not a
-   git command'.  These warning messages have been squelched.
-
- * We recently rewrote one of the build scripts in Perl, which made it
-   necessary to have Perl to build Git.  Reduced Perl dependency by
-   rewriting it again using sed.
-
- * t1509 test that requires a dedicated VM environment had some
-   bitrot, which has been corrected.
-
- * strbuf_read() used to have one extra iteration (and an unnecessary
-   strbuf_grow() of 8kB), which was eliminated.
-
- * The codepath to produce error messages had a hard-coded limit to
-   the size of the message, primarily to avoid memory allocation while
-   calling die().
-
- * When trying to see that an object does not exist, a state errno
-   leaked from our "first try to open a packfile with O_NOATIME and
-   then if it fails retry without it" logic on a system that refuses
-   O_NOATIME.  This confused us and caused us to die, saying that the
-   packfile is unreadable, when we should have just reported that the
-   object does not exist in that packfile to the caller.
-
- * An off-by-one error made "git remote" to mishandle a remote with a
-   single letter nickname.
-
- * A handful of codepaths that used to use fixed-sized arrays to hold
-   pathnames have been corrected to use strbuf and other mechanisms to
-   allow longer pathnames without fearing overflows.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.5.3.txt b/third_party/git/Documentation/RelNotes/2.5.3.txt
deleted file mode 100644
index d1436857cb54..000000000000
--- a/third_party/git/Documentation/RelNotes/2.5.3.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Git v2.5.3 Release Notes
-========================
-
-Fixes since v2.5.2
-------------------
-
- * The experimental untracked-cache feature were buggy when paths with
-   a few levels of subdirectories are involved.
-
- * Recent versions of scripted "git am" has a performance regression
-   in "git am --skip" codepath, which no longer exists in the
-   built-in version on the 'master' front.  Fix the regression in
-   the last scripted version that appear in 2.5.x maintenance track
-   and older.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.5.4.txt b/third_party/git/Documentation/RelNotes/2.5.4.txt
deleted file mode 100644
index b8a2f93ee707..000000000000
--- a/third_party/git/Documentation/RelNotes/2.5.4.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Git v2.5.4 Release Notes
-========================
-
-Fixes since v2.5.4
-------------------
-
- * xdiff code we use to generate diffs is not prepared to handle
-   extremely large files.  It uses "int" in many places, which can
-   overflow if we have a very large number of lines or even bytes in
-   our input files, for example.  Cap the input size to somewhere
-   around 1GB for now.
-
- * Some protocols (like git-remote-ext) can execute arbitrary code
-   found in the URL.  The URLs that submodules use may come from
-   arbitrary sources (e.g., .gitmodules files in a remote
-   repository), and can hurt those who blindly enable recursive
-   fetch.  Restrict the allowed protocols to well known and safe
-   ones.
diff --git a/third_party/git/Documentation/RelNotes/2.5.5.txt b/third_party/git/Documentation/RelNotes/2.5.5.txt
deleted file mode 100644
index 37eae9a2d98b..000000000000
--- a/third_party/git/Documentation/RelNotes/2.5.5.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Git v2.5.5 Release Notes
-========================
-
-Fixes since v2.5.4
-------------------
-
- * Bugfix patches were backported from the 'master' front to plug heap
-   corruption holes, to catch integer overflow in the computation of
-   pathname lengths, and to get rid of the name_path API.  Both of
-   these would have resulted in writing over an under-allocated buffer
-   when formulating pathnames while tree traversal.
diff --git a/third_party/git/Documentation/RelNotes/2.5.6.txt b/third_party/git/Documentation/RelNotes/2.5.6.txt
deleted file mode 100644
index 9cd025bb1c2e..000000000000
--- a/third_party/git/Documentation/RelNotes/2.5.6.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Git v2.5.6 Release Notes
-========================
-
-Fixes since v2.5.5
-------------------
-
- * "git-shell" rejects a request to serve a repository whose name
-   begins with a dash, which makes it no longer possible to get it
-   confused into spawning service programs like "git-upload-pack" with
-   an option like "--help", which in turn would spawn an interactive
-   pager, instead of working with the repository user asked to access
-   (i.e. the one whose name is "--help").
diff --git a/third_party/git/Documentation/RelNotes/2.6.0.txt b/third_party/git/Documentation/RelNotes/2.6.0.txt
deleted file mode 100644
index 7288aaf71679..000000000000
--- a/third_party/git/Documentation/RelNotes/2.6.0.txt
+++ /dev/null
@@ -1,370 +0,0 @@
-Git 2.6 Release Notes
-=====================
-
-Updates since v2.5
-------------------
-
-UI, Workflows & Features
-
- * An asterisk as a substring (as opposed to the entirety) of a path
-   component for both side of a refspec, e.g.
-   "refs/heads/o*:refs/remotes/heads/i*", is now allowed.
-
- * New userdiff pattern definition for fountain screenwriting markup
-   format has been added.
-
- * "git log" and friends learned a new "--date=format:..." option to
-   format timestamps using system's strftime(3).
-
- * "git fast-import" learned to respond to the get-mark command via
-   its cat-blob-fd interface.
-
- * "git rebase -i" learned "drop commit-object-name subject" command
-   as another way to skip replaying of a commit.
-
- * A new configuration variable can enable "--follow" automatically
-   when "git log" is run with one pathspec argument.
-
- * "git status" learned to show a more detailed information regarding
-   the "rebase -i" session in progress.
-
- * "git cat-file" learned "--batch-all-objects" option to enumerate all
-   available objects in the repository more quickly than "rev-list
-   --all --objects" (the output includes unreachable objects, though).
-
- * "git fsck" learned to ignore errors on a set of known-to-be-bad
-   objects, and also allows the warning levels of various kinds of
-   non-critical breakages to be tweaked.
-
- * "git rebase -i"'s list of todo is made configurable.
-
- * "git send-email" now performs alias-expansion on names that are
-   given via --cccmd, etc.
-
- * An environment variable GIT_REPLACE_REF_BASE tells Git to look into
-   refs hierarchy other than refs/replace/ for the object replacement
-   data.
-
- * Allow untracked cache (experimental) to be used when sparse
-   checkout (experimental) is also in use.
-
- * "git pull --rebase" has been taught to pay attention to
-   rebase.autostash configuration.
-
- * The command-line completion script (in contrib/) has been updated.
-
- * A negative !ref entry in multi-value transfer.hideRefs
-   configuration can be used to say "don't hide this one".
-
- * After "git am" without "-3" stops, running "git am -3" pays attention
-   to "-3" only for the patch that caused the original invocation
-   to stop.
-
- * When linked worktree is used, simultaneous "notes merge" instances
-   for the same ref in refs/notes/* are prevented from stomping on
-   each other.
-
- * "git send-email" learned a new option --smtp-auth to limit the SMTP
-   AUTH mechanisms to be used to a subset of what the system library
-   supports.
-
- * A new configuration variable http.sslVersion can be used to specify
-   what specific version of SSL/TLS to use to make a connection.
-
- * "git notes merge" can be told with "--strategy=<how>" option how to
-   automatically handle conflicts; this can now be configured by
-   setting notes.mergeStrategy configuration variable.
-
- * "git log --cc" did not show any patch, even though most of the time
-   the user meant "git log --cc -p -m" to see patch output for commits
-   with a single parent, and combined diff for merge commits.  The
-   command is taught to DWIM "--cc" (without "--raw" and other forms
-   of output specification) to "--cc -p -m".
-
- * "git config --list" output was hard to parse when values consist of
-   multiple lines.  "--name-only" option is added to help this.
-
- * A handful of usability & cosmetic fixes to gitk and l10n updates.
-
- * A completely empty e-mail address <> is now allowed in the authors
-   file used by git-svn, to match the way it accepts the output from
-   authors-prog.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * In preparation for allowing different "backends" to store the refs
-   in a way different from the traditional "one ref per file in
-   $GIT_DIR or in a $GIT_DIR/packed-refs file" filesystem storage,
-   direct filesystem access to ref-like things like CHERRY_PICK_HEAD
-   from scripts and programs has been reduced.
-
- * Computation of untracked status indicator by bash prompt
-   script (in contrib/) has been optimized.
-
- * Memory use reduction when commit-slab facility is used to annotate
-   sparsely (which is not recommended in the first place).
-
- * Clean up refs API and make "git clone" less intimate with the
-   implementation detail.
-
- * "git pull" was reimplemented in C.
-
- * The packet tracing machinery allows to capture an incoming pack
-   data to a file for debugging.
-
- * Move machinery to parse human-readable scaled numbers like 1k, 4M,
-   and 2G as an option parameter's value from pack-objects to
-   parse-options API, to make it available to other codepaths.
-
- * "git verify-tag" and "git verify-commit" have been taught to share
-   more code, and then learned to optionally show the verification
-   message from the underlying GPG implementation.
-
- * Various enhancements around "git am" reading patches generated by
-   foreign SCM have been made.
-
- * Ref listing by "git branch -l" and "git tag -l" commands has
-   started to be rebuilt, based on the for-each-ref machinery.
-
- * The code to perform multi-tree merges has been taught to repopulate
-   the cache-tree upon a successful merge into the index, so that
-   subsequent "diff-index --cached" (hence "status") and "write-tree"
-   (hence "commit") will go faster.
-
-   The same logic in "git checkout" may now be removed, but that is a
-   separate issue.
-
- * Tests that assume how reflogs are represented on the filesystem too
-   much have been corrected.
-
- * "git am" has been rewritten in "C".
-
- * git_path() and mkpath() are handy helper functions but it is easy
-   to misuse, as the callers need to be careful to keep the number of
-   active results below 4.  Their uses have been reduced.
-
- * The "lockfile" API has been rebuilt on top of a new "tempfile" API.
-
- * To prepare for allowing a different "ref" backend to be plugged in
-   to the system, update_ref()/delete_ref() have been taught about
-   ref-like things like MERGE_HEAD that are per-worktree (they will
-   always be written to the filesystem inside $GIT_DIR).
-
- * The gitmodules API that is accessed from the C code learned to
-   cache stuff lazily.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.5
-----------------
-
-Unless otherwise noted, all the fixes since v2.5 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * "git subtree" (in contrib/) depended on "git log" output to be
-   stable, which was a no-no.  Apply a workaround to force a
-   particular date format.
-   (merge e7aac44 da/subtree-date-confusion later to maint).
-
- * An attempt to delete a ref by pushing into a repository whose HEAD
-   symbolic reference points at an unborn branch that cannot be
-   created due to ref D/F conflict (e.g. refs/heads/a/b exists, HEAD
-   points at refs/heads/a) failed.
-   (merge b112b14 jx/do-not-crash-receive-pack-wo-head later to maint).
-
- * The low-level "git send-pack" did not honor 'user.signingkey'
-   configuration variable when sending a signed-push.
-   (merge d830d39 db/send-pack-user-signingkey later to maint).
-
- * "sparse checkout" misbehaved for a path that is excluded from the
-   checkout when switching between branches that differ at the path.
-   (merge 7d78241 as/sparse-checkout-removal later to maint).
-
- * An experimental "untracked cache" feature used uname(2) in a
-   slightly unportable way.
-   (merge 100e433 cb/uname-in-untracked later to maint).
-
- * A "rebase" replays changes of the local branch on top of something
-   else, as such they are placed in stage #3 and referred to as
-   "theirs", while the changes in the new base, typically a foreign
-   work, are placed in stage #2 and referred to as "ours".  Clarify
-   the "checkout --ours/--theirs".
-   (merge f303016 se/doc-checkout-ours-theirs later to maint).
-
- * The "rev-parse --parseopt" mode parsed the option specification
-   and the argument hint in a strange way to allow '=' and other
-   special characters in the option name while forbidding them from
-   the argument hint.  This made it impossible to define an option
-   like "--pair <key>=<value>" with "pair=key=value" specification,
-   which instead would have defined a "--pair=key <value>" option.
-   (merge 2d893df ib/scripted-parse-opt-better-hint-string later to maint).
-
- * Often a fast-import stream builds a new commit on top of the
-   previous commit it built, and it often unconditionally emits a
-   "from" command to specify the first parent, which can be omitted in
-   such a case.  This caused fast-import to forget the tree of the
-   previous commit and then re-read it from scratch, which was
-   inefficient.  Optimize for this common case.
-   (merge 0df3245 mh/fast-import-optimize-current-from later to maint).
-
- * Running an aliased command from a subdirectory when the .git thing
-   in the working tree is a gitfile pointing elsewhere did not work.
-   (merge d95138e nd/export-worktree later to maint).
-
- * "Is this subdirectory a separate repository that should not be
-   touched?" check "git clean" was inefficient.  This was replaced
-   with a more optimized check.
-   (merge fbf2fec ee/clean-remove-dirs later to maint).
-
- * The "new-worktree-mode" hack in "checkout" that was added in
-   nd/multiple-work-trees topic has been removed by updating the
-   implementation of new "worktree add".
-   (merge 65f9b75 es/worktree-add-cleanup later to maint).
-
- * Remove remaining cruft from  "git checkout --to", which
-   transitioned to "git worktree add".
-   (merge 114ff88 es/worktree-add later to maint).
-
- * An off-by-one error made "git remote" to mishandle a remote with a
-   single letter nickname.
-   (merge bc598c3 mh/get-remote-group-fix later to maint).
-
- * "git clone $URL", when cloning from a site whose sole purpose is to
-   host a single repository (hence, no path after <scheme>://<site>/),
-   tried to use the site name as the new repository name, but did not
-   remove username or password when <site> part was of the form
-   <user>@<pass>:<host>.  The code is taught to redact these.
-   (merge adef956 ps/guess-repo-name-at-root later to maint).
-
- * Running tests with the "-x" option to make them verbose had some
-   unpleasant interactions with other features of the test suite.
-   (merge 9b5fe78 jk/test-with-x later to maint).
-
- * t1509 test that requires a dedicated VM environment had some
-   bitrot, which has been corrected.
-   (merge faacc5a ps/t1509-chroot-test-fixup later to maint).
-
- * "git pull" in recent releases of Git has a regression in the code
-   that allows custom path to the --upload-pack=<program>.  This has
-   been corrected.
-
-   Note that this is irrelevant for 'master' with "git pull" rewritten
-   in C.
-   (merge 13e0e28 mm/pull-upload-pack later to maint).
-
- * When trying to see that an object does not exist, a state errno
-   leaked from our "first try to open a packfile with O_NOATIME and
-   then if it fails retry without it" logic on a system that refuses
-   O_NOATIME.  This confused us and caused us to die, saying that the
-   packfile is unreadable, when we should have just reported that the
-   object does not exist in that packfile to the caller.
-   (merge dff6f28 cb/open-noatime-clear-errno later to maint).
-
- * The codepath to produce error messages had a hard-coded limit to
-   the size of the message, primarily to avoid memory allocation while
-   calling die().
-   (merge f4c3edc jk/long-error-messages later to maint).
-
- * strbuf_read() used to have one extra iteration (and an unnecessary
-   strbuf_grow() of 8kB), which was eliminated.
-   (merge 3ebbd00 jh/strbuf-read-use-read-in-full later to maint).
-
- * We rewrote one of the build scripts in Perl but this reimplements
-   in Bourne shell.
-   (merge 57cee8a sg/help-group later to maint).
-
- * The experimental untracked-cache feature were buggy when paths with
-   a few levels of subdirectories are involved.
-   (merge 73f9145 dt/untracked-subdir later to maint).
-
- * "interpret-trailers" helper mistook a single-liner log message that
-   has a colon as the end of existing trailer.
-
- * The "interpret-trailers" helper mistook a multi-paragraph title of
-   a commit log message with a colon in it as the end of the trailer
-   block.
-   (merge 5c99995 cc/trailers-corner-case-fix later to maint).
-
- * "git describe" without argument defaulted to describe the HEAD
-   commit, but "git describe --contains" didn't.  Arguably, in a
-   repository used for active development, such defaulting would not
-   be very useful as the tip of branch is typically not tagged, but it
-   is better to be consistent.
-   (merge 2bd0706 sg/describe-contains later to maint).
-
- * The client side codepaths in "git push" have been cleaned up
-   and the user can request to perform an optional "signed push",
-   i.e. sign only when the other end accepts signed push.
-   (merge 68c757f db/push-sign-if-asked later to maint).
-
- * Because the configuration system does not allow "alias.0foo" and
-   "pager.0foo" as the configuration key, the user cannot use '0foo'
-   as a custom command name anyway, but "git 0foo" tried to look these
-   keys up and emitted useless warnings before saying '0foo is not a
-   git command'.  These warning messages have been squelched.
-   (merge 9e9de18 jk/fix-alias-pager-config-key-warnings later to maint).
-
- * "git rev-list" does not take "--notes" option, but did not complain
-   when one is given.
-   (merge 2aea7a5 jk/rev-list-has-no-notes later to maint).
-
- * When re-priming the cache-tree opportunistically while committing
-   the in-core index as-is, we mistakenly invalidated the in-core
-   index too aggressively, causing the experimental split-index code
-   to unnecessarily rewrite the on-disk index file(s).
-   (merge 475a344 dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update later to maint).
-
- * "git archive" did not use zip64 extension when creating an archive
-   with more than 64k entries, which nobody should need, right ;-)?
-   (merge 88329ca rs/archive-zip-many later to maint).
-
- * The code in "multiple-worktree" support that attempted to recover
-   from an inconsistent state updated an incorrect file.
-   (merge 82fde87 nd/fixup-linked-gitdir later to maint).
-
- * On case insensitive systems, "git p4" did not work well with client
-   specs.
-
- * "git init empty && git -C empty log" said "bad default revision 'HEAD'",
-   which was found to be a bit confusing to new users.
-   (merge ce11360 jk/log-missing-default-HEAD later to maint).
-
- * Recent versions of scripted "git am" has a performance regression in
-   "git am --skip" codepath, which no longer exists in the built-in
-   version on the 'master' front.  Fix the regression in the last
-   scripted version that appear in 2.5.x maintenance track and older.
-   (merge b9d6689 js/maint-am-skip-performance-regression later to maint).
-
- * The branch descriptions that are set with "git branch --edit-description"
-   option were used in many places but they weren't clearly documented.
-   (merge 561d2b7 po/doc-branch-desc later to maint).
-
- * Code cleanups and documentation updates.
-   (merge 1c601af es/doc-clean-outdated-tools later to maint).
-   (merge 3581304 kn/tag-doc-fix later to maint).
-   (merge 3a59e59 kb/i18n-doc later to maint).
-   (merge 45abdee sb/remove-unused-var-from-builtin-add later to maint).
-   (merge 14691e3 sb/parse-options-codeformat later to maint).
-   (merge 4a6ada3 ad/bisect-cleanup later to maint).
-   (merge da4c5ad ta/docfix-index-format-tech later to maint).
-   (merge ae25fd3 sb/check-return-from-read-ref later to maint).
-   (merge b3325df nd/dwim-wildcards-as-pathspecs later to maint).
-   (merge 7aa9b9b sg/wt-status-header-inclusion later to maint).
-   (merge f04c690 as/docfix-reflog-expire-unreachable later to maint).
-   (merge 1269847 sg/t3020-typofix later to maint).
-   (merge 8b54c23 jc/calloc-pathspec later to maint).
-   (merge a6926b8 po/po-readme later to maint).
-   (merge 54d160e ss/fix-config-fd-leak later to maint).
-   (merge b80fa84 ah/submodule-typofix-in-error later to maint).
-   (merge 99885bc ah/reflog-typofix-in-error later to maint).
-   (merge 9476c2c ah/read-tree-usage-string later to maint).
-   (merge b8c1d27 ah/pack-objects-usage-strings later to maint).
-   (merge 486e1e1 br/svn-doc-include-paths-config later to maint).
-   (merge 1733ed3 ee/clean-test-fixes later to maint).
-   (merge 5fcadc3 gb/apply-comment-typofix later to maint).
-   (merge b894d3e mp/t7060-diff-index-test later to maint).
-   (merge d238710 as/config-doc-markup-fix later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.6.1.txt b/third_party/git/Documentation/RelNotes/2.6.1.txt
deleted file mode 100644
index f37ea89cda2f..000000000000
--- a/third_party/git/Documentation/RelNotes/2.6.1.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Git v2.6.1 Release Notes
-========================
-
-Fixes since v2.6
-----------------
-
- * xdiff code we use to generate diffs is not prepared to handle
-   extremely large files.  It uses "int" in many places, which can
-   overflow if we have a very large number of lines or even bytes in
-   our input files, for example.  Cap the input size to somewhere
-   around 1GB for now.
-
- * Some protocols (like git-remote-ext) can execute arbitrary code
-   found in the URL.  The URLs that submodules use may come from
-   arbitrary sources (e.g., .gitmodules files in a remote
-   repository), and can hurt those who blindly enable recursive
-   fetch.  Restrict the allowed protocols to well known and safe
-   ones.
diff --git a/third_party/git/Documentation/RelNotes/2.6.2.txt b/third_party/git/Documentation/RelNotes/2.6.2.txt
deleted file mode 100644
index 5b65e3524577..000000000000
--- a/third_party/git/Documentation/RelNotes/2.6.2.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-Git v2.6.2 Release Notes
-========================
-
-Fixes since v2.6.1
-------------------
-
- * There were some classes of errors that "git fsck" diagnosed to its
-   standard error that did not cause it to exit with non-zero status.
-
- * A test script for the HTTP service had a timing dependent bug,
-   which was fixed.
-
- * Performance-measurement tests did not work without an installed Git.
-
- * On a case insensitive filesystems, setting GIT_WORK_TREE variable
-   using a random cases that does not agree with what the filesystem
-   thinks confused Git that it wasn't inside the working tree.
-
- * When "git am" was rewritten as a built-in, it stopped paying
-   attention to user.signingkey, which was fixed.
-
- * After "git checkout --detach", "git status" reported a fairly
-   useless "HEAD detached at HEAD", instead of saying at which exact
-   commit.
-
- * "git rebase -i" had a minor regression recently, which stopped
-   considering a line that begins with an indented '#' in its insn
-   sheet not a comment, which is now fixed.
-
- * Description of the "log.follow" configuration variable in "git log"
-   documentation is now also copied to "git config" documentation.
-
- * Allocation related functions and stdio are unsafe things to call
-   inside a signal handler, and indeed killing the pager can cause
-   glibc to deadlock waiting on allocation mutex as our signal handler
-   tries to free() some data structures in wait_for_pager().  Reduce
-   these unsafe calls.
-
- * The way how --ref/--notes to specify the notes tree reference are
-   DWIMmed was not clearly documented.
-
- * Customization to change the behaviour with "make -w" and "make -s"
-   in our Makefile was broken when they were used together.
-
- * The Makefile always runs the library archiver with hardcoded "crs"
-   options, which was inconvenient for exotic platforms on which
-   people want to use programs with totally different set of command
-   line options.
-
- * The ssh transport, just like any other transport over the network,
-   did not clear GIT_* environment variables, but it is possible to
-   use SendEnv and AcceptEnv to leak them to the remote invocation of
-   Git, which is not a good idea at all.  Explicitly clear them just
-   like we do for the local transport.
-
- * "git blame --first-parent v1.0..v2.0" was not rejected but did not
-   limit the blame to commits on the first parent chain.
-
- * Very small number of options take a parameter that is optional
-   (which is not a great UI element as they can only appear at the end
-   of the command line).  Add notice to documentation of each and
-   every one of them.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.6.3.txt b/third_party/git/Documentation/RelNotes/2.6.3.txt
deleted file mode 100644
index fc6fe1711f81..000000000000
--- a/third_party/git/Documentation/RelNotes/2.6.3.txt
+++ /dev/null
@@ -1,111 +0,0 @@
-Git v2.6.3 Release Notes
-========================
-
-Fixes since v2.6.2
-------------------
-
- * The error message from "git blame --contents --reverse" incorrectly
-   talked about "--contents --children".
-
- * "git merge-file" tried to signal how many conflicts it found, which
-   obviously would not work well when there are too many of them.
-
- * The name-hash subsystem that is used to cope with case insensitive
-   filesystems keeps track of directories and their on-filesystem
-   cases for all the paths in the index by holding a pointer to a
-   randomly chosen cache entry that is inside the directory (for its
-   ce->ce_name component).  This pointer was not updated even when the
-   cache entry was removed from the index, leading to use after free.
-   This was fixed by recording the path for each directory instead of
-   borrowing cache entries and restructuring the API somewhat.
-
- * When the "git am" command was reimplemented in C, "git am -3" had a
-   small regression where it is aborted in its error handling codepath
-   when underlying merge-recursive failed in some ways.
-
- * The synopsis text and the usage string of subcommands that read
-   list of things from the standard input are often shown as if they
-   only take input from a file on a filesystem, which was misleading.
-
- * A couple of commands still showed "[options]" in their usage string
-   to note where options should come on their command line, but we
-   spell that "[<options>]" in most places these days.
-
- * The submodule code has been taught to work better with separate
-   work trees created via "git worktree add".
-
- * When "git gc --auto" is backgrounded, its diagnosis message is
-   lost.  It now is saved to a file in $GIT_DIR and is shown next time
-   the "gc --auto" is run.
-
- * Work around "git p4" failing when the P4 depot records the contents
-   in UTF-16 without UTF-16 BOM.
-
- * Recent update to "rebase -i" that tries to sanity check the edited
-   insn sheet before it uses it has become too picky on Windows where
-   CRLF left by the editor is turned into a trailing CR on the line
-   read via the "read" built-in command.
-
- * "git clone --dissociate" runs a big "git repack" process at the
-   end, and it helps to close file descriptors that are open on the
-   packs and their idx files before doing so on filesystems that
-   cannot remove a file that is still open.
-
- * Correct "git p4 --detect-labels" so that it does not fail to create
-   a tag that points at a commit that is also being imported.
-
- * The internal stripspace() function has been moved to where it
-   logically belongs to, i.e. strbuf API, and the command line parser
-   of "git stripspace" has been updated to use the parse_options API.
-
- * Prepare for Git on-disk repository representation to undergo
-   backward incompatible changes by introducing a new repository
-   format version "1", with an extension mechanism.
-
- * "git gc" used to barf when a symbolic ref has gone dangling
-   (e.g. the branch that used to be your upstream's default when you
-   cloned from it is now gone, and you did "fetch --prune").
-
- * The normalize_ceiling_entry() function does not muck with the end
-   of the path it accepts, and the real world callers do rely on that,
-   but a test insisted that the function drops a trailing slash.
-
- * "git gc" is safe to run anytime only because it has the built-in
-   grace period to protect young objects.  In order to run with no
-   grace period, the user must make sure that the repository is
-   quiescent.
-
- * A recent "filter-branch --msg-filter" broke skipping of the commit
-   object header, which is fixed.
-
- * "git --literal-pathspecs add -u/-A" without any command line
-   argument misbehaved ever since Git 2.0.
-
- * Merging a branch that removes a path and another that changes the
-   mode bits on the same path should have conflicted at the path, but
-   it didn't and silently favoured the removal.
-
- * "git imap-send" did not compile well with older version of cURL library.
-
- * The linkage order of libraries was wrong in places around libcurl.
-
- * It was not possible to use a repository-lookalike created by "git
-   worktree add" as a local source of "git clone".
-
- * When "git send-email" wanted to talk over Net::SMTP::SSL,
-   Net::Cmd::datasend() did not like to be fed too many bytes at the
-   same time and failed to send messages.  Send the payload one line
-   at a time to work around the problem.
-
- * We peek objects from submodule's object store by linking it to the
-   list of alternate object databases, but the code to do so forgot to
-   correctly initialize the list.
-
- * "git status --branch --short" accessed beyond the constant string
-   "HEAD", which has been corrected.
-
- * "git daemon" uses "run_command()" without "finish_command()", so it
-   needs to release resources itself, which it forgot to do.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.6.4.txt b/third_party/git/Documentation/RelNotes/2.6.4.txt
deleted file mode 100644
index b0256a2dc9a8..000000000000
--- a/third_party/git/Documentation/RelNotes/2.6.4.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-Git v2.6.4 Release Notes
-========================
-
-Fixes since v2.6.3
-------------------
-
- * The "configure" script did not test for -lpthread correctly, which
-   upset some linkers.
-
- * Add support for talking http/https over socks proxy.
-
- * Portability fix for Windows, which may rewrite $SHELL variable using
-   non-POSIX paths.
-
- * We now consistently allow all hooks to ignore their standard input,
-   rather than having git complain of SIGPIPE.
-
- * Fix shell quoting in contrib script.
-
- * Test portability fix for a topic in v2.6.1.
-
- * Allow tilde-expansion in some http config variables.
-
- * Give a useful special case "diff/show --word-diff-regex=." as an
-   example in the documentation.
-
- * Fix for a corner case in filter-branch.
-
- * Make git-p4 work on a detached head.
-
- * Documentation clarification for "check-ignore" without "--verbose".
-
- * Just like the working tree is cleaned up when the user cancelled
-   submission in P4Submit.applyCommit(), clean up the mess if "p4
-   submit" fails.
-
- * Having a leftover .idx file without corresponding .pack file in
-   the repository hurts performance; "git gc" learned to prune them.
-
- * The code to prepare the working tree side of temporary directory
-   for the "dir-diff" feature forgot that symbolic links need not be
-   copied (or symlinked) to the temporary area, as the code already
-   special cases and overwrites them.  Besides, it was wrong to try
-   computing the object name of the target of symbolic link, which may
-   not even exist or may be a directory.
-
- * There was no way to defeat a configured rebase.autostash variable
-   from the command line, as "git rebase --no-autostash" was missing.
-
- * Allow "git interpret-trailers" to run outside of a Git repository.
-
- * Produce correct "dirty" marker for shell prompts, even when we
-   are on an orphan or an unborn branch.
-
- * Some corner cases have been fixed in string-matching done in "git
-   status".
-
- * Apple's common crypto implementation of SHA1_Update() does not take
-   more than 4GB at a time, and we now have a compile-time workaround
-   for it.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.6.5.txt b/third_party/git/Documentation/RelNotes/2.6.5.txt
deleted file mode 100644
index f0924b62e03b..000000000000
--- a/third_party/git/Documentation/RelNotes/2.6.5.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-Git v2.6.5 Release Notes
-========================
-
-Fixes since v2.6.4
-------------------
-
- * Because "test_when_finished" in our test framework queues the
-   clean-up tasks to be done in a shell variable, it should not be
-   used inside a subshell.  Add a mechanism to allow 'bash' to catch
-   such uses, and fix the ones that were found.
-
- * Update "git subtree" (in contrib/) so that it can take whitespaces
-   in the pathnames, not only in the in-tree pathname but the name of
-   the directory that the repository is in.
-
- * Cosmetic improvement to lock-file error messages.
-
- * mark_tree_uninteresting() has code to handle the case where it gets
-   passed a NULL pointer in its 'tree' parameter, but the function had
-   'object = &tree->object' assignment before checking if tree is
-   NULL.  This gives a compiler an excuse to declare that tree will
-   never be NULL and apply a wrong optimization.  Avoid it.
-
- * The helper used to iterate over loose object directories to prune
-   stale objects did not closedir() immediately when it is done with a
-   directory--a callback such as the one used for "git prune" may want
-   to do rmdir(), but it would fail on open directory on platforms
-   such as WinXP.
-
- * "git p4" used to import Perforce CLs that touch only paths outside
-   the client spec as empty commits.  It has been corrected to ignore
-   them instead, with a new configuration git-p4.keepEmptyCommits as a
-   backward compatibility knob.
-
- * The exit code of git-fsck did not reflect some types of errors
-   found in packed objects, which has been corrected.
-
- * The completion script (in contrib/) used to list "git column"
-   (which is not an end-user facing command) as one of the choices
-
- * Improve error reporting when SMTP TLS fails.
-
- * When getpwuid() on the system returned NULL (e.g. the user is not
-   in the /etc/passwd file or other uid-to-name mappings), the
-   codepath to find who the user is to record it in the reflog barfed
-   and died.  Loosen the check in this codepath, which already accepts
-   questionable ident string (e.g. host part of the e-mail address is
-   obviously bogus), and in general when we operate fmt_ident() function
-   in non-strict mode.
-
- * "git symbolic-ref" forgot to report a failure with its exit status.
-
- * History traversal with "git log --source" that starts with an
-   annotated tag failed to report the tag as "source", due to an
-   old regression in the command line parser back in v2.2 days.
-
-Also contains typofixes, documentation updates and trivial code
-clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.6.6.txt b/third_party/git/Documentation/RelNotes/2.6.6.txt
deleted file mode 100644
index 023ad85ec644..000000000000
--- a/third_party/git/Documentation/RelNotes/2.6.6.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Git v2.6.6 Release Notes
-========================
-
-Fixes since v2.6.5
-------------------
-
- * Bugfix patches were backported from the 'master' front to plug heap
-   corruption holes, to catch integer overflow in the computation of
-   pathname lengths, and to get rid of the name_path API.  Both of
-   these would have resulted in writing over an under-allocated buffer
-   when formulating pathnames while tree traversal.
diff --git a/third_party/git/Documentation/RelNotes/2.6.7.txt b/third_party/git/Documentation/RelNotes/2.6.7.txt
deleted file mode 100644
index 1335de49a614..000000000000
--- a/third_party/git/Documentation/RelNotes/2.6.7.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Git v2.6.7 Release Notes
-========================
-
-Fixes since v2.6.6
-------------------
-
- * "git-shell" rejects a request to serve a repository whose name
-   begins with a dash, which makes it no longer possible to get it
-   confused into spawning service programs like "git-upload-pack" with
-   an option like "--help", which in turn would spawn an interactive
-   pager, instead of working with the repository user asked to access
-   (i.e. the one whose name is "--help").
diff --git a/third_party/git/Documentation/RelNotes/2.7.0.txt b/third_party/git/Documentation/RelNotes/2.7.0.txt
deleted file mode 100644
index e3cbf3a73c46..000000000000
--- a/third_party/git/Documentation/RelNotes/2.7.0.txt
+++ /dev/null
@@ -1,414 +0,0 @@
-Git 2.7 Release Notes
-=====================
-
-Updates since v2.6
-------------------
-
-UI, Workflows & Features
-
- * The appearance of "gitk", particularly on high DPI monitors, have
-   been improved.  "gitk" also comes with an undated translation for
-   Swedish and Japanese.
-
- * "git remote" learned "get-url" subcommand to show the URL for a
-   given remote name used for fetching and pushing.
-
- * There was no way to defeat a configured rebase.autostash variable
-   from the command line, as "git rebase --no-autostash" was missing.
-
- * "git log --date=local" used to only show the normal (default)
-   format in the local timezone.  The command learned to take 'local'
-   as an instruction to use the local timezone with other formats,
-
- * The refs used during a "git bisect" session is now per-worktree so
-   that independent bisect sessions can be done in different worktrees
-   created with "git worktree add".
-
- * Users who are too busy to type three extra keystrokes to ask for
-   "git stash show -p" can now set stash.showPatch configuration
-   variable to true to always see the actual patch, not just the list
-   of paths affected with feel for the extent of damage via diffstat.
-
- * "quiltimport" allows to specify the series file by honoring the
-   $QUILT_SERIES environment and also --series command line option.
-
- * The use of 'good/bad' in "git bisect" made it confusing to use when
-   hunting for a state change that is not a regression (e.g. bugfix).
-   The command learned 'old/new' and then allows the end user to
-   say e.g. "bisect start --term-old=fast --term-new=slow" to find a
-   performance regression.
-
- * "git interpret-trailers" can now run outside of a Git repository.
-
- * "git p4" learned to re-encode the pathname it uses to communicate
-   with the p4 depot with a new option.
-
- * Give progress meter to "git filter-branch".
-
- * Allow a later "!/abc/def" to override an earlier "/abc" that
-   appears in the same .gitignore file to make it easier to express
-   "everything in /abc directory is ignored, except for ...".
-
- * Teach "git p4" to send large blobs outside the repository by
-   talking to Git LFS.
-
- * Prepare for Git on-disk repository representation to undergo
-   backward incompatible changes by introducing a new repository
-   format version "1", with an extension mechanism.
-
- * "git worktree" learned a "list" subcommand.
-
- * "git clone --dissociate" learned that it can be used even when
-   "--reference" was not used at the same time.
-
- * "git blame" learnt to take "--first-parent" and "--reverse" at the
-   same time when it makes sense.
-
- * "git checkout" did not follow the usual "--[no-]progress"
-   convention and implemented only "--quiet" that is essentially
-   a superset of "--no-progress".  Extend the command to support the
-   usual "--[no-]progress".
-
- * The semantics of transfer.hideRefs configuration variable have been
-   extended to work better with the ref "namespace" feature that lets
-   you throw unrelated bunches of repositories in a single physical
-   repository and virtually serve them as separate ones.
-
- * send-email config variables whose values are pathnames now go
-   through the ~username/ expansion.
-
- * bash completion learnt to TAB-complete recipient addresses given
-   to send-email.
-
- * The credential-cache daemon can be told to ignore SIGHUP to work
-   around issue when running Git from inside emacs.
-
- * "git push" learned new configuration for doing "--recurse-submodules"
-   on each push.
-
- * "format-patch" has learned a new option to zero-out the commit
-   object name on the mbox "From " line.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * The infrastructure to rewrite "git submodule" in C is being built
-   incrementally.  Let's polish these early parts well enough and make
-   them graduate to 'next' and 'master', so that the more involved
-   follow-up can start cooking on a solid ground.
-
- * Some features from "git tag -l" and "git branch -l" have been made
-   available to "git for-each-ref" so that eventually the unified
-   implementation can be shared across all three.  The version merged
-   to the 'master' branch earlier had a performance regression in "tag
-   --contains", which has since been corrected.
-
- * Because "test_when_finished" in our test framework queues the
-   clean-up tasks to be done in a shell variable, it should not be
-   used inside a subshell.  Add a mechanism to allow 'bash' to catch
-   such uses, and fix the ones that were found.
-
- * The debugging infrastructure for pkt-line based communication has
-   been improved to mark the side-band communication specifically.
-
- * Update "git branch" that list existing branches, using the
-   ref-filter API that is shared with "git tag" and "git
-   for-each-ref".
-
- * The test for various line-ending conversions has been enhanced.
-
- * A few test scripts around "git p4" have been improved for
-   portability.
-
- * Many allocations that is manually counted (correctly) that are
-   followed by strcpy/sprintf have been replaced with a less error
-   prone constructs such as xstrfmt.
-
- * The internal stripspace() function has been moved to where it
-   logically belongs to, i.e. strbuf API, and the command line parser
-   of "git stripspace" has been updated to use the parse_options API.
-
- * "git am" used to spawn "git mailinfo" via run_command() API once
-   per each patch, but learned to make a direct call to mailinfo()
-   instead.
-
- * The implementation of "git mailinfo" was refactored so that a
-   mailinfo() function can be directly called from inside a process.
-
- * With a "debug" helper, debugging of a single "git" invocation in
-   our test scripts has become a lot easier.
-
- * The "configure" script did not test for -lpthread correctly, which
-   upset some linkers.
-
- * Cross completed task off of subtree project's todo list.
-
- * Test cleanups for the subtree project.
-
- * Clean up style in an ancient test t9300.
-
- * Work around some test flakiness with p4d.
-
- * Fsck did not correctly detect a NUL-truncated header in a tag.
-
- * Use a safer behavior when we hit errors verifying remote certificates.
-
- * Speed up filter-branch for cases where we only care about rewriting
-   commits, not tree data.
-
- * The parse-options API has been updated to make "-h" command line
-   option work more consistently in all commands.
-
- * "git svn rebase/mkdirs" got optimized by keeping track of empty
-   directories better.
-
- * Fix some racy client/server tests by treating SIGPIPE the same as a
-   normal non-zero exit.
-
- * The necessary infrastructure to build topics using the free Travis
-   CI has been added. Developers forking from this topic (and enabling
-   Travis) can do their own builds, and we can turn on auto-builds for
-   git/git (including build-status for pull requests that people
-   open).
-
- * The write(2) emulation for Windows learned to set errno to EPIPE
-   when necessary.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.6
-----------------
-
-Unless otherwise noted, all the fixes since v2.6 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * Very small number of options take a parameter that is optional
-   (which is not a great UI element as they can only appear at the end
-   of the command line).  Add notice to documentation of each and
-   every one of them.
-
- * "git blame --first-parent v1.0..v2.0" was not rejected but did not
-   limit the blame to commits on the first parent chain.
-
- * "git subtree" (in contrib/) now can take whitespaces in the
-   pathnames, not only in the in-tree pathname but the name of the
-   directory that the repository is in.
-
- * The ssh transport, just like any other transport over the network,
-   did not clear GIT_* environment variables, but it is possible to
-   use SendEnv and AcceptEnv to leak them to the remote invocation of
-   Git, which is not a good idea at all.  Explicitly clear them just
-   like we do for the local transport.
-
- * Correct "git p4 --detect-labels" so that it does not fail to create
-   a tag that points at a commit that is also being imported.
-
- * The Makefile always runs the library archiver with hardcoded "crs"
-   options, which was inconvenient for exotic platforms on which
-   people want to use programs with totally different set of command
-   line options.
-
- * Customization to change the behaviour with "make -w" and "make -s"
-   in our Makefile was broken when they were used together.
-
- * Allocation related functions and stdio are unsafe things to call
-   inside a signal handler, and indeed killing the pager can cause
-   glibc to deadlock waiting on allocation mutex as our signal handler
-   tries to free() some data structures in wait_for_pager().  Reduce
-   these unsafe calls.
-
- * The way how --ref/--notes to specify the notes tree reference are
-   DWIMmed was not clearly documented.
-
- * "git gc" used to barf when a symbolic ref has gone dangling
-   (e.g. the branch that used to be your upstream's default when you
-   cloned from it is now gone, and you did "fetch --prune").
-
- * "git clone --dissociate" runs a big "git repack" process at the
-   end, and it helps to close file descriptors that are open on the
-   packs and their idx files before doing so on filesystems that
-   cannot remove a file that is still open.
-
- * Description of the "log.follow" configuration variable in "git log"
-   documentation is now also copied to "git config" documentation.
-
- * "git rebase -i" had a minor regression recently, which stopped
-   considering a line that begins with an indented '#' in its insn
-   sheet not a comment. Further, the code was still too picky on
-   Windows where CRLF left by the editor is turned into a trailing CR
-   on the line read via the "read" built-in command of bash.  Both of
-   these issues are now fixed.
-
- * After "git checkout --detach", "git status" reported a fairly
-   useless "HEAD detached at HEAD", instead of saying at which exact
-   commit.
-
- * When "git send-email" wanted to talk over Net::SMTP::SSL,
-   Net::Cmd::datasend() did not like to be fed too many bytes at the
-   same time and failed to send messages.  Send the payload one line
-   at a time to work around the problem.
-
- * When "git am" was rewritten as a built-in, it stopped paying
-   attention to user.signingkey, which was fixed.
-
- * It was not possible to use a repository-lookalike created by "git
-   worktree add" as a local source of "git clone".
-
- * On a case insensitive filesystems, setting GIT_WORK_TREE variable
-   using a random cases that does not agree with what the filesystem
-   thinks confused Git that it wasn't inside the working tree.
-
- * Performance-measurement tests did not work without an installed Git.
-
- * A test script for the HTTP service had a timing dependent bug,
-   which was fixed.
-
- * There were some classes of errors that "git fsck" diagnosed to its
-   standard error that did not cause it to exit with non-zero status.
-
- * Work around "git p4" failing when the P4 depot records the contents
-   in UTF-16 without UTF-16 BOM.
-
- * When "git gc --auto" is backgrounded, its diagnosis message is
-   lost.  Save it to a file in $GIT_DIR and show it next time the "gc
-   --auto" is run.
-
- * The submodule code has been taught to work better with separate
-   work trees created via "git worktree add".
-
- * "git gc" is safe to run anytime only because it has the built-in
-   grace period to protect young objects.  In order to run with no
-   grace period, the user must make sure that the repository is
-   quiescent.
-
- * A recent "filter-branch --msg-filter" broke skipping of the commit
-   object header, which is fixed.
-
- * The normalize_ceiling_entry() function does not muck with the end
-   of the path it accepts, and the real world callers do rely on that,
-   but a test insisted that the function drops a trailing slash.
-
- * A test for interaction between untracked cache and sparse checkout
-   added in Git 2.5 days were flaky.
-
- * A couple of commands still showed "[options]" in their usage string
-   to note where options should come on their command line, but we
-   spell that "[<options>]" in most places these days.
-
- * The synopsis text and the usage string of subcommands that read
-   list of things from the standard input are often shown as if they
-   only take input from a file on a filesystem, which was misleading.
-
- * "git am -3" had a small regression where it is aborted in its error
-   handling codepath when underlying merge-recursive failed in certain
-   ways, as it assumed that the internal call to merge-recursive will
-   never die, which is not the case (yet).
-
- * The linkage order of libraries was wrong in places around libcurl.
-
- * The name-hash subsystem that is used to cope with case insensitive
-   filesystems keeps track of directories and their on-filesystem
-   cases for all the paths in the index by holding a pointer to a
-   randomly chosen cache entry that is inside the directory (for its
-   ce->ce_name component).  This pointer was not updated even when the
-   cache entry was removed from the index, leading to use after free.
-   This was fixed by recording the path for each directory instead of
-   borrowing cache entries and restructuring the API somewhat.
-
- * "git merge-file" tried to signal how many conflicts it found, which
-   obviously would not work well when there are too many of them.
-
- * The error message from "git blame --contents --reverse" incorrectly
-   talked about "--contents --children".
-
- * "git imap-send" did not compile well with older version of cURL library.
-
- * Merging a branch that removes a path and another that changes the
-   mode bits on the same path should have conflicted at the path, but
-   it didn't and silently favoured the removal.
-
- * "git --literal-pathspecs add -u/-A" without any command line
-   argument misbehaved ever since Git 2.0.
-
- * "git daemon" uses "run_command()" without "finish_command()", so it
-   needs to release resources itself, which it forgot to do.
-
- * "git status --branch --short" accessed beyond the constant string
-   "HEAD", which has been corrected.
-
- * We peek objects from submodule's object store by linking it to the
-   list of alternate object databases, but the code to do so forgot to
-   correctly initialize the list.
-
- * The code to prepare the working tree side of temporary directory
-   for the "dir-diff" feature forgot that symbolic links need not be
-   copied (or symlinked) to the temporary area, as the code already
-   special cases and overwrites them.  Besides, it was wrong to try
-   computing the object name of the target of symbolic link, which may
-   not even exist or may be a directory.
-
- * A Range: request can be responded with a full response and when
-   asked properly libcurl knows how to strip the result down to the
-   requested range.  However, we were hand-crafting a range request
-   and it did not kick in.
-
- * Having a leftover .idx file without corresponding .pack file in
-   the repository hurts performance; "git gc" learned to prune them.
-
- * Apple's common crypto implementation of SHA1_Update() does not take
-   more than 4GB at a time, and we now have a compile-time workaround
-   for it.
-
- * Produce correct "dirty" marker for shell prompts, even when we
-   are on an orphan or an unborn branch.
-
- * A build without NO_IPv6 used to use gethostbyname() when guessing
-   user's hostname, instead of getaddrinfo() that is used in other
-   codepaths in such a build.
-
- * The exit code of git-fsck did not reflect some types of errors
-   found in packed objects, which has been corrected.
-
- * The helper used to iterate over loose object directories to prune
-   stale objects did not closedir() immediately when it is done with a
-   directory--a callback such as the one used for "git prune" may want
-   to do rmdir(), but it would fail on open directory on platforms
-   such as WinXP.
-
- * "git p4" used to import Perforce CLs that touch only paths outside
-   the client spec as empty commits.  It has been corrected to ignore
-   them instead, with a new configuration git-p4.keepEmptyCommits as a
-   backward compatibility knob.
-
- * The completion script (in contrib/) used to list "git column"
-   (which is not an end-user facing command) as one of the choices
-   (merge 160fcdb sg/completion-no-column later to maint).
-
- * The error reporting from "git send-email", when SMTP TLS fails, has
-   been improved.
-   (merge 9d60524 jk/send-email-ssl-errors later to maint).
-
- * When getpwuid() on the system returned NULL (e.g. the user is not
-   in the /etc/passwd file or other uid-to-name mappings), the
-   codepath to find who the user is to record it in the reflog barfed
-   and died.  Loosen the check in this codepath, which already accepts
-   questionable ident string (e.g. host part of the e-mail address is
-   obviously bogus), and in general when we operate fmt_ident() function
-   in non-strict mode.
-   (merge 92bcbb9 jk/ident-loosen-getpwuid later to maint).
-
- * "git symbolic-ref" forgot to report a failure with its exit status.
-   (merge f91b273 jk/symbolic-ref-maint later to maint).
-
- * History traversal with "git log --source" that starts with an
-   annotated tag failed to report the tag as "source", due to an
-   old regression in the command line parser back in v2.2 days.
-   (merge 728350b jk/pending-keep-tag-name later to maint).
-
- * "git p4" when interacting with multiple depots at the same time
-   used to incorrectly drop changes.
-
- * Code clean-up, minor fixes etc.
diff --git a/third_party/git/Documentation/RelNotes/2.7.1.txt b/third_party/git/Documentation/RelNotes/2.7.1.txt
deleted file mode 100644
index 6323feaf6497..000000000000
--- a/third_party/git/Documentation/RelNotes/2.7.1.txt
+++ /dev/null
@@ -1,87 +0,0 @@
-Git v2.7.1 Release Notes
-========================
-
-Fixes since v2.7
-----------------
-
- * An earlier change in 2.5.x-era broke users' hooks and aliases by
-   exporting GIT_WORK_TREE to point at the root of the working tree,
-   interfering when they tried to use a different working tree without
-   setting GIT_WORK_TREE environment themselves.
-
- * The "exclude_list" structure has the usual "alloc, nr" pair of
-   fields to be used by ALLOC_GROW(), but clear_pattern_list() forgot
-   to reset 'alloc' to 0 when it cleared 'nr' to discard the managed
-   array.
-
- * "git send-email" was confused by escaped quotes stored in the alias
-   files saved by "mutt", which has been corrected.
-
- * A few unportable C construct have been spotted by clang compiler
-   and have been fixed.
-
- * The documentation has been updated to hint the connection between
-   the '--signoff' option and DCO.
-
- * "git reflog" incorrectly assumed that all objects that used to be
-   at the tip of a ref must be commits, which caused it to segfault.
-
- * The ignore mechanism saw a few regressions around untracked file
-   listing and sparse checkout selection areas in 2.7.0; the change
-   that is responsible for the regression has been reverted.
-
- * Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR
-   (e.g. COMMIT_EDITMSG) that is meant to be left after the command is
-   done.  This however did not work well if the repository is set to
-   be shared with core.sharedRepository and the umask of the previous
-   user is tighter.  They have been made to work better by calling
-   unlink(2) and retrying after fopen(3) fails with EPERM.
-
- * Asking gitweb for a nonexistent commit left a warning in the server
-   log.
-
- * "git rebase", unlike all other callers of "gc --auto", did not
-   ignore the exit code from "gc --auto".
-
- * Many codepaths that run "gc --auto" before exiting kept packfiles
-   mapped and left the file descriptors to them open, which was not
-   friendly to systems that cannot remove files that are open.  They
-   now close the packs before doing so.
-
- * A recent optimization to filter-branch in v2.7.0 introduced a
-   regression when --prune-empty filter is used, which has been
-   corrected.
-
- * The description for SANITY prerequisite the test suite uses has
-   been clarified both in the comment and in the implementation.
-
- * "git tag" started listing a tag "foo" as "tags/foo" when a branch
-   named "foo" exists in the same repository; remove this unnecessary
-   disambiguation, which is a regression introduced in v2.7.0.
-
- * The way "git svn" uses auth parameter was broken by Subversion
-   1.9.0 and later.
-
- * The "split" subcommand of "git subtree" (in contrib/) incorrectly
-   skipped merges when it shouldn't, which was corrected.
-
- * A few options of "git diff" did not work well when the command was
-   run from a subdirectory.
-
- * dirname() emulation has been added, as Msys2 lacks it.
-
- * The underlying machinery used by "ls-files -o" and other commands
-   have been taught not to create empty submodule ref cache for a
-   directory that is not a submodule.  This removes a ton of wasted
-   CPU cycles.
-
- * Drop a few old "todo" items by deciding that the change one of them
-   suggests is not such a good idea, and doing the change the other
-   one suggested to do.
-
- * Documentation for "git fetch --depth" has been updated for clarity.
-
- * The command line completion learned a handful of additional options
-   and command specific syntax.
-
-Also includes a handful of documentation and test updates.
diff --git a/third_party/git/Documentation/RelNotes/2.7.2.txt b/third_party/git/Documentation/RelNotes/2.7.2.txt
deleted file mode 100644
index 4feef7670483..000000000000
--- a/third_party/git/Documentation/RelNotes/2.7.2.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-Git v2.7.2 Release Notes
-========================
-
-Fixes since v2.7.1
-------------------
-
- * The low-level merge machinery has been taught to use CRLF line
-   termination when inserting conflict markers to merged contents that
-   are themselves CRLF line-terminated.
-
- * "git worktree" had a broken code that attempted to auto-fix
-   possible inconsistency that results from end-users moving a
-   worktree to different places without telling Git (the original
-   repository needs to maintain backpointers to its worktrees, but
-   "mv" run by end-users who are not familiar with that fact will
-   obviously not adjust them), which actually made things worse
-   when triggered.
-
- * "git push --force-with-lease" has been taught to report if the push
-   needed to force (or fast-forwarded).
-
- * The emulated "yes" command used in our test scripts has been
-   tweaked not to spend too much time generating unnecessary output
-   that is not used, to help those who test on Windows where it would
-   not stop until it fills the pipe buffer due to lack of SIGPIPE.
-
- * The vimdiff backend for "git mergetool" has been tweaked to arrange
-   and number buffers in the order that would match the expectation of
-   majority of people who read left to right, then top down and assign
-   buffers 1 2 3 4 "mentally" to local base remote merge windows based
-   on that order.
-
- * The documentation for "git clean" has been corrected; it mentioned
-   that .git/modules/* are removed by giving two "-f", which has never
-   been the case.
-
- * Paths that have been told the index about with "add -N" are not
-   quite yet in the index, but a few commands behaved as if they
-   already are in a harmful way.
-
-Also includes tiny documentation and test updates.
diff --git a/third_party/git/Documentation/RelNotes/2.7.3.txt b/third_party/git/Documentation/RelNotes/2.7.3.txt
deleted file mode 100644
index f618d71efd3e..000000000000
--- a/third_party/git/Documentation/RelNotes/2.7.3.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-Git v2.7.3 Release Notes
-========================
-
-Fixes since v2.7.2
-------------------
-
- * Traditionally, the tests that try commands that work on the
-   contents in the working tree were named with "worktree" in their
-   filenames, but with the recent addition of "git worktree"
-   subcommand, whose tests are also named similarly, it has become
-   harder to tell them apart.  The traditional tests have been renamed
-   to use "work-tree" instead in an attempt to differentiate them.
-
- * Many codepaths forget to check return value from git_config_set();
-   the function is made to die() to make sure we do not proceed when
-   setting a configuration variable failed.
-
- * Handling of errors while writing into our internal asynchronous
-   process has been made more robust, which reduces flakiness in our
-   tests.
-
- * "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a
-   rev, i.e. the object named by the pathname with wildcard
-   characters in a tree object.
-
- * "git rev-parse --git-common-dir" used in the worktree feature
-   misbehaved when run from a subdirectory.
-
- * The "v(iew)" subcommand of the interactive "git am -i" command was
-   broken in 2.6.0 timeframe when the command was rewritten in C.
-
- * "git merge-tree" used to mishandle "both sides added" conflict with
-   its own "create a fake ancestor file that has the common parts of
-   what both sides have added and do a 3-way merge" logic; this has
-   been updated to use the usual "3-way merge with an empty blob as
-   the fake common ancestor file" approach used in the rest of the
-   system.
-
- * The memory ownership rule of fill_textconv() API, which was a bit
-   tricky, has been documented a bit better.
-
- * The documentation did not clearly state that the 'simple' mode is
-   now the default for "git push" when push.default configuration is
-   not set.
-
- * Recent versions of GNU grep are pickier when their input contains
-   arbitrary binary data, which some of our tests uses.  Rewrite the
-   tests to sidestep the problem.
-
- * A helper function "git submodule" uses since v2.7.0 to list the
-   modules that match the pathspec argument given to its subcommands
-   (e.g. "submodule add <repo> <path>") has been fixed.
-
- * "git config section.var value" to set a value in per-repository
-   configuration file failed when it was run outside any repository,
-   but didn't say the reason correctly.
-
- * The code to read the pack data using the offsets stored in the pack
-   idx file has been made more carefully check the validity of the
-   data in the idx.
-
-Also includes documentation and test updates.
diff --git a/third_party/git/Documentation/RelNotes/2.7.4.txt b/third_party/git/Documentation/RelNotes/2.7.4.txt
deleted file mode 100644
index 883ae896feef..000000000000
--- a/third_party/git/Documentation/RelNotes/2.7.4.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Git v2.7.4 Release Notes
-========================
-
-Fixes since v2.7.3
-------------------
-
- * Bugfix patches were backported from the 'master' front to plug heap
-   corruption holes, to catch integer overflow in the computation of
-   pathname lengths, and to get rid of the name_path API.  Both of
-   these would have resulted in writing over an under-allocated buffer
-   when formulating pathnames while tree traversal.
diff --git a/third_party/git/Documentation/RelNotes/2.7.5.txt b/third_party/git/Documentation/RelNotes/2.7.5.txt
deleted file mode 100644
index 83559ce3b2f0..000000000000
--- a/third_party/git/Documentation/RelNotes/2.7.5.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Git v2.7.5 Release Notes
-========================
-
-Fixes since v2.7.4
-------------------
-
- * "git-shell" rejects a request to serve a repository whose name
-   begins with a dash, which makes it no longer possible to get it
-   confused into spawning service programs like "git-upload-pack" with
-   an option like "--help", which in turn would spawn an interactive
-   pager, instead of working with the repository user asked to access
-   (i.e. the one whose name is "--help").
-
-Also contains a few fixes backported from later development tracks.
diff --git a/third_party/git/Documentation/RelNotes/2.7.6.txt b/third_party/git/Documentation/RelNotes/2.7.6.txt
deleted file mode 100644
index 4c6d1dcd4a6a..000000000000
--- a/third_party/git/Documentation/RelNotes/2.7.6.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-Git v2.7.6 Release Notes
-========================
-
-Fixes since v2.7.5
-------------------
-
- * A "ssh://..." URL can result in a "ssh" command line with a
-   hostname that begins with a dash "-", which would cause the "ssh"
-   command to instead (mis)treat it as an option.  This is now
-   prevented by forbidding such a hostname (which will not be
-   necessary in the real world).
-
- * Similarly, when GIT_PROXY_COMMAND is configured, the command is
-   run with host and port that are parsed out from "ssh://..." URL;
-   a poorly written GIT_PROXY_COMMAND could be tricked into treating
-   a string that begins with a dash "-".  This is now prevented by
-   forbidding such a hostname and port number (again, which will not
-   be necessary in the real world).
-
- * In the same spirit, a repository name that begins with a dash "-"
-   is also forbidden now.
-
-Credits go to Brian Neel at GitLab, Joern Schneeweisz of Recurity
-Labs and Jeff King at GitHub.
-
diff --git a/third_party/git/Documentation/RelNotes/2.8.0.txt b/third_party/git/Documentation/RelNotes/2.8.0.txt
deleted file mode 100644
index 27320b6a9f37..000000000000
--- a/third_party/git/Documentation/RelNotes/2.8.0.txt
+++ /dev/null
@@ -1,439 +0,0 @@
-Git 2.8 Release Notes
-=====================
-
-Backward compatibility note
----------------------------
-
-The rsync:// transport has been removed.
-
-
-Updates since v2.7
-------------------
-
-UI, Workflows & Features
-
- * It turns out "git clone" over rsync transport has been broken when
-   the source repository has packed references for a long time, and
-   nobody noticed nor complained about it.
-
- * "push" learned that its "--delete" option can be shortened to
-   "-d", just like "branch --delete" and "branch -d" are the same
-   thing.
-
- * "git blame" learned to produce the progress eye-candy when it takes
-   too much time before emitting the first line of the result.
-
- * "git grep" can now be configured (or told from the command line)
-   how many threads to use when searching in the working tree files.
-
- * Some "git notes" operations, e.g. "git log --notes=<note>", should
-   be able to read notes from any tree-ish that is shaped like a notes
-   tree, but the notes infrastructure required that the argument must
-   be a ref under refs/notes/.  Loosen it to require a valid ref only
-   when the operation would update the notes (in which case we must
-   have a place to store the updated notes tree, iow, a ref).
-
- * "git grep" by default does not fall back to its "--no-index"
-   behavior outside a directory under Git's control (otherwise the
-   user may by mistake end up running a huge recursive search); with a
-   new configuration (set in $HOME/.gitconfig--by definition this
-   cannot be set in the config file per project), this safety can be
-   disabled.
-
- * "git pull --rebase" has been extended to allow invoking
-   "rebase -i".
-
- * "git p4" learned to cope with the type of a file getting changed.
-
- * "git format-patch" learned to notice format.outputDirectory
-   configuration variable.  This allows "-o <dir>" option to be
-   omitted on the command line if you always use the same directory in
-   your workflow.
-
- * "interpret-trailers" has been taught to optionally update a file in
-   place, instead of always writing the result to the standard output.
-
- * Many commands that read files that are expected to contain text
-   that is generated (or can be edited) by the end user to control
-   their behavior (e.g. "git grep -f <filename>") have been updated
-   to be more tolerant to lines that are terminated with CRLF (they
-   used to treat such a line to contain payload that ends with CR,
-   which is usually not what the users expect).
-
- * "git notes merge" used to limit the source of the merged notes tree
-   to somewhere under refs/notes/ hierarchy, which was too limiting
-   when inventing a workflow to exchange notes with remote
-   repositories using remote-tracking notes trees (located in e.g.
-   refs/remote-notes/ or somesuch).
-
- * "git ls-files" learned a new "--eol" option to help diagnose
-   end-of-line problems.
-
- * "ls-remote" learned an option to show which branch the remote
-   repository advertises as its primary by pointing its HEAD at.
-
- * New http.proxyAuthMethod configuration variable can be used to
-   specify what authentication method to use, as a way to work around
-   proxies that do not give error response expected by libcurl when
-   CURLAUTH_ANY is used.  Also, the codepath for proxy authentication
-   has been taught to use credential API to store the authentication
-   material in user's keyrings.
-
- * Update the untracked cache subsystem and change its primary UI from
-   "git update-index" to "git config".
-
- * There were a few "now I am doing this thing" progress messages in
-   the TCP connection code that can be triggered by setting a verbose
-   option internally in the code, but "git fetch -v" and friends never
-   passed the verbose option down to that codepath.
-
- * Clean/smudge filters defined in a configuration file of lower
-   precedence can now be overridden to be a pass-through no-op by
-   setting the variable to an empty string.
-
- * A new "<branch>^{/!-<pattern>}" notation can be used to name a
-   commit that is reachable from <branch> that does not match the
-   given <pattern>.
-
- * The "user.useConfigOnly" configuration variable can be used to
-   force the user to always set user.email & user.name configuration
-   variables, serving as a reminder for those who work on multiple
-   projects and do not want to put these in their $HOME/.gitconfig.
-
- * "git fetch" and friends that make network connections can now be
-   told to only use ipv4 (or ipv6).
-
- * Some authentication methods do not need username or password, but
-   libcurl needs some hint that it needs to perform authentication.
-   Supplying an empty username and password string is a valid way to
-   do so, but you can set the http.[<url>.]emptyAuth configuration
-   variable to achieve the same, if you find it cleaner.
-
- * You can now set http.[<url>.]pinnedpubkey to specify the pinned
-   public key when building with recent enough versions of libcURL.
-
- * The configuration system has been taught to phrase where it found a
-   bad configuration variable in a better way in its error messages.
-   "git config" learnt a new "--show-origin" option to indicate where
-   the values come from.
-
- * The "credential-cache" daemon process used to run in whatever
-   directory it happened to start in, but this made umount(2)ing the
-   filesystem that houses the repository harder; now the process
-   chdir()s to the directory that house its own socket on startup.
-
- * When "git submodule update" did not result in fetching the commit
-   object in the submodule that is referenced by the superproject, the
-   command learned to retry another fetch, specifically asking for
-   that commit that may not be connected to the refs it usually
-   fetches.
-
- * "git merge-recursive" learned "--no-renames" option to disable its
-   rename detection logic.
-
- * Across the transition at around Git version 2.0, the user used to
-   get a pretty loud warning when running "git push" without setting
-   push.default configuration variable.  We no longer warn because the
-   transition was completed a long time ago.
-
- * README has been renamed to README.md and its contents got tweaked
-   slightly to make it easier on the eyes.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * Add a framework to spawn a group of processes in parallel, and use
-   it to run "git fetch --recurse-submodules" in parallel.
-
- * A slight update to the Makefile to mark ".PHONY" targets as such
-   correctly.
-
- * In-core storage of the reverse index for .pack files (which lets
-   you go from a pack offset to an object name) has been streamlined.
-
- * d95138e6 (setup: set env $GIT_WORK_TREE when work tree is set, like
-   $GIT_DIR, 2015-06-26) attempted to work around a glitch in alias
-   handling by overwriting GIT_WORK_TREE environment variable to
-   affect subprocesses when set_git_work_tree() gets called, which
-   resulted in a rather unpleasant regression to "clone" and "init".
-   Try to address the same issue by always restoring the environment
-   and respawning the real underlying command when handling alias.
-
- * The low-level code that is used to create symbolic references has
-   been updated to share more code with the code that deals with
-   normal references.
-
- * strbuf_getline() and friends have been redefined to make it easier
-   to identify which callsite of (new) strbuf_getline_lf() should
-   allow and silently ignore carriage-return at the end of the line to
-   help users on DOSsy systems.
-
- * "git shortlog" used to accumulate various pieces of information
-   regardless of what was asked to be shown in the final output.  It
-   has been optimized by noticing what need not to be collected
-   (e.g. there is no need to collect the log messages when showing
-   only the number of changes).
-
- * "git checkout $branch" (and other operations that share the same
-   underlying machinery) has been optimized.
-
- * Automated tests in Travis CI environment has been optimized by
-   persisting runtime statistics of previous "prove" run, executing
-   tests that take longer before other ones; this reduces the total
-   wallclock time.
-
- * Test scripts have been updated to remove assumptions that are not
-   portable between Git for POSIX and Git for Windows, or to skip ones
-   with expectations that are not satisfiable on Git for Windows.
-
- * Some calls to strcpy(3) triggers a false warning from static
-   analyzers that are less intelligent than humans, and reducing the
-   number of these false hits helps us notice real issues.  A few
-   calls to strcpy(3) in a couple of programs that are already safe
-   has been rewritten to avoid false warnings.
-
- * The "name_path" API was an attempt to reduce the need to construct
-   the full path out of a series of path components while walking a
-   tree hierarchy, but over time made less efficient because the path
-   needs to be flattened, e.g. to be compared with another path that
-   is already flat.  The API has been removed and its users have been
-   rewritten to simplify the overall code complexity.
-
- * Help those who debug http(s) part of the system.
-   (merge 0054045 sp/remote-curl-ssl-strerror later to maint).
-
- * The internal API to interact with "remote.*" configuration
-   variables has been streamlined.
-
- * The ref-filter's format-parsing code has been refactored, in
-   preparation for "branch --format" and friends.
-
- * Traditionally, the tests that try commands that work on the
-   contents in the working tree were named with "worktree" in their
-   filenames, but with the recent addition of "git worktree"
-   subcommand, whose tests are also named similarly, it has become
-   harder to tell them apart.  The traditional tests have been renamed
-   to use "work-tree" instead in an attempt to differentiate them.
-   (merge 5549029 mg/work-tree-tests later to maint).
-
- * Many codepaths forget to check return value from git_config_set();
-   the function is made to die() to make sure we do not proceed when
-   setting a configuration variable failed.
-   (merge 3d18064 ps/config-error later to maint).
-
- * Handling of errors while writing into our internal asynchronous
-   process has been made more robust, which reduces flakiness in our
-   tests.
-   (merge 43f3afc jk/epipe-in-async later to maint).
-
- * There is a new DEVELOPER knob that enables many compiler warning
-   options in the Makefile.
-
- * The way the test scripts configure the Apache web server has been
-   updated to work also for Apache 2.4 running on RedHat derived
-   distros.
-
- * Out of maintenance gcc on OSX 10.6 fails to compile the code in
-   'master'; work it around by using clang by default on the platform.
-
- * The "name_path" API was an attempt to reduce the need to construct
-   the full path out of a series of path components while walking a
-   tree hierarchy, but over time made less efficient because the path
-   needs to be flattened, e.g. to be compared with another path that
-   is already flat, in many cases.  The API has been removed and its
-   users have been rewritten to simplify the overall code complexity.
-   This incidentally also closes some heap-corruption holes.
-
- * Recent versions of GNU grep is pickier than before to decide if a
-   file is "binary" and refuse to give line-oriented hits when we
-   expect it to, unless explicitly told with "-a" option.  As our
-   scripted Porcelains use sane_grep wrapper for line-oriented data,
-   even when the line may contain non-ASCII payload we took from
-   end-user data, use "grep -a" to implement sane_grep wrapper when
-   using an implementation of "grep" that takes the "-a" option.
-
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.7
-----------------
-
-Unless otherwise noted, all the fixes since v2.7 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * An earlier change in 2.5.x-era broke users' hooks and aliases by
-   exporting GIT_WORK_TREE to point at the root of the working tree,
-   interfering when they tried to use a different working tree without
-   setting GIT_WORK_TREE environment themselves.
-
- * The "exclude_list" structure has the usual "alloc, nr" pair of
-   fields to be used by ALLOC_GROW(), but clear_pattern_list() forgot
-   to reset 'alloc' to 0 when it cleared 'nr' to discard the managed
-   array.
-
- * Paths that have been told the index about with "add -N" are not
-   quite yet in the index, but a few commands behaved as if they
-   already are in a harmful way.
-
- * "git send-email" was confused by escaped quotes stored in the alias
-   files saved by "mutt", which has been corrected.
-
- * A few non-portable C construct have been spotted by clang compiler
-   and have been fixed.
-
- * The documentation has been updated to hint the connection between
-   the '--signoff' option and DCO.
-
- * "git reflog" incorrectly assumed that all objects that used to be
-   at the tip of a ref must be commits, which caused it to segfault.
-
- * The ignore mechanism saw a few regressions around untracked file
-   listing and sparse checkout selection areas in 2.7.0; the change
-   that is responsible for the regression has been reverted.
-
- * Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR
-   (e.g. COMMIT_EDITMSG) that is meant to be left after the command is
-   done.  This however did not work well if the repository is set to
-   be shared with core.sharedRepository and the umask of the previous
-   user is tighter.  They have been made to work better by calling
-   unlink(2) and retrying after fopen(3) fails with EPERM.
-
- * Asking gitweb for a nonexistent commit left a warning in the server
-   log.
-
-   Somebody may want to follow this up with an additional test, perhaps?
-   IIRC, we do test that no Perl warnings are given to the server log,
-   so this should have been caught if our test coverage were good.
-
- * "git rebase", unlike all other callers of "gc --auto", did not
-   ignore the exit code from "gc --auto".
-
- * Many codepaths that run "gc --auto" before exiting kept packfiles
-   mapped and left the file descriptors to them open, which was not
-   friendly to systems that cannot remove files that are open.  They
-   now close the packs before doing so.
-
- * A recent optimization to filter-branch in v2.7.0 introduced a
-   regression when --prune-empty filter is used, which has been
-   corrected.
-
- * The description for SANITY prerequisite the test suite uses has
-   been clarified both in the comment and in the implementation.
-
- * "git tag" started listing a tag "foo" as "tags/foo" when a branch
-   named "foo" exists in the same repository; remove this unnecessary
-   disambiguation, which is a regression introduced in v2.7.0.
-
- * The way "git svn" uses auth parameter was broken by Subversion
-   1.9.0 and later.
-
- * The "split" subcommand of "git subtree" (in contrib/) incorrectly
-   skipped merges when it shouldn't, which was corrected.
-
- * A few options of "git diff" did not work well when the command was
-   run from a subdirectory.
-
- * The command line completion learned a handful of additional options
-   and command specific syntax.
-
- * dirname() emulation has been added, as Msys2 lacks it.
-
- * The underlying machinery used by "ls-files -o" and other commands
-   has been taught not to create empty submodule ref cache for a
-   directory that is not a submodule.  This removes a ton of wasted
-   CPU cycles.
-
- * "git worktree" had a broken code that attempted to auto-fix
-   possible inconsistency that results from end-users moving a
-   worktree to different places without telling Git (the original
-   repository needs to maintain back-pointers to its worktrees,
-   but "mv" run by end-users who are not familiar with that fact
-   will obviously not adjust them), which actually made things
-   worse when triggered.
-
- * The low-level merge machinery has been taught to use CRLF line
-   termination when inserting conflict markers to merged contents that
-   are themselves CRLF line-terminated.
-
- * "git push --force-with-lease" has been taught to report if the push
-   needed to force (or fast-forwarded).
-
- * The emulated "yes" command used in our test scripts has been
-   tweaked not to spend too much time generating unnecessary output
-   that is not used, to help those who test on Windows where it would
-   not stop until it fills the pipe buffer due to lack of SIGPIPE.
-
- * The documentation for "git clean" has been corrected; it mentioned
-   that .git/modules/* are removed by giving two "-f", which has never
-   been the case.
-
- * The vimdiff backend for "git mergetool" has been tweaked to arrange
-   and number buffers in the order that would match the expectation of
-   majority of people who read left to right, then top down and assign
-   buffers 1 2 3 4 "mentally" to local base remote merge windows based
-   on that order.
-
- * "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a
-   rev, i.e. the object named by the the pathname with wildcard
-   characters in a tree object.
-   (merge aac4fac nd/dwim-wildcards-as-pathspecs later to maint).
-
- * "git rev-parse --git-common-dir" used in the worktree feature
-   misbehaved when run from a subdirectory.
-   (merge 17f1365 nd/git-common-dir-fix later to maint).
-
- * "git worktree add -B <branchname>" did not work.
-
- * The "v(iew)" subcommand of the interactive "git am -i" command was
-   broken in 2.6.0 timeframe when the command was rewritten in C.
-   (merge 708b8cc jc/am-i-v-fix later to maint).
-
- * "git merge-tree" used to mishandle "both sides added" conflict with
-   its own "create a fake ancestor file that has the common parts of
-   what both sides have added and do a 3-way merge" logic; this has
-   been updated to use the usual "3-way merge with an empty blob as
-   the fake common ancestor file" approach used in the rest of the
-   system.
-   (merge 907681e jk/no-diff-emit-common later to maint).
-
- * The memory ownership rule of fill_textconv() API, which was a bit
-   tricky, has been documented a bit better.
-   (merge a64e6a4 jk/more-comments-on-textconv later to maint).
-
- * Update various codepaths to avoid manually-counted malloc().
-   (merge 08c95df jk/tighten-alloc later to maint).
-
- * The documentation did not clearly state that the 'simple' mode is
-   now the default for "git push" when push.default configuration is
-   not set.
-   (merge f6b1fb3 mm/push-simple-doc later to maint).
-
- * Recent versions of GNU grep are pickier when their input contains
-   arbitrary binary data, which some of our tests uses.  Rewrite the
-   tests to sidestep the problem.
-   (merge 3b1442d jk/grep-binary-workaround-in-test later to maint).
-
- * A helper function "git submodule" uses since v2.7.0 to list the
-   modules that match the pathspec argument given to its subcommands
-   (e.g. "submodule add <repo> <path>") has been fixed.
-   (merge 2b56bb7 sb/submodule-module-list-fix later to maint).
-
- * "git config section.var value" to set a value in per-repository
-   configuration file failed when it was run outside any repository,
-   but didn't say the reason correctly.
-   (merge 638fa62 js/config-set-in-non-repository later to maint).
-
- * The code to read the pack data using the offsets stored in the pack
-   idx file has been made more carefully check the validity of the
-   data in the idx.
-   (merge 7465feb jk/pack-idx-corruption-safety later to maint).
-
- * Other minor clean-ups and documentation updates
-   (merge f459823 ak/extract-argv0-last-dir-sep later to maint).
-   (merge 63ca1c0 ak/git-strip-extension-from-dashed-command later to maint).
-   (merge 4867f11 ps/plug-xdl-merge-leak later to maint).
-   (merge 4938686 dt/initial-ref-xn-commit-doc later to maint).
-   (merge 9537f21 ma/update-hooks-sample-typofix later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.8.1.txt b/third_party/git/Documentation/RelNotes/2.8.1.txt
deleted file mode 100644
index ef6d80b008a0..000000000000
--- a/third_party/git/Documentation/RelNotes/2.8.1.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Git v2.8.1 Release Notes
-========================
-
-Fixes since v2.8
-----------------
-
- * "make rpmbuild" target was broken as its input, git.spec.in, was
-   not updated to match a file it describes that has been renamed
-   recently.  This has been fixed.
diff --git a/third_party/git/Documentation/RelNotes/2.8.2.txt b/third_party/git/Documentation/RelNotes/2.8.2.txt
deleted file mode 100644
index 447b1933a8f3..000000000000
--- a/third_party/git/Documentation/RelNotes/2.8.2.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-Git v2.8.2 Release Notes
-========================
-
-Fixes since v2.8.1
-------------------
-
- * The embedded args argv-array in the child process is used to build
-   the command line to run pack-objects instead of using a separate
-   array of strings.
-
- * Bunch of tests on "git clone" has been renumbered for better
-   organization.
-
- * The tests that involve running httpd leaked the system-wide
-   configuration in /etc/gitconfig to the tested environment.
-
- * "index-pack --keep=<msg>" was broken since v2.1.0 timeframe.
-
- * "git config --get-urlmatch", unlike other variants of the "git
-   config --get" family, did not signal error with its exit status
-   when there was no matching configuration.
-
- * The "--local-env-vars" and "--resolve-git-dir" options of "git
-   rev-parse" failed to work outside a repository when the command's
-   option parsing was rewritten in 1.8.5 era.
-
- * Fetching of history by naming a commit object name directly didn't
-   work across remote-curl transport.
-
- * A small memory leak in an error codepath has been plugged in xdiff
-   code.
-
- * strbuf_getwholeline() did not NUL-terminate the buffer on certain
-   corner cases in its error codepath.
-
- * The startup_info data, which records if we are working inside a
-   repository (among other things), are now uniformly available to Git
-   subcommand implementations, and Git avoids attempting to touch
-   references when we are not in a repository.
-
- * "git mergetool" did not work well with conflicts that both sides
-   deleted.
-
- * "git send-email" had trouble parsing alias file in mailrc format
-   when lines in it had trailing whitespaces on them.
-
- * When "git merge --squash" stopped due to conflict, the concluding
-   "git commit" failed to read in the SQUASH_MSG that shows the log
-   messages from all the squashed commits.
-
- * "git merge FETCH_HEAD" dereferenced NULL pointer when merging
-   nothing into an unborn history (which is arguably unusual usage,
-   which perhaps was the reason why nobody noticed it).
-
- * Build updates for MSVC.
-
- * "git diff -M" used to work better when two originally identical
-   files A and B got renamed to X/A and X/B by pairing A to X/A and B
-   to X/B, but this was broken in the 2.0 timeframe.
-
- * "git send-pack --all <there>" was broken when its command line
-   option parsing was written in the 2.6 timeframe.
-
- * When running "git blame $path" with unnormalized data in the index
-   for the path, the data in the working tree was blamed, even though
-   "git add" would not have changed what is already in the index, due
-   to "safe crlf" that disables the line-end conversion.  It has been
-   corrected.
-
-Also contains minor documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.8.3.txt b/third_party/git/Documentation/RelNotes/2.8.3.txt
deleted file mode 100644
index a63825ed87e6..000000000000
--- a/third_party/git/Documentation/RelNotes/2.8.3.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-Git v2.8.3 Release Notes
-========================
-
-Fixes since v2.8.2
-------------------
-
- * "git send-email" now uses a more readable timestamps when
-   formulating a message ID.
-
- * The repository set-up sequence has been streamlined (the biggest
-   change is that there is no longer git_config_early()), so that we
-   do not attempt to look into refs/* when we know we do not have a
-   Git repository.
-
- * When "git worktree" feature is in use, "git branch -d" allowed
-   deletion of a branch that is checked out in another worktree
-
- * When "git worktree" feature is in use, "git branch -m" renamed a
-   branch that is checked out in another worktree without adjusting
-   the HEAD symbolic ref for the worktree.
-
- * "git format-patch --help" showed `-s` and `--no-patch` as if these
-   are valid options to the command.  We already hide `--patch` option
-   from the documentation, because format-patch is about showing the
-   diff, and the documentation now hides these options as well.
-
- * A change back in version 2.7 to "git branch" broke display of a
-   symbolic ref in a non-standard place in the refs/ hierarchy (we
-   expect symbolic refs to appear in refs/remotes/*/HEAD to point at
-   the primary branch the remote has, and as .git/HEAD to point at the
-   branch we locally checked out).
-
- * A partial rewrite of "git submodule" in the 2.7 timeframe changed
-   the way the gitdir: pointer in the submodules point at the real
-   repository location to use absolute paths by accident.  This has
-   been corrected.
-
- * "git commit" misbehaved in a few minor ways when an empty message
-   is given via -m '', all of which has been corrected.
-
- * Support for CRAM-MD5 authentication method in "git imap-send" did
-   not work well.
-
- * The socks5:// proxy support added back in 2.6.4 days was not aware
-   that socks5h:// proxies behave differently.
-
- * "git config" had a codepath that tried to pass a NULL to
-   printf("%s"), which nobody seems to have noticed.
-
- * On Cygwin, object creation uses the "create a temporary and then
-   rename it to the final name" pattern, not "create a temporary,
-   hardlink it to the final name and then unlink the temporary"
-   pattern.
-
-   This is necessary to use Git on Windows shared directories, and is
-   already enabled for the MinGW and plain Windows builds.  It also
-   has been used in Cygwin packaged versions of Git for quite a while.
-   See https://lore.kernel.org/git/20160419091055.GF2345@dinwoodie.org/
-   and https://lore.kernel.org/git/20150811100527.GW14466@dinwoodie.org/.
-
- * "git replace -e" did not honour "core.editor" configuration.
-
- * Upcoming OpenSSL 1.1.0 will break compilation b updating a few APIs
-   we use in imap-send, which has been adjusted for the change.
-
- * "git submodule" reports the paths of submodules the command
-   recurses into, but this was incorrect when the command was not run
-   from the root level of the superproject.
-
- * The test scripts for "git p4" (but not "git p4" implementation
-   itself) has been updated so that they would work even on a system
-   where the installed version of Python is python 3.
-
- * The "user.useConfigOnly" configuration variable makes it an error
-   if users do not explicitly set user.name and user.email.  However,
-   its check was not done early enough and allowed another error to
-   trigger, reporting that the default value we guessed from the
-   system setting was unusable.  This was a suboptimal end-user
-   experience as we want the users to set user.name/user.email without
-   relying on the auto-detection at all.
-
- * "git mv old new" did not adjust the path for a submodule that lives
-   as a subdirectory inside old/ directory correctly.
-
- * "git push" from a corrupt repository that attempts to push a large
-   number of refs deadlocked; the thread to relay rejection notices
-   for these ref updates blocked on writing them to the main thread,
-   after the main thread at the receiving end notices that the push
-   failed and decides not to read these notices and return a failure.
-
- * A question by "git send-email" to ask the identity of the sender
-   has been updated.
-
- * Recent update to Git LFS broke "git p4" by changing the output from
-   its "lfs pointer" subcommand.
-
- * Some multi-byte encoding can have a backslash byte as a later part
-   of one letter, which would confuse "highlight" filter used in
-   gitweb.
-
-Also contains minor documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.8.4.txt b/third_party/git/Documentation/RelNotes/2.8.4.txt
deleted file mode 100644
index f4e255283667..000000000000
--- a/third_party/git/Documentation/RelNotes/2.8.4.txt
+++ /dev/null
@@ -1,69 +0,0 @@
-Git v2.8.4 Release Notes
-========================
-
-Fixes since v2.8.3
-------------------
-
- * Documentation for "git merge --verify-signatures" has been updated
-   to clarify that the signature of only the commit at the tip is
-   verified.  Also the phrasing used for signature and key validity is
-   adjusted to align with that used by OpenPGP.
-
- * On Windows, .git and optionally any files whose name starts with a
-   dot are now marked as hidden, with a core.hideDotFiles knob to
-   customize this behaviour.
-
- * Portability enhancement for "rebase -i" to help platforms whose
-   shell does not like "for i in <empty>" (which is not POSIX-kosher).
-
- * "git fsck" learned to catch NUL byte in a commit object as
-   potential error and warn.
-
- * CI test was taught to build documentation pages.
-
- * Many 'linkgit:<git documentation page>' references were broken,
-   which are all fixed with this.
-
- * "git describe --contains" often made a hard-to-justify choice of
-   tag to give name to a given commit, because it tried to come up
-   with a name with smallest number of hops from a tag, causing an old
-   commit whose close descendant that is recently tagged were not
-   described with respect to an old tag but with a newer tag.  It did
-   not help that its computation of "hop" count was further tweaked to
-   penalize being on a side branch of a merge.  The logic has been
-   updated to favor using the tag with the oldest tagger date, which
-   is a lot easier to explain to the end users: "We describe a commit
-   in terms of the (chronologically) oldest tag that contains the
-   commit."
-
- * Running tests with '-x' option to trace the individual command
-   executions is a useful way to debug test scripts, but some tests
-   that capture the standard error stream and check what the command
-   said can be broken with the trace output mixed in.  When running
-   our tests under "bash", however, we can redirect the trace output
-   to another file descriptor to keep the standard error of programs
-   being tested intact.
-
- * "http.cookieFile" configuration variable clearly wants a pathname,
-   but we forgot to treat it as such by e.g. applying tilde expansion.
-
- * When de-initialising all submodules, "git submodule deinit" gave a
-   faulty recommendation to use "git submodule deinit .", which would
-   result in a strange error message in a pathological corner case.
-   This has been corrected to suggest "submodule deinit --all" instead.
-
- * Many commands normalize command line arguments from NFD to NFC
-   variant of UTF-8 on OSX, but commands in the "diff" family did
-   not, causing "git diff $path" to complain that no such path is
-   known to Git.  They have been taught to do the normalization.
-
- * A couple of bugs around core.autocrlf have been fixed.
-
- * "git difftool" learned to handle unmerged paths correctly in
-   dir-diff mode.
-
- * The "are we talking with TTY, doing an interactive session?"
-   detection has been updated to work better for "Git for Windows".
-
-
-Also contains other minor documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.8.5.txt b/third_party/git/Documentation/RelNotes/2.8.5.txt
deleted file mode 100644
index 7bd179fa127f..000000000000
--- a/third_party/git/Documentation/RelNotes/2.8.5.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Git v2.8.5 Release Notes
-========================
-
-Fixes since v2.8.4
-------------------
-
- * "git-shell" rejects a request to serve a repository whose name
-   begins with a dash, which makes it no longer possible to get it
-   confused into spawning service programs like "git-upload-pack" with
-   an option like "--help", which in turn would spawn an interactive
-   pager, instead of working with the repository user asked to access
-   (i.e. the one whose name is "--help").
diff --git a/third_party/git/Documentation/RelNotes/2.8.6.txt b/third_party/git/Documentation/RelNotes/2.8.6.txt
deleted file mode 100644
index d8db55d920d5..000000000000
--- a/third_party/git/Documentation/RelNotes/2.8.6.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Git v2.8.6 Release Notes
-========================
-
-This release forward-ports the fix for "ssh://..." URL from Git v2.7.6
diff --git a/third_party/git/Documentation/RelNotes/2.9.0.txt b/third_party/git/Documentation/RelNotes/2.9.0.txt
deleted file mode 100644
index 991640119ae6..000000000000
--- a/third_party/git/Documentation/RelNotes/2.9.0.txt
+++ /dev/null
@@ -1,512 +0,0 @@
-Git 2.9 Release Notes
-=====================
-
-Backward compatibility notes
-----------------------------
-
-The end-user facing Porcelain level commands in the "git diff" and
-"git log" family by default enable the rename detection; you can still
-use "diff.renames" configuration variable to disable this.
-
-Merging two branches that have no common ancestor with "git merge" is
-by default forbidden now to prevent creating such an unusual merge by
-mistake.
-
-The output formats of "git log" that indents the commit log message by
-4 spaces now expands HT in the log message by default.  You can use
-the "--no-expand-tabs" option to disable this.
-
-"git commit-tree" plumbing command required the user to always sign
-its result when the user sets the commit.gpgsign configuration
-variable, which was an ancient mistake, which this release corrects.
-A script that drives commit-tree, if it relies on this mistake, now
-needs to read commit.gpgsign and pass the -S option as necessary.
-
-
-Updates since v2.8
-------------------
-
-UI, Workflows & Features
-
- * Comes with git-multimail 1.3.1 (in contrib/).
-
- * The end-user facing commands like "git diff" and "git log"
-   now enable the rename detection by default.
-
- * The credential.helper configuration variable is cumulative and
-   there is no good way to override it from the command line.  As
-   a special case, giving an empty string as its value now serves
-   as the signal to clear the values specified in various files.
-
- * A new "interactive.diffFilter" configuration can be used to
-   customize the diff shown in "git add -i" sessions.
-
- * "git p4" now allows P4 author names to be mapped to Git author
-   names.
-
- * "git rebase -x" can be used without passing "-i" option.
-
- * "git -c credential.<var>=<value> submodule" can now be used to
-   propagate configuration variables related to credential helper
-   down to the submodules.
-
- * "git tag" can create an annotated tag without explicitly given an
-   "-a" (or "-s") option (i.e. when a tag message is given).  A new
-   configuration variable, tag.forceSignAnnotated, can be used to tell
-   the command to create signed tag in such a situation.
-
- * "git merge" used to allow merging two branches that have no common
-   base by default, which led to a brand new history of an existing
-   project created and then get pulled by an unsuspecting maintainer,
-   which allowed an unnecessary parallel history merged into the
-   existing project.  The command has been taught not to allow this by
-   default, with an escape hatch "--allow-unrelated-histories" option
-   to be used in a rare event that merges histories of two projects
-   that started their lives independently.
-
- * "git pull" has been taught to pass the "--allow-unrelated-histories"
-   option to underlying "git merge".
-
- * "git apply -v" learned to report paths in the patch that were
-   skipped via --include/--exclude mechanism or being outside the
-   current working directory.
-
- * Shell completion (in contrib/) updates.
-
- * The commit object name reported when "rebase -i" stops has been
-   shortened.
-
- * "git worktree add" can be given "--no-checkout" option to only
-   create an empty worktree without checking out the files.
-
- * "git mergetools" learned to drive ExamDiff.
-
- * "git pull --rebase" learned "--[no-]autostash" option, so that
-   the rebase.autostash configuration variable set to true can be
-   overridden from the command line.
-
- * When "git log" shows the log message indented by 4-spaces, the
-   remainder of a line after a HT does not align in the way the author
-   originally intended.  The command now expands tabs by default to help
-   such a case, and allows the users to override it with a new option,
-   "--no-expand-tabs".
-
- * "git send-email" now uses a more readable timestamps when
-   formulating a message ID.
-
- * "git rerere" can encounter two or more files with the same conflict
-   signature that have to be resolved in different ways, but there was
-   no way to record these separate resolutions.
-
- * "git p4" learned to record P4 jobs in Git commit that imports from
-   the history in Perforce.
-
- * "git describe --contains" often made a hard-to-justify choice of
-   tag to name a given commit, because it tried to come up
-   with a name with smallest number of hops from a tag, causing an old
-   commit whose close descendant that is recently tagged were not
-   described with respect to an old tag but with a newer tag.  It did
-   not help that its computation of "hop" count was further tweaked to
-   penalize being on a side branch of a merge.  The logic has been
-   updated to favor using the tag with the oldest tagger date, which
-   is a lot easier to explain to the end users: "We describe a commit
-   in terms of the (chronologically) oldest tag that contains the
-   commit."
-
- * "git clone" learned the "--shallow-submodules" option.
-
- * HTTP transport clients learned to throw extra HTTP headers at the
-   server, specified via http.extraHeader configuration variable.
-
- * The "--compaction-heuristic" option to "git diff" family of
-   commands enables a heuristic to make the patch output more readable
-   by using a blank line as a strong hint that the contents before and
-   after it belong to logically separate units.  It is still
-   experimental.
-
- * A new configuration variable core.hooksPath allows customizing
-   where the hook directory is.
-
- * An earlier addition of "sanitize_submodule_env" with 14111fc4 (git:
-   submodule honor -c credential.* from command line, 2016-02-29)
-   turned out to be a convoluted no-op; implement what it wanted to do
-   correctly, and stop filtering settings given via "git -c var=val".
-
- * "git commit --dry-run" reported "No, no, you cannot commit." in one
-   case where "git commit" would have allowed you to commit, and this
-   improves it a little bit ("git commit --dry-run --short" still does
-   not give you the correct answer, for example).  This is a stop-gap
-   measure in that "commit --short --dry-run" still gives an incorrect
-   result.
-
- * The experimental "multiple worktree" feature gains more safety to
-   forbid operations on a branch that is checked out or being actively
-   worked on elsewhere, by noticing that e.g. it is being rebased.
-
- * "git format-patch" learned a new "--base" option to record what
-   (public, well-known) commit the original series was built on in
-   its output.
-
- * "git commit" learned to pay attention to the "commit.verbose"
-   configuration variable and act as if the "--verbose" option
-   was given from the command line.
-
- * Updated documentation gives hints to GMail users with two-factor
-   auth enabled that they need app-specific-password when using
-   "git send-email".
-
- * The manpage output of our documentation did not render well in
-   terminal; typeset literals in bold by default to make them stand
-   out more.
-
- * The mark-up in the top-level README.md file has been updated to
-   typeset CLI command names differently from the body text.
-
-
-Performance, Internal Implementation, Development Support etc.
-
- * The embedded args argv-array in the child process is used to build
-   the command line to run pack-objects instead of using a separate
-   array of strings.
-
- * A test for tags has been restructured so that more parts of it can
-   easily be run on a platform without a working GnuPG.
-
- * The startup_info data, which records if we are working inside a
-   repository (among other things), are now uniformly available to Git
-   subcommand implementations, and Git avoids attempting to touch
-   references when we are not in a repository.
-
- * The command line argument parser for "receive-pack" has been
-   rewritten to use parse-options.
-
- * A major part of "git submodule update" has been ported to C to take
-   advantage of the recently added framework to run download tasks in
-   parallel.  Other updates to "git submodule" that move pieces of
-   logic to C continues.
-
- * Rename bunch of tests on "git clone" for better organization.
-
- * The tests that involve running httpd leaked the system-wide
-   configuration in /etc/gitconfig to the tested environment.
-
- * Build updates for MSVC.
-
- * The repository set-up sequence has been streamlined (the biggest
-   change is that there is no longer git_config_early()), so that we
-   do not attempt to look into refs/* when we know we do not have a
-   Git repository.
-
- * Code restructuring around the "refs" API to prepare for pluggable
-   refs backends.
-
- * Sources to many test helper binaries and the generated helpers
-   have been moved to t/helper/ subdirectory to reduce clutter at the
-   top level of the tree.
-
- * Unify internal logic between "git tag -v" and "git verify-tag"
-   commands by making one directly call into the other.
-
- * "merge-recursive" strategy incorrectly checked if a path that is
-   involved in its internal merge exists in the working tree.
-
- * The test scripts for "git p4" (but not "git p4" implementation
-   itself) has been updated so that they would work even on a system
-   where the installed version of Python is python 3.
-
- * As nobody maintains our in-tree git.spec.in and distros use their
-   own spec file, we stopped pretending that we support "make rpm".
-
- * Move from "unsigned char[20]" to "struct object_id" continues.
-
- * The code for warning_errno/die_errno has been refactored and a new
-   error_errno() reporting helper is introduced.
-   (merge 1da045f nd/error-errno later to maint).
-
- * Running tests with '-x' option to trace the individual command
-   executions is a useful way to debug test scripts, but some tests
-   that capture the standard error stream and check what the command
-   said can be broken with the trace output mixed in.  When running
-   our tests under "bash", however, we can redirect the trace output
-   to another file descriptor to keep the standard error of programs
-   being tested intact.
-
- * t0040 had too many unnecessary repetitions in its test data.  Teach
-   test-parse-options program so that a caller can tell what it
-   expects in its output, so that these repetitions can be cleaned up.
-
- * Add perf test for "rebase -i".
-
- * Common mistakes when writing gitlink: in our documentation are
-   found by "make check-docs".
-
- * t9xxx series has been updated primarily for readability, while
-   fixing small bugs in it.  A few scripted Porcelain commands have
-   also been updated to fix possible bugs around their use of
-   "test -z" and "test -n".
-
- * CI test was taught to run git-svn tests.
-
- * "git cat-file --batch-all" has been sped up, by taking advantage
-   of the fact that it does not have to read a list of objects, in two
-   ways.
-
- * test updates to make it more readable and maintainable.
-   (merge e6273f4 es/t1500-modernize later to maint).
-
- * "make DEVELOPER=1" worked as expected; setting DEVELOPER=1 in
-   config.mak didn't.
-   (merge 51dd3e8 mm/makefile-developer-can-be-in-config-mak later to maint).
-
- * The way how "submodule--helper list" signals unmatch error to its
-   callers has been updated.
-
- * A bash-ism "local" has been removed from "git submodule" scripted
-   Porcelain.
-
-
-Also contains various documentation updates and code clean-ups.
-
-
-Fixes since v2.8
-----------------
-
-Unless otherwise noted, all the fixes since v2.8 in the maintenance
-track are contained in this release (see the maintenance releases'
-notes for details).
-
- * "git config --get-urlmatch", unlike other variants of the "git
-   config --get" family, did not signal error with its exit status
-   when there was no matching configuration.
-
- * The "--local-env-vars" and "--resolve-git-dir" options of "git
-   rev-parse" failed to work outside a repository when the command's
-   option parsing was rewritten in 1.8.5 era.
-
- * "git index-pack --keep[=<msg>] pack-$name.pack" simply did not work.
-
- * Fetching of history by naming a commit object name directly didn't
-   work across remote-curl transport.
-
- * A small memory leak in an error codepath has been plugged in xdiff
-   code.
-
- * strbuf_getwholeline() did not NUL-terminate the buffer on certain
-   corner cases in its error codepath.
-
- * "git mergetool" did not work well with conflicts that both sides
-   deleted.
-
- * "git send-email" had trouble parsing alias file in mailrc format
-   when lines in it had trailing whitespaces on them.
-
- * When "git merge --squash" stopped due to conflict, the concluding
-   "git commit" failed to read in the SQUASH_MSG that shows the log
-   messages from all the squashed commits.
-
- * "git merge FETCH_HEAD" dereferenced NULL pointer when merging
-   nothing into an unborn history (which is arguably unusual usage,
-   which perhaps was the reason why nobody noticed it).
-
- * When "git worktree" feature is in use, "git branch -d" allowed
-   deletion of a branch that is checked out in another worktree,
-   which was wrong.
-
- * When "git worktree" feature is in use, "git branch -m" renamed a
-   branch that is checked out in another worktree without adjusting
-   the HEAD symbolic ref for the worktree.
-
- * "git diff -M" used to work better when two originally identical
-   files A and B got renamed to X/A and X/B by pairing A to X/A and B
-   to X/B, but this was broken in the 2.0 timeframe.
-
- * "git send-pack --all <there>" was broken when its command line
-   option parsing was written in the 2.6 timeframe.
-
- * "git format-patch --help" showed `-s` and `--no-patch` as if these
-   are valid options to the command.  We already hide `--patch` option
-   from the documentation, because format-patch is about showing the
-   diff, and the documentation now hides these options as well.
-
- * When running "git blame $path" with unnormalized data in the index
-   for the path, the data in the working tree was blamed, even though
-   "git add" would not have changed what is already in the index, due
-   to "safe crlf" that disables the line-end conversion.  It has been
-   corrected.
-
- * A change back in version 2.7 to "git branch" broke display of a
-   symbolic ref in a non-standard place in the refs/ hierarchy (we
-   expect symbolic refs to appear in refs/remotes/*/HEAD to point at
-   the primary branch the remote has, and as .git/HEAD to point at the
-   branch we locally checked out).
-
- * A partial rewrite of "git submodule" in the 2.7 timeframe changed
-   the way the gitdir: pointer in the submodules point at the real
-   repository location to use absolute paths by accident.  This has
-   been corrected.
-
- * "git commit" misbehaved in a few minor ways when an empty message
-   is given via -m '', all of which has been corrected.
-
- * Support for CRAM-MD5 authentication method in "git imap-send" did
-   not work well.
-
- * Upcoming OpenSSL 1.1.0 will break compilation by updating a few API
-   elements we use in imap-send, which has been adjusted for the change.
-
- * The socks5:// proxy support added back in 2.6.4 days was not aware
-   that socks5h:// proxies behave differently from socks5:// proxies.
-
- * "git config" had a codepath that tried to pass a NULL to
-   printf("%s"), which nobody seems to have noticed.
-
- * On Cygwin, object creation uses the "create a temporary and then
-   rename it to the final name" pattern, not "create a temporary,
-   hardlink it to the final name and then unlink the temporary"
-   pattern.
-
-   This is necessary to use Git on Windows shared directories, and is
-   already enabled for the MinGW and plain Windows builds.  It also
-   has been used in Cygwin packaged versions of Git for quite a while.
-   See https://lore.kernel.org/git/20160419091055.GF2345@dinwoodie.org/
-
- * "merge-octopus" strategy did not ensure that the index is clean
-   when merge begins.
-
- * When "git merge" notices that the merge can be resolved purely at
-   the tree level (without having to merge blobs) and the resulting
-   tree happens to already exist in the object store, it forgot to
-   update the index, which left an inconsistent state that would
-   break later operations.
-
- * "git submodule" reports the paths of submodules the command
-   recurses into, but these paths were incorrectly reported when
-   the command was not run from the root level of the superproject.
-
- * The "user.useConfigOnly" configuration variable makes it an error
-   if users do not explicitly set user.name and user.email.  However,
-   its check was not done early enough and allowed another error to
-   trigger, reporting that the default value we guessed from the
-   system setting was unusable.  This was a suboptimal end-user
-   experience as we want the users to set user.name/user.email without
-   relying on the auto-detection at all.
-
- * "git mv old new" did not adjust the path for a submodule that lives
-   as a subdirectory inside old/ directory correctly.
-
- * "git replace -e" did not honour "core.editor" configuration.
-
- * "git push" from a corrupt repository that attempts to push a large
-   number of refs deadlocked; the thread to relay rejection notices
-   for these ref updates blocked on writing them to the main thread,
-   after the main thread at the receiving end notices that the push
-   failed and decides not to read these notices and return a failure.
-
- * mmap emulation on Windows has been optimized and work better without
-   consuming paging store when not needed.
-
- * A question by "git send-email" to ask the identity of the sender
-   has been updated.
-
- * UI consistency improvements for "git mergetool".
-
- * "git rebase -m" could be asked to rebase an entire branch starting
-   from the root, but failed by assuming that there always is a parent
-   commit to the first commit on the branch.
-
- * Fix a broken "p4 lfs" test.
-
- * Recent update to Git LFS broke "git p4" by changing the output from
-   its "lfs pointer" subcommand.
-
- * "git fetch" test t5510 was flaky while running a (forced) automagic
-   garbage collection.
-
- * Documentation updates to help contributors setting up Travis CI
-   test for their patches.
-
- * Some multi-byte encoding can have a backslash byte as a later part
-   of one letter, which would confuse "highlight" filter used in
-   gitweb.
-
- * "git commit-tree" plumbing command required the user to always sign
-   its result when the user sets the commit.gpgsign configuration
-   variable, which was an ancient mistake.  Rework "git rebase" that
-   relied on this mistake so that it reads commit.gpgsign and pass (or
-   not pass) the -S option to "git commit-tree" to keep the end-user
-   expectation the same, while teaching "git commit-tree" to ignore
-   the configuration variable.  This will stop requiring the users to
-   sign commit objects used internally as an implementation detail of
-   "git stash".
-
- * "http.cookieFile" configuration variable clearly wants a pathname,
-   but we forgot to treat it as such by e.g. applying tilde expansion.
-
- * Consolidate description of tilde-expansion that is done to
-   configuration variables that take pathname to a single place.
-
- * Correct faulty recommendation to use "git submodule deinit ." when
-   de-initialising all submodules, which would result in a strange
-   error message in a pathological corner case.
-
- * Many 'linkgit:<git documentation page>' references were broken,
-   which are all fixed with this.
-
- * "git rerere" can get confused by conflict markers deliberately left
-   by the inner merge step, because they are indistinguishable from
-   the real conflict markers left by the outermost merge which are
-   what the end user and "rerere" need to look at.  This was fixed by
-   making the conflict markers left by the inner merges a bit longer.
-   (merge 0f9fd5c jc/ll-merge-internal later to maint).
-
- * CI test was taught to build documentation pages.
-
- * "git fsck" learned to catch NUL byte in a commit object as
-   potential error and warn.
-
- * Portability enhancement for "rebase -i" to help platforms whose
-   shell does not like "for i in <empty>" (which is not POSIX-kosher).
-
- * On Windows, .git and optionally any files whose name starts with a
-   dot are now marked as hidden, with a core.hideDotFiles knob to
-   customize this behaviour.
-
- * Documentation for "git merge --verify-signatures" has been updated
-   to clarify that the signature of only the commit at the tip is
-   verified.  Also the phrasing used for signature and key validity is
-   adjusted to align with that used by OpenPGP.
-
- * A couple of bugs around core.autocrlf have been fixed.
-
- * Many commands normalize command line arguments from NFD to NFC
-   variant of UTF-8 on OSX, but commands in the "diff" family did
-   not, causing "git diff $path" to complain that no such path is
-   known to Git.  They have been taught to do the normalization.
-
- * "git difftool" learned to handle unmerged paths correctly in
-   dir-diff mode.
-
- * The "are we talking with TTY, doing an interactive session?"
-   detection has been updated to work better for "Git for Windows".
-
- * We forgot to add "git log --decorate=auto" to documentation when we
-   added the feature back in v2.1.0 timeframe.
-   (merge 462cbb4 rj/log-decorate-auto later to maint).
-
- * "git fast-import --export-marks" would overwrite the existing marks
-   file even when it makes a dump from its custom die routine.
-   Prevent it from doing so when we have an import-marks file but
-   haven't finished reading it.
-   (merge f4beed6 fc/fast-import-broken-marks-file later to maint).
-
- * "git rebase -i", after it fails to auto-resolve the conflict, had
-   an unnecessary call to "git rerere" from its very early days, which
-   was spotted recently; the call has been removed.
-   (merge 7063693 js/rebase-i-dedup-call-to-rerere later to maint).
-
- * Other minor clean-ups and documentation updates
-   (merge cd82b7a pa/cherry-pick-doc-typo later to maint).
-   (merge 2bb73ae rs/patch-id-use-skip-prefix later to maint).
-   (merge aa20cbc rs/apply-name-terminate later to maint).
-   (merge fe17fc0 jc/t2300-setup later to maint).
-   (merge e256eec jk/shell-portability later to maint).
diff --git a/third_party/git/Documentation/RelNotes/2.9.1.txt b/third_party/git/Documentation/RelNotes/2.9.1.txt
deleted file mode 100644
index 338394097ebf..000000000000
--- a/third_party/git/Documentation/RelNotes/2.9.1.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-Git v2.9.1 Release Notes
-========================
-
-Fixes since v2.9
-----------------
-
- * When "git daemon" is run without --[init-]timeout specified, a
-   connection from a client that silently goes offline can hang around
-   for a long time, wasting resources.  The socket-level KEEPALIVE has
-   been enabled to allow the OS to notice such failed connections.
-
- * The commands in `git log` family take %C(auto) in a custom format
-   string.  This unconditionally turned the color on, ignoring
-   --no-color or with --color=auto when the output is not connected to
-   a tty; this was corrected to make the format truly behave as
-   "auto".
-
- * "git rev-list --count" whose walk-length is limited with "-n"
-   option did not work well with the counting optimized to look at the
-   bitmap index.
-
- * "git show -W" (extend hunks to cover the entire function, delimited
-   by lines that match the "funcname" pattern) used to show the entire
-   file when a change added an entire function at the end of the file,
-   which has been fixed.
-
- * The documentation set has been updated so that literal commands,
-   configuration variables and environment variables are consistently
-   typeset in fixed-width font and bold in manpages.
-
- * "git svn propset" subcommand that was added in 2.3 days is
-   documented now.
-
- * The documentation tries to consistently spell "GPG"; when
-   referring to the specific program name, "gpg" is used.
-
- * "git reflog" stopped upon seeing an entry that denotes a branch
-   creation event (aka "unborn"), which made it appear as if the
-   reflog was truncated.
-
- * The git-prompt scriptlet (in contrib/) was not friendly with those
-   who uses "set -u", which has been fixed.
-
- * A codepath that used alloca(3) to place an unbounded amount of data
-   on the stack has been updated to avoid doing so.
-
- * "git update-index --add --chmod=+x file" may be usable as an escape
-   hatch, but not a friendly thing to force for people who do need to
-   use it regularly.  "git add --chmod=+x file" can be used instead.
-
- * Build improvements for gnome-keyring (in contrib/)
-
- * "git status" used to say "working directory" when it meant "working
-   tree".
-
- * Comments about misbehaving FreeBSD shells have been clarified with
-   the version number (9.x and before are broken, newer ones are OK).
-
- * "git cherry-pick A" worked on an unborn branch, but "git
-   cherry-pick A..B" didn't.
-
- * "git add -i/-p" learned to honor diff.compactionHeuristic
-   experimental knob, so that the user can work on the same hunk split
-   as "git diff" output.
-
- * "log --graph --format=" learned that "%>|(N)" specifies the width
-   relative to the terminal's left edge, not relative to the area to
-   draw text that is to the right of the ancestry-graph section.  It
-   also now accepts negative N that means the column limit is relative
-   to the right border.
-
- * The ownership rule for the piece of memory that hold references to
-   be fetched in "git fetch" was screwy, which has been cleaned up.
-
- * "git bisect" makes an internal call to "git diff-tree" when
-   bisection finds the culprit, but this call did not initialize the
-   data structure to pass to the diff-tree API correctly.
-
- * Formats of the various data (and how to validate them) where we use
-   GPG signature have been documented.
-
- * Fix an unintended regression in v2.9 that breaks "clone --depth"
-   that recurses down to submodules by forcing the submodules to also
-   be cloned shallowly, which many server instances that host upstream
-   of the submodules are not prepared for.
-
- * Fix unnecessarily waste in the idiomatic use of ': ${VAR=default}'
-   to set the default value, without enclosing it in double quotes.
-
- * Some platform-specific code had non-ANSI strict declarations of C
-   functions that do not take any parameters, which has been
-   corrected.
-
- * The internal code used to show local timezone offset is not
-   prepared to handle timestamps beyond year 2100, and gave a
-   bogus offset value to the caller.  Use a more benign looking
-   +0000 instead and let "git log" going in such a case, instead
-   of aborting.
-
- * One among four invocations of readlink(1) in our test suite has
-   been rewritten so that the test can run on systems without the
-   command (others are in valgrind test framework and t9802).
-
- * t/perf needs /usr/bin/time with GNU extension; the invocation of it
-   is updated to "gtime" on Darwin.
-
- * A bug, which caused "git p4" while running under verbose mode to
-   report paths that are omitted due to branch prefix incorrectly, has
-   been fixed; the command said "Ignoring file outside of prefix" for
-   paths that are _inside_.
-
- * The top level documentation "git help git" still pointed at the
-   documentation set hosted at now-defunct google-code repository.
-   Update it to point to https://git.github.io/htmldocs/git.html
-   instead.
-
-Also contains minor documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.9.2.txt b/third_party/git/Documentation/RelNotes/2.9.2.txt
deleted file mode 100644
index 2620003dcf32..000000000000
--- a/third_party/git/Documentation/RelNotes/2.9.2.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Git v2.9.2 Release Notes
-========================
-
-Fixes since v2.9.1
-------------------
-
- * A fix merged to v2.9.1 had a few tests that are not meant to be
-   run on platforms without 64-bit long, which caused unnecessary
-   test failures on them because we didn't detect the platform and
-   skip them.  These tests are now skipped on platforms that they
-   are not applicable to.
-
-No other change is included in this update.
diff --git a/third_party/git/Documentation/RelNotes/2.9.3.txt b/third_party/git/Documentation/RelNotes/2.9.3.txt
deleted file mode 100644
index 305e08062b1b..000000000000
--- a/third_party/git/Documentation/RelNotes/2.9.3.txt
+++ /dev/null
@@ -1,170 +0,0 @@
-Git v2.9.3 Release Notes
-========================
-
-Fixes since v2.9.2
-------------------
-
- * A helper function that takes the contents of a commit object and
-   finds its subject line did not ignore leading blank lines, as is
-   commonly done by other codepaths.  Make it ignore leading blank
-   lines to match.
-
- * Git does not know what the contents in the index should be for a
-   path added with "git add -N" yet, so "git grep --cached" should not
-   show hits (or show lack of hits, with -L) in such a path, but that
-   logic does not apply to "git grep", i.e. searching in the working
-   tree files.  But we did so by mistake, which has been corrected.
-
- * "git rebase -i --autostash" did not restore the auto-stashed change
-   when the operation was aborted.
-
- * "git commit --amend --allow-empty-message -S" for a commit without
-   any message body could have misidentified where the header of the
-   commit object ends.
-
- * More mark-up updates to typeset strings that are expected to
-   literally typed by the end user in fixed-width font.
-
- * For a long time, we carried an in-code comment that said our
-   colored output would work only when we use fprintf/fputs on
-   Windows, which no longer is the case for the past few years.
-
- * "gc.autoPackLimit" when set to 1 should not trigger a repacking
-   when there is only one pack, but the code counted poorly and did
-   so.
-
- * One part of "git am" had an oddball helper function that called
-   stuff from outside "his" as opposed to calling what we have "ours",
-   which was not gender-neutral and also inconsistent with the rest of
-   the system where outside stuff is usually called "theirs" in
-   contrast to "ours".
-
- * The test framework learned a new helper test_match_signal to
-   check an exit code from getting killed by an expected signal.
-
- * "git blame -M" missed a single line that was moved within the file.
-
- * Fix recently introduced codepaths that are involved in parallel
-   submodule operations, which gave up on reading too early, and
-   could have wasted CPU while attempting to write under a corner
-   case condition.
-
- * "git grep -i" has been taught to fold case in non-ascii locales
-   correctly.
-
- * A test that unconditionally used "mktemp" learned that the command
-   is not necessarily available everywhere.
-
- * "git blame file" allowed the lineage of lines in the uncommitted,
-   unadded contents of "file" to be inspected, but it refused when
-   "file" did not appear in the current commit.  When "file" was
-   created by renaming an existing file (but the change has not been
-   committed), this restriction was unnecessarily tight.
-
- * "git add -N dir/file && git write-tree" produced an incorrect tree
-   when there are other paths in the same directory that sorts after
-   "file".
-
- * "git fetch http://user:pass@host/repo..." scrubbed the userinfo
-   part, but "git push" didn't.
-
- * An age old bug that caused "git diff --ignore-space-at-eol"
-   misbehave has been fixed.
-
- * "git notes merge" had a code to see if a path exists (and fails if
-   it does) and then open the path for writing (when it doesn't).
-   Replace it with open with O_EXCL.
-
- * "git pack-objects" and "git index-pack" mostly operate with off_t
-   when talking about the offset of objects in a packfile, but there
-   were a handful of places that used "unsigned long" to hold that
-   value, leading to an unintended truncation.
-
- * Recent update to "git daemon" tries to enable the socket-level
-   KEEPALIVE, but when it is spawned via inetd, the standard input
-   file descriptor may not necessarily be connected to a socket.
-   Suppress an ENOTSOCK error from setsockopt().
-
- * Recent FreeBSD stopped making perl available at /usr/bin/perl;
-   switch the default the built-in path to /usr/local/bin/perl on not
-   too ancient FreeBSD releases.
-
- * "git status" learned to suggest "merge --abort" during a conflicted
-   merge, just like it already suggests "rebase --abort" during a
-   conflicted rebase.
-
- * The .c/.h sources are marked as such in our .gitattributes file so
-   that "git diff -W" and friends would work better.
-
- * Existing autoconf generated test for the need to link with pthread
-   library did not check all the functions from pthread libraries;
-   recent FreeBSD has some functions in libc but not others, and we
-   mistakenly thought linking with libc is enough when it is not.
-
- * Allow http daemon tests in Travis CI tests.
-
- * Users of the parse_options_concat() API function need to allocate
-   extra slots in advance and fill them with OPT_END() when they want
-   to decide the set of supported options dynamically, which makes the
-   code error-prone and hard to read.  This has been corrected by tweaking
-   the API to allocate and return a new copy of "struct option" array.
-
- * The use of strbuf in "git rm" to build filename to remove was a bit
-   suboptimal, which has been fixed.
-
- * "git commit --help" said "--no-verify" is only about skipping the
-   pre-commit hook, and failed to say that it also skipped the
-   commit-msg hook.
-
- * "git merge" in Git v2.9 was taught to forbid merging an unrelated
-   lines of history by default, but that is exactly the kind of thing
-   the "--rejoin" mode of "git subtree" (in contrib/) wants to do.
-   "git subtree" has been taught to use the "--allow-unrelated-histories"
-   option to override the default.
-
- * The build procedure for "git persistent-https" helper (in contrib/)
-   has been updated so that it can be built with more recent versions
-   of Go.
-
- * There is an optimization used in "git diff $treeA $treeB" to borrow
-   an already checked-out copy in the working tree when it is known to
-   be the same as the blob being compared, expecting that open/mmap of
-   such a file is faster than reading it from the object store, which
-   involves inflating and applying delta.  This however kicked in even
-   when the checked-out copy needs to go through the convert-to-git
-   conversion (including the clean filter), which defeats the whole
-   point of the optimization.  The optimization has been disabled when
-   the conversion is necessary.
-
- * "git -c grep.patternType=extended log --basic-regexp" misbehaved
-   because the internal API to access the grep machinery was not
-   designed well.
-
- * Windows port was failing some tests in t4130, due to the lack of
-   inum in the returned values by its lstat(2) emulation.
-
- * The characters in the label shown for tags/refs for commits in
-   "gitweb" output are now properly escaped for proper HTML output.
-
- * FreeBSD can lie when asked mtime of a directory, which made the
-   untracked cache code to fall back to a slow-path, which in turn
-   caused tests in t7063 to fail because it wanted to verify the
-   behaviour of the fast-path.
-
- * Squelch compiler warnings for netmalloc (in compat/) library.
-
- * The API documentation for hashmap was unclear if hashmap_entry
-   can be safely discarded without any other consideration.  State
-   that it is safe to do so.
-
- * Not-so-recent rewrite of "git am" that started making internal
-   calls into the commit machinery had an unintended regression, in
-   that no matter how many seconds it took to apply many patches, the
-   resulting committer timestamp for the resulting commits were all
-   the same.
-
- * "git difftool <paths>..." started in a subdirectory failed to
-   interpret the paths relative to that directory, which has been
-   fixed.
-
-Also contains minor documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.9.4.txt b/third_party/git/Documentation/RelNotes/2.9.4.txt
deleted file mode 100644
index 9768293831a5..000000000000
--- a/third_party/git/Documentation/RelNotes/2.9.4.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-Git v2.9.4 Release Notes
-========================
-
-Fixes since v2.9.3
-------------------
-
- * There are certain house-keeping tasks that need to be performed at
-   the very beginning of any Git program, and programs that are not
-   built-in commands had to do them exactly the same way as "git"
-   potty does.  It was easy to make mistakes in one-off standalone
-   programs (like test helpers).  A common "main()" function that
-   calls cmd_main() of individual program has been introduced to
-   make it harder to make mistakes.
-
- * "git merge" with renormalization did not work well with
-   merge-recursive, due to "safer crlf" conversion kicking in when it
-   shouldn't.
-
- * The reflog output format is documented better, and a new format
-   --date=unix to report the seconds-since-epoch (without timezone)
-   has been added.
-
- * "git push --force-with-lease" already had enough logic to allow
-   ensuring that such a push results in creation of a ref (i.e. the
-   receiving end did not have another push from sideways that would be
-   discarded by our force-pushing), but didn't expose this possibility
-   to the users.  It does so now.
-
- * "import-tars" fast-import script (in contrib/) used to ignore a
-   hardlink target and replaced it with an empty file, which has been
-   corrected to record the same blob as the other file the hardlink is
-   shared with.
-
- * "git mv dir non-existing-dir/" did not work in some environments
-   the same way as existing mainstream platforms.  The code now moves
-   "dir" to "non-existing-dir", without relying on rename("A", "B/")
-   that strips the trailing slash of '/'.
-
- * The "t/" hierarchy is prone to get an unusual pathname; "make test"
-   has been taught to make sure they do not contain paths that cannot
-   be checked out on Windows (and the mechanism can be reusable to
-   catch pathnames that are not portable to other platforms as need
-   arises).
-
- * When "git merge-recursive" works on history with many criss-cross
-   merges in "verbose" mode, the names the command assigns to the
-   virtual merge bases could have overwritten each other by unintended
-   reuse of the same piece of memory.
-
- * "git checkout --detach <branch>" used to give the same advice
-   message as that is issued when "git checkout <tag>" (or anything
-   that is not a branch name) is given, but asking with "--detach" is
-   an explicit enough sign that the user knows what is going on.  The
-   advice message has been squelched in this case.
-
- * "git difftool" by default ignores the error exit from the backend
-   commands it spawns, because often they signal that they found
-   differences by exiting with a non-zero status code just like "diff"
-   does; the exit status codes 126 and above however are special in
-   that they are used to signal that the command is not executable,
-   does not exist, or killed by a signal.  "git difftool" has been
-   taught to notice these exit status codes.
-
- * On Windows, help.browser configuration variable used to be ignored,
-   which has been corrected.
-
- * The "git -c var[=val] cmd" facility to append a configuration
-   variable definition at the end of the search order was described in
-   git(1) manual page, but not in git-config(1), which was more likely
-   place for people to look for when they ask "can I make a one-shot
-   override, and if so how?"
-
- * The tempfile (hence its user lockfile) API lets the caller to open
-   a file descriptor to a temporary file, write into it and then
-   finalize it by first closing the filehandle and then either
-   removing or renaming the temporary file.  When the process spawns a
-   subprocess after obtaining the file descriptor, and if the
-   subprocess has not exited when the attempt to remove or rename is
-   made, the last step fails on Windows, because the subprocess has
-   the file descriptor still open.  Open tempfile with O_CLOEXEC flag
-   to avoid this (on Windows, this is mapped to O_NOINHERIT).
-
- * "git-shell" rejects a request to serve a repository whose name
-   begins with a dash, which makes it no longer possible to get it
-   confused into spawning service programs like "git-upload-pack" with
-   an option like "--help", which in turn would spawn an interactive
-   pager, instead of working with the repository user asked to access
-   (i.e. the one whose name is "--help").
-
-Also contains minor documentation updates and code clean-ups.
diff --git a/third_party/git/Documentation/RelNotes/2.9.5.txt b/third_party/git/Documentation/RelNotes/2.9.5.txt
deleted file mode 100644
index 668313ae5567..000000000000
--- a/third_party/git/Documentation/RelNotes/2.9.5.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Git v2.9.5 Release Notes
-========================
-
-This release forward-ports the fix for "ssh://..." URL from Git v2.7.6