jgit/org.eclipse.jgit.test/tst-rsrc/org/eclipse/jgit/diff
Thomas Wolf 9072103f3b Checkout: better directory handling
When checking out a file into the working tree ensure that all parent
directories of the file below the working tree root are actually
directories and do exist before we try to create the file.

When multiple files are to be checked out (or even a whole tree), this
may check the same directories over and over again. Asking the file
system every time for file attributes is a potentially expensive
operation. As a remedy, introduce an in-memory cache of directory
states for a particular check-out operation.

Apply the same fix also in the ResolveMerger, which may also check out
files, and also in the PatchApplier. In PatchApplier, also validate
paths.

Change-Id: Ie12864c54c9f901a2ccee7caddec73027f353111
Signed-off-by: Thomas Wolf <twolf@apache.org>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2023-09-03 00:16:26 +02:00
..
.gitattributes ApplyCommand: support binary patches 2021-05-26 00:38:00 +02:00
A1.patch
A1_PostImage
A1_sub.patch
A2.patch
A2_PostImage
A3.patch Fix ApplyCommand which doesn't work if patch adds empty file 2019-08-19 02:37:04 +02:00
A3_PostImage Fix ApplyCommand which doesn't work if patch adds empty file 2019-08-19 02:37:04 +02:00
CopyWithHunks.patch Apply hunks when renaming or copying from patch files 2020-05-06 08:50:08 +02:00
CopyWithHunks_PostImage Apply hunks when renaming or copying from patch files 2020-05-06 08:50:08 +02:00
CopyWithHunks_PreImage Apply hunks when renaming or copying from patch files 2020-05-06 08:50:08 +02:00
D.patch
D_PreImage
E.patch
E_PostImage
E_PreImage
F1.patch
F1_PreImage
F2.patch
F2_PreImage
M1.patch Allow setting FileMode to executable when applying patches in ApplyCommand 2016-05-17 00:08:01 -07:00
M1_PostImage Allow setting FileMode to executable when applying patches in ApplyCommand 2016-05-17 00:08:01 -07:00
M2.patch Allow setting FileMode to executable when applying patches in ApplyCommand 2016-05-17 00:08:01 -07:00
M2_PostImage Allow setting FileMode to executable when applying patches in ApplyCommand 2016-05-17 00:08:01 -07:00
M2_PreImage Allow setting FileMode to executable when applying patches in ApplyCommand 2016-05-17 00:08:01 -07:00
M3.patch Allow setting FileMode to executable when applying patches in ApplyCommand 2016-05-17 00:08:01 -07:00
M3_PostImage Allow setting FileMode to executable when applying patches in ApplyCommand 2016-05-17 00:08:01 -07:00
M3_PreImage Allow setting FileMode to executable when applying patches in ApplyCommand 2016-05-17 00:08:01 -07:00
NL1.patch
NL1_PostImage
NL1_PreImage
NonASCII.patch
NonASCII2.patch
NonASCII2_PostImage
NonASCII2_PreImage
NonASCIIAdd.patch
NonASCIIAdd2.patch
NonASCIIAdd2_PostImage
NonASCIIAdd_PostImage
NonASCIIAdd_PreImage
NonASCIIDel.patch
NonASCIIDel_PreImage
NonASCII_PostImage
NonASCII_PreImage
RenameNoHunks.patch Create parent directories when renaming a file in ApplyCommand 2020-05-06 08:50:08 +02:00
RenameNoHunks_PostImage Create parent directories when renaming a file in ApplyCommand 2020-05-06 08:50:08 +02:00
RenameNoHunks_PreImage Create parent directories when renaming a file in ApplyCommand 2020-05-06 08:50:08 +02:00
RenameWithHunks.patch Apply hunks when renaming or copying from patch files 2020-05-06 08:50:08 +02:00
RenameWithHunks_PostImage Apply hunks when renaming or copying from patch files 2020-05-06 08:50:08 +02:00
RenameWithHunks_PreImage Apply hunks when renaming or copying from patch files 2020-05-06 08:50:08 +02:00
ShiftDown.patch ApplyCommand: use context lines to determine hunk location 2020-06-04 22:16:12 +02:00
ShiftDown2.patch ApplyCommand: use context lines to determine hunk location 2020-06-04 22:16:12 +02:00
ShiftDown2_PostImage ApplyCommand: use context lines to determine hunk location 2020-06-04 22:16:12 +02:00
ShiftDown2_PreImage ApplyCommand: use context lines to determine hunk location 2020-06-04 22:16:12 +02:00
ShiftDown_PostImage ApplyCommand: use context lines to determine hunk location 2020-06-04 22:16:12 +02:00
ShiftDown_PreImage ApplyCommand: use context lines to determine hunk location 2020-06-04 22:16:12 +02:00
ShiftUp.patch ApplyCommand: use context lines to determine hunk location 2020-06-04 22:16:12 +02:00
ShiftUp2.patch ApplyCommand: use context lines to determine hunk location 2020-06-04 22:16:12 +02:00
ShiftUp2_PostImage ApplyCommand: use context lines to determine hunk location 2020-06-04 22:16:12 +02:00
ShiftUp2_PreImage ApplyCommand: use context lines to determine hunk location 2020-06-04 22:16:12 +02:00
ShiftUp_PostImage ApplyCommand: use context lines to determine hunk location 2020-06-04 22:16:12 +02:00
ShiftUp_PreImage ApplyCommand: use context lines to determine hunk location 2020-06-04 22:16:12 +02:00
Unaffected_PostImage PatchApplier fix - init cache with provided tree 2023-02-02 12:39:26 +01:00
Unaffected_PreImage PatchApplier fix - init cache with provided tree 2023-02-02 12:39:26 +01:00
W.patch
W_PostImage
W_PreImage
X.patch
XAndY.patch PatchApplier fix - init cache with provided tree 2023-02-02 12:39:26 +01:00
X_PostImage
X_PreImage
Y.patch
Y_PostImage
Y_PreImage
Z.patch
Z_PostImage
Z_PreImage
conflict.patch Fix PatchApplier error handling. 2023-03-28 11:18:08 +02:00
conflict_PostImage Fix PatchApplier error handling. 2023-03-28 11:18:08 +02:00
conflict_PreImage Fix PatchApplier error handling. 2023-03-28 11:18:08 +02:00
crlf.patch ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
crlf2.patch ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
crlf2_PostImage ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
crlf2_PreImage ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
crlf3.patch ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
crlf3_PostImage ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
crlf3_PreImage ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
crlf4.patch ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
crlf4_PostImage ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
crlf_PostImage ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
crlf_PreImage ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
delta.patch ApplyCommand: support binary patches 2021-05-26 00:38:00 +02:00
delta_PostImage ApplyCommand: support binary patches 2021-05-26 00:38:00 +02:00
delta_PreImage ApplyCommand: support binary patches 2021-05-26 00:38:00 +02:00
dotgit.patch Checkout: better directory handling 2023-09-03 00:16:26 +02:00
dotgit2.patch Checkout: better directory handling 2023-09-03 00:16:26 +02:00
emptyLine.patch ApplyCommand: handle completely empty context lines in text patches 2021-05-26 00:38:00 +02:00
emptyLine_PostImage ApplyCommand: handle completely empty context lines in text patches 2021-05-26 00:38:00 +02:00
emptyLine_PreImage ApplyCommand: handle completely empty context lines in text patches 2021-05-26 00:38:00 +02:00
hello.patch ApplyCommand: fix "no newline at end" detection 2021-05-26 00:38:00 +02:00
hello_PostImage ApplyCommand: fix "no newline at end" detection 2021-05-26 00:38:00 +02:00
hello_PreImage ApplyCommand: fix "no newline at end" detection 2021-05-26 00:38:00 +02:00
literal.patch ApplyCommand: support binary patches 2021-05-26 00:38:00 +02:00
literal_PostImage ApplyCommand: support binary patches 2021-05-26 00:38:00 +02:00
literal_PreImage ApplyCommand: support binary patches 2021-05-26 00:38:00 +02:00
literal_add.patch ApplyCommand: support binary patches 2021-05-26 00:38:00 +02:00
literal_add_PostImage ApplyCommand: support binary patches 2021-05-26 00:38:00 +02:00
smudgetest.patch ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
smudgetest_PostImage ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
smudgetest_PreImage ApplyCommand: convert to git internal format before applying patch 2021-05-18 17:23:34 +02:00
testContext0.out
testContext1.out
testContext3.out
testContext5.out
testContext10.out
testContext100.out
umlaut.patch ApplyCommand: use byte arrays for text patches, not strings 2021-05-26 00:38:00 +02:00
umlaut_PostImage ApplyCommand: use byte arrays for text patches, not strings 2021-05-26 00:38:00 +02:00
umlaut_PreImage ApplyCommand: use byte arrays for text patches, not strings 2021-05-26 00:38:00 +02:00
x_add_nl.patch PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_add_nl_PostImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_add_nl_PreImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_add_nl_crlf.patch PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_add_nl_crlf_PostImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_add_nl_crlf_PreImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_d.patch PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_d_PostImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_d_PreImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_d_crlf.patch PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_d_crlf_PostImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_d_crlf_PreImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_e.patch PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_e_PostImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_e_PreImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_e_crlf.patch PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_e_crlf_PostImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_e_crlf_PreImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_last_rm_nl.patch PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_last_rm_nl_PostImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_last_rm_nl_PreImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_last_rm_nl_crlf.patch PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_last_rm_nl_crlf_PostImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
x_last_rm_nl_crlf_PreImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
z_e_add_nl.patch PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
z_e_add_nl_PostImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
z_e_add_nl_PreImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
z_e_no_nl.patch PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
z_e_no_nl_PostImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
z_e_no_nl_PreImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
z_e_rm_nl.patch PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
z_e_rm_nl_PostImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00
z_e_rm_nl_PreImage PatchApplier: fix handling of last newline in text patch 2022-12-26 11:51:25 +01:00