Commit 6a2abdc
committed
apply: compute patch->def_name correctly under -p0
Back when "git apply" was written, we made sure that the user can
skip more than the default number of path components (i.e. 1) by
giving "-p<n>", but the logic for doing so was built around the
notion of "we skip N slashes and stop". This obviously does not
work well when running under -p0 where we do not want to skip any,
but still want to skip SP/HT that separates the pathnames of
preimage and postimage and want to reject absolute pathnames.
Stop using "stop_at_slash()", and instead introduce a new helper
"skip_tree_prefix()" with similar logic but works correctly even for
the -p0 case.
This is an ancient bug, but has been masked for a long time because
most of the patches are text and have other clues to tell us the
name of the preimage and the postimage.
Noticed by Colin McCabe.
Signed-off-by: Junio C Hamano <[email protected]>1 parent 828ea97 commit 6a2abdc
2 files changed
+76
-46
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1022 | 1022 | | |
1023 | 1023 | | |
1024 | 1024 | | |
1025 | | - | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
1026 | 1030 | | |
1027 | | - | |
| 1031 | + | |
1028 | 1032 | | |
1029 | 1033 | | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
1030 | 1038 | | |
1031 | 1039 | | |
1032 | 1040 | | |
1033 | | - | |
| 1041 | + | |
1034 | 1042 | | |
1035 | 1043 | | |
1036 | 1044 | | |
| |||
1060 | 1068 | | |
1061 | 1069 | | |
1062 | 1070 | | |
1063 | | - | |
1064 | | - | |
1065 | | - | |
1066 | | - | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
1067 | 1074 | | |
1068 | | - | |
| 1075 | + | |
1069 | 1076 | | |
1070 | 1077 | | |
1071 | 1078 | | |
| |||
1079 | 1086 | | |
1080 | 1087 | | |
1081 | 1088 | | |
1082 | | - | |
1083 | | - | |
| 1089 | + | |
| 1090 | + | |
1084 | 1091 | | |
1085 | 1092 | | |
1086 | | - | |
| 1093 | + | |
1087 | 1094 | | |
1088 | 1095 | | |
1089 | 1096 | | |
1090 | 1097 | | |
1091 | 1098 | | |
1092 | 1099 | | |
1093 | | - | |
1094 | | - | |
| 1100 | + | |
| 1101 | + | |
1095 | 1102 | | |
1096 | | - | |
1097 | | - | |
| 1103 | + | |
1098 | 1104 | | |
1099 | 1105 | | |
1100 | 1106 | | |
| |||
1106 | 1112 | | |
1107 | 1113 | | |
1108 | 1114 | | |
1109 | | - | |
1110 | | - | |
| 1115 | + | |
| 1116 | + | |
1111 | 1117 | | |
1112 | | - | |
1113 | 1118 | | |
1114 | 1119 | | |
1115 | 1120 | | |
| |||
1123 | 1128 | | |
1124 | 1129 | | |
1125 | 1130 | | |
1126 | | - | |
1127 | | - | |
| 1131 | + | |
| 1132 | + | |
1128 | 1133 | | |
1129 | | - | |
1130 | 1134 | | |
1131 | 1135 | | |
1132 | 1136 | | |
| |||
1158 | 1162 | | |
1159 | 1163 | | |
1160 | 1164 | | |
1161 | | - | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
1162 | 1177 | | |
1163 | 1178 | | |
1164 | | - | |
1165 | | - | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
1166 | 1185 | | |
1167 | | - | |
1168 | 1186 | | |
1169 | 1187 | | |
1170 | 1188 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
24 | 22 | | |
25 | | - | |
| 23 | + | |
26 | 24 | | |
27 | 25 | | |
28 | | - | |
| 26 | + | |
29 | 27 | | |
30 | 28 | | |
31 | | - | |
| 29 | + | |
32 | 30 | | |
33 | 31 | | |
34 | | - | |
| 32 | + | |
35 | 33 | | |
36 | 34 | | |
37 | 35 | | |
| |||
42 | 40 | | |
43 | 41 | | |
44 | 42 | | |
| 43 | + | |
| 44 | + | |
45 | 45 | | |
46 | | - | |
47 | | - | |
48 | | - | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
49 | 50 | | |
50 | | - | |
| 51 | + | |
51 | 52 | | |
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
55 | 56 | | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
56 | 62 | | |
57 | 63 | | |
58 | 64 | | |
| |||
143 | 149 | | |
144 | 150 | | |
145 | 151 | | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
146 | 158 | | |
0 commit comments