Commit Graph

6811 Commits

Author SHA1 Message Date
Matthias Sohn 90107d53eb Prepare 5.4.0-SNAPSHOT builds
Change-Id: I90a4791f63d0eba23da744c720e869f1830b86e7
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2019-03-07 00:34:14 +01:00
Matthias Sohn 164cb8d87d Merge branch 'stable-5.3'
* stable-5.3:
  Prepare 5.3.0-SNAPSHOT builds
  JGit v5.3.0.201903061415-rc1
  Fix error log message in ObjectDirectory.handlePackError()
  Properly format pack checksums in PackFile.idx()
  Cancel gc if thread was interrupted
  PackFile: report correct message for checksum mismatch
  ObjectDirectory: Clean up logging
  Bazel: Stop using native.git_repository
  ObjectDirectory: extra logging on packfile exceptions

Change-Id: I8c7dfd5141be0d27547d65f19054f9a1665b55fb
2019-03-07 00:25:22 +01:00
Matthias Sohn 0295ee1164 Prepare 5.3.0-SNAPSHOT builds
Change-Id: I9b934bcfad3d2091f4da163170348b0c8ef5e732
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2019-03-06 22:26:03 +01:00
Matthias Sohn aca889f8cc JGit v5.3.0.201903061415-rc1
Change-Id: I85866af97fe1c0c0a0da83a7605484082fa56b52
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2019-03-06 20:03:00 +01:00
Terry Parker e48410ae9a Track object inflation time in DfsReaderIoStats
This can help track down poor long tail performance that isn't accounted
for in the readIdxMicros or readBlockMicros metrics.

Change-Id: I701b9cfcc124f4ddb860d1766a11ea3557e604ce
Signed-off-by: Terry Parker <tparker@google.com>
2019-03-06 10:54:52 -08:00
Matthias Sohn 5a888cc051 Merge branch 'master' into stable-5.3
* master:
  Update Orbit to R20190226160451
  Upgrade maven-javadoc-plugin to 3.1.0
  diff: add option metaVar for --src-prefix and --dst-prefix
  ResolveMerger: Destroy TemporaryBuffer on unchecked exceptions
  Expose the filter blob limit in UploadPack
  Upgrade error_prone_core to 2.3.3
  On Windows use %APPDATA%\gnupg as GPG directory if it exists
  Remove duplicate externalized message
  RebaseCommand: tighten check for --preserve-merges on --continue
  RebaseCommand: fix ONTO_NAME, and --preserve-merges is interactive
  RebaseCommand: use orig-head to abort
  Fix core.autocrlf for non-normalized index
  RebaseCommand: use orig-head in addition to head
  SHA1: Use externalized message in log
  JGitText: Remove unnecessary suffix from externalized message identifier
  FS_POSIX: Externalize log message
  Strongly reference indices in DfsPackFile
  Update Orbit to S20190219190953
  Update README
  Update README
  Add missing @since tag for new API method getUpdateIndex
  Fix NPE in PlotCommitList
  CommitBuilder: Deprecate setEncoding(String)
  CommitBuilder: Add missing periods on methods' Javadoc
  Upgrade wagon-ssh to 3.3.2
  Fix bug in copyPackBypassCache's skip 'PACK' header logic
  Upgrade spotbugs to 3.1.11
  Atomic file creation: hard-linking may not be allowed
  Update Orbit to S20190129210011
  Fix GC.deleteEmptyRefsFolders
  Enable cloning only specific tags
  Delete jgit-4.5 target platform
  Add 4.11-staging target platform and update Orbit to I20190123233226
  Upgrade jacoco-maven-plugin to 0.8.3
  Bazel: Format BUILD file with buildifier
  RenameBranchCommand: more consistent handling of short ref names
  SshdSessionFactory: generalize providing default keys
  Allow to check for signing key
  Handle premature EOF in BundleFetchConnection
  pgm: Fix missing braces in Version.run()
  pgm: Handle IOException in Version command
  pgm: Fix missing braces in UploadPack.run()
  pgm: Handle IOException in UploadPack command
  pgm: Handle exceptions in Tag command
  pgm: Fix missing braces in Status.run()
  pgm: Handle exceptions in Status command
  pgm: Fix missing braces in ShowRef.run()
  pgm: Handle IOException in ShowRef command
  pgm: Fix missing braces in Show.run()
  pgm: Handle exceptions in Show command
  pgm: Fix missing braces in Rm command
  pgm: Handle GitAPIException in Rm command
  pgm: Handle exceptions in RevParse command
  pgm: Externalize error message
  pgm: Fix missing braces in Reset.run()
  pgm: Handle GitAPIException in Reset command
  pgm: Handle GitAPIException in Repo command
  pgm: Handle exceptions in Remote command
  pgm: Handle exceptions in Reflog command
  pgm: Handle IOException in ReceivePack command
  SmartClientSmartServerTest: Open Repository in try-with-resource
  SmartClientSmartServerTest: Open ObjectInserter.Formatter in try-with-resource
  SmartClientSmartServerTest#addBrokenContext: Remove unused TestRepository
  IO: Open TemporaryBuffer.Heap in try-with-resource
  GitSmartHttpTools: Open SideBandOutputStream in try-with-resource
  TemporaryBufferTest: Open TemporaryBuffer in try-with-resource
  Scanner: Open RevWalk in try-with-resource
  SubmoduleWalkTest: Open Repository in try-with-resource
  SideBandOutputStreamTest: Open SideBandOutputStream in try-with-resource
  UnionInputStreamTest: Open UnionInputStream in try-with-resource
  Merge: Avoid non-localised literal string warning for "recursive"
  pgm: Fix missing braces in Push.run()
  pgm: Handle exceptions in Push command
  pgm: Fix missing braces in MergeBase.run()
  pgm: Handle IOException in MergeBase command
  pgm: Fix missing braces in Merge command
  pgm: Handle exceptions in Merge command
  pgm: Fix missing braces in LsTree.run()
  pgm: Handle exceptions in LsTree command
  pgm: Fix missing braces in LsRemote.run()
  pgm: Handle exceptions in LsRemote command
  pgm: Handle exceptions in LsFiles command
  pgm: Fix missing braces in Log.run()
  pgm: Handle exceptions in Log command
  pgm: Handle exceptions in Init command
  pgm: Handle IOException in IndexPack command
  pgm: Fix missing braces in Fetch.run()
  pgm: Handle IOException in Fetch command
  pgm: Handle GitAPIException in Gc command
  pgm: Fix missing braces in DiffTree.run()
  pgm: Handle exceptions in DiffTree command
  pgm: Fix missing braces in Diff.run()
  pgm: Handle exceptions in Diff command
  RawParseUtils: Avoid import of java.nio.charset.StandardCharsets
  Consistently import constants from StandardCharsets as static
  LocalDiskRepositoryTestCase#createRepository: Default auto-close to false
  UploadPack: Suppress false-positive resource leak warning
  PushConnectionTest: Open TestRepository in try-with-resource
  MergerTest: Open TestRepository in try-with-resource
  MergeCommandTest: Open TestRepository in try-with-resource
  PackWriterTest: Open TestRepository in try-with-resource
  ReceivePackAdvertiseRefsHookTest: Open TestRepository in try-with-resource
  SubmoduleStatusTest: Open TestRepository in try-with-resource
  UploadPackTest: Open TestRepository in try-with-resource
  PackParserTest: Open TestRepository in try-with-resource
  SmartClientSmartServerTest: Open TestRepository in try-with-resource
  Stop using deprecated methods of RemoteSetUrlCommand/RemoteRemoveCommand
  SmartClientSmartServerTest: Stop using deprecated Repository#hasObject
  DumbClientSmartServerTest: Open TestRepository in try-with-resource
  DumbClientDumbServerTest: Open TestRepository in try-with-resource
  DirCacheCheckoutTest: Open TestRepository in try-with-resource
  HttpTestCase#fsck: Open TestRepository in try-with-resource
  CheckoutCommandTest: Add comment to document intentionally empty catch block
  pgm: Fix missing braces in Describe.run()
  pgm: Handle exceptions in Describe command
  pgm: Handle exceptions in Config command
  pgm: Fix too wide lines in Commit.run()
  pgm: Fix missing braces in Commit.run()
  pgm: Handle exceptions in Commit command
  pgm: Handle exceptions in Clean command
  pgm: Handle GitAPIException in Fetch command
  Fix missing braces in Branch.run()
  pgm: Handle exceptions in Branch command
  Fix missing braces in Blame.run()
  pgm: Handle NoWorkTreeException and IOException in Blame command
  Use try-with-resource for reader in Blame.run()
  pgm: Handle GitAPIException in Add command

Change-Id: I6d546885beb9596120e201973995a7c6bfe115e0
2019-03-06 11:57:39 +01:00
Matthias Sohn e502d7640f Merge branch 'stable-5.2' into stable-5.3
* stable-5.2:
  Fix error log message in ObjectDirectory.handlePackError()
  Properly format pack checksums in PackFile.idx()
  Cancel gc if thread was interrupted
  PackFile: report correct message for checksum mismatch
  ObjectDirectory: Clean up logging
  Bazel: Stop using native.git_repository
  ObjectDirectory: extra logging on packfile exceptions

Change-Id: I81cf1cdc9d8dcd54536a79e522274fd244fa1d00
2019-03-06 09:44:37 +01:00
David Pursehouse 1e4805affd Merge branch 'stable-5.1' into stable-5.2
* stable-5.1:
  Fix error log message in ObjectDirectory.handlePackError()
  Properly format pack checksums in PackFile.idx()
  Cancel gc if thread was interrupted
  PackFile: report correct message for checksum mismatch
  ObjectDirectory: Clean up logging
  Bazel: Stop using native.git_repository
  ObjectDirectory: extra logging on packfile exceptions

Change-Id: Id9f957ca8386f6035f4ab34d242cb6fb8c38e012
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-03-06 15:55:59 +09:00
David Pursehouse 3ebb8183c8 Merge branch 'stable-5.0' into stable-5.1
* stable-5.0:
  Fix error log message in ObjectDirectory.handlePackError()
  Properly format pack checksums in PackFile.idx()
  Cancel gc if thread was interrupted
  PackFile: report correct message for checksum mismatch
  ObjectDirectory: Clean up logging
  Bazel: Stop using native.git_repository
  ObjectDirectory: extra logging on packfile exceptions

Change-Id: I056f41f619a1bb22ca6be75ec21c32c1f6d4fd2f
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-03-06 14:16:22 +09:00
David Pursehouse 01cf73c7ab Merge branch 'stable-4.11' into stable-5.0
* stable-4.11:
  Fix error log message in ObjectDirectory.handlePackError()
  Properly format pack checksums in PackFile.idx()
  Cancel gc if thread was interrupted
  PackFile: report correct message for checksum mismatch
  ObjectDirectory: Clean up logging
  Bazel: Stop using native.git_repository
  ObjectDirectory: extra logging on packfile exceptions

Change-Id: If75b149e693005dd3fe06b523e6e6784bedf44c1
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-03-06 14:15:36 +09:00
David Pursehouse 3fc9d43339 Merge branch 'stable-4.10' into stable-4.11
* stable-4.10:
  Fix error log message in ObjectDirectory.handlePackError()
  Properly format pack checksums in PackFile.idx()
  Cancel gc if thread was interrupted
  PackFile: report correct message for checksum mismatch
  ObjectDirectory: Clean up logging
  Bazel: Stop using native.git_repository
  ObjectDirectory: extra logging on packfile exceptions

Change-Id: I9052e318b5d920770f7c7121d36e3c58df9d5f5a
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-03-06 14:14:40 +09:00
David Pursehouse ae5ea80363 Merge branch 'stable-4.9' into stable-4.10
* stable-4.9:
  Fix error log message in ObjectDirectory.handlePackError()
  Properly format pack checksums in PackFile.idx()
  Cancel gc if thread was interrupted
  PackFile: report correct message for checksum mismatch
  ObjectDirectory: Clean up logging
  Bazel: Stop using native.git_repository
  ObjectDirectory: extra logging on packfile exceptions

Change-Id: I0847251eb010616a705e0b91df4bdebc225fa95d
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-03-06 14:13:48 +09:00
Matthias Sohn 7b3ee6f62e Fix error log message in ObjectDirectory.handlePackError()
Change-Id: I154f392ad025c4b642eb1123d375a0afaa853885
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
(cherry picked from commit 997d785418)
2019-03-06 02:36:38 +01:00
Matthias Sohn e8f7bb3608 Properly format pack checksums in PackFile.idx()
Change-Id: Id805850dbe9a3d633168f3056e06ddeafd86f961
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
(cherry picked from commit a33e4dc58a)
2019-03-06 02:36:38 +01:00
Matthias Sohn e8bd9556c0 Cancel gc if thread was interrupted
see
https://groups.google.com/d/msg/repo-discuss/oDB2rl3doDc/tFEh5Xt0CAAJ

Change-Id: Ia6d4631c64e065d8b9b09e0b45e7a9ea8ac3f41d
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
(cherry picked from commit 882fed0d96)
2019-03-06 02:36:38 +01:00
Luca Milanesio daefa69502 PackFile: report correct message for checksum mismatch
When the packfile checksum does not match the expected one
report the correct checksum error instead of reporting that
the number of objects is incorrect.

Change-Id: I040f36dacc4152ae05453e7acbf8dfccceb46e0d
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
(cherry picked from commit 436c99ce59)
2019-03-06 02:36:38 +01:00
David Pursehouse e6fd4732d0 ObjectDirectory: Clean up logging
Externalize the message and log the pack file with absolute path.

Change-Id: I019052dfae8fd96ab67da08b3287d699287004cb
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
(cherry picked from commit 9665d86ba1)
2019-03-06 02:36:37 +01:00
David Pursehouse 90abad1baa Bazel: Stop using native.git_repository
The native.git_repository method doesn't work in the latest version
of bazel, and causes the build to fail with:

  type 'struct' has no method git_repository()

Change-Id: Id6a57369b681c0afe811e9e3740b141fb7fb4653
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
(cherry picked from commit ec5fc57b79)
2019-03-06 02:36:37 +01:00
Luca Milanesio baf1bb20d0 ObjectDirectory: extra logging on packfile exceptions
Display extra logging, including the exception with the associated
stacktrace, whenever a packFile can't be read and thus removed
from the packlist.

Change-Id: I97a4e31dc427bfcc0baae438dcbe2dcd4704b824
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
(cherry picked from commit 962babc4b2)
2019-03-06 02:36:37 +01:00
Matthias Sohn 16f75aa9da Update Orbit to R20190226160451
Change-Id: I43bfd56b029b4bf16aaf001915a9dabeb189a9e2
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2019-03-06 00:41:47 +01:00
Matthias Sohn 75196d7071 Merge "Upgrade maven-javadoc-plugin to 3.1.0" 2019-03-05 14:19:39 -05:00
Matthias Sohn 97854bd391 Merge "Merge branch 'stable-5.2'" 2019-03-05 14:19:28 -05:00
Christian Halstrick 47add1cb58 Merge "diff: add option metaVar for --src-prefix and --dst-prefix" 2019-03-05 08:50:42 -05:00
David Pursehouse 55688593e4 Upgrade maven-javadoc-plugin to 3.1.0
Change-Id: I4fc59b02e92db55797b9773648fd1dea88682ade
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-03-05 19:54:31 +09:00
David Pursehouse 52179ee247 Merge branch 'stable-5.2'
* stable-5.2:
  Fix error log message in ObjectDirectory.handlePackError()
  Properly format pack checksums in PackFile.idx()
  Cancel gc if thread was interrupted
  PackFile: report correct message for checksum mismatch
  ObjectDirectory: Clean up logging
  Bazel: Stop using native.git_repository

Change-Id: Ib972641105cef8089791fc65389c4f43e218620a
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-03-05 10:24:34 +09:00
David Pursehouse c2dbdabfb9 Merge branch 'stable-5.1' into stable-5.2
* stable-5.1:
  Fix error log message in ObjectDirectory.handlePackError()
  Properly format pack checksums in PackFile.idx()
  Cancel gc if thread was interrupted
  PackFile: report correct message for checksum mismatch
  ObjectDirectory: Clean up logging
  Bazel: Stop using native.git_repository

Change-Id: I42b72a3bba3b4c9389d91a1a35a8004836567e7c
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-03-05 10:23:38 +09:00
Andre Bossert 963651b762 diff: add option metaVar for --src-prefix and --dst-prefix
Fixes exception if using "jgit diff --help".

Bug: 544735
Change-Id: I694ff3103da4bc199dd03c40962c5be191eddcd1
Signed-off-by: Andre Bossert <andre.bossert@siemens.com>
2019-03-04 16:58:07 +01:00
Matthias Sohn 997d785418 Fix error log message in ObjectDirectory.handlePackError()
Change-Id: I154f392ad025c4b642eb1123d375a0afaa853885
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2019-03-04 13:51:12 +01:00
Matthias Sohn a33e4dc58a Properly format pack checksums in PackFile.idx()
Change-Id: Id805850dbe9a3d633168f3056e06ddeafd86f961
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2019-03-04 13:28:40 +01:00
Matthias Sohn 882fed0d96 Cancel gc if thread was interrupted
see
https://groups.google.com/d/msg/repo-discuss/oDB2rl3doDc/tFEh5Xt0CAAJ

Change-Id: Ia6d4631c64e065d8b9b09e0b45e7a9ea8ac3f41d
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2019-03-03 18:35:04 +01:00
Luca Milanesio 436c99ce59 PackFile: report correct message for checksum mismatch
When the packfile checksum does not match the expected one
report the correct checksum error instead of reporting that
the number of objects is incorrect.

Change-Id: I040f36dacc4152ae05453e7acbf8dfccceb46e0d
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2019-03-03 17:52:33 +01:00
David Pursehouse 9665d86ba1 ObjectDirectory: Clean up logging
Externalize the message and log the pack file with absolute path.

Change-Id: I019052dfae8fd96ab67da08b3287d699287004cb
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-03-03 13:15:19 +09:00
David Pursehouse ec5fc57b79 Bazel: Stop using native.git_repository
The native.git_repository method doesn't work in the latest version
of bazel, and causes the build to fail with:

  type 'struct' has no method git_repository()

Change-Id: Id6a57369b681c0afe811e9e3740b141fb7fb4653
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-03-03 13:15:19 +09:00
Dave Borowitz ea54b6a5a7 ResolveMerger: Destroy TemporaryBuffer on unchecked exceptions
Previously, we called destroy() to delete the temp file on failure only
when catching an IOException, not a RuntimeException. Use a slightly
different construction with a finally block to ensure it's always
deleted on error (assuming the JVM is still healthy enough).

Change-Id: Ie201f3cfc81099ee1cafed066632da76223cef1f
2019-03-01 12:35:38 -08:00
Terry Parker 875dccf33c Expose the filter blob limit in UploadPack
Similar to UploadPack.getDepth() to know the shallow clone depth, expose
the user-specified filter blob limit for partial clones.

Change-Id: I04bde06862a1cf8a9862d950c15023c49d16a2a6
Signed-off-by: Terry Parker <tparker@google.com>
2019-02-28 16:00:24 -08:00
David Pursehouse 39eb9c62b2 Upgrade error_prone_core to 2.3.3
Change-Id: I31232d09b6dc1e5bb3d3398d34b3dd814165d2dc
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-02-27 02:19:29 -05:00
Thomas Wolf f491af08ea Merge changes from topic 'rebase_compatibility'
* changes:
  RebaseCommand: tighten check for --preserve-merges on --continue
  RebaseCommand: use orig-head to abort
  RebaseCommand: use orig-head in addition to head
2019-02-26 16:22:22 -05:00
Jonathan Nieder 2fe1f0d638 Merge "Strongly reference indices in DfsPackFile" 2019-02-26 15:08:39 -05:00
Gunnar Wagenknecht 98df7ec801 Merge "On Windows use %APPDATA%\gnupg as GPG directory if it exists" 2019-02-26 14:46:51 -05:00
Christian Halstrick 20b633d95d Merge "Remove duplicate externalized message" 2019-02-26 07:35:52 -05:00
Thomas Wolf ca011107b8 On Windows use %APPDATA%\gnupg as GPG directory if it exists
Hard-coding ~/.gnupg for the GPG directory doesn't work on Windows,
where GnuPG uses %APPDATA%\gnupg by default. Make the determination
of the directory platform-dependent.

Bug: 544797
Change-Id: Id4bfd39a981ef7c5b39fbde46fce9a7524418709
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2019-02-26 12:49:59 +01:00
Thomas Wolf 4169a95a65 Remove duplicate externalized message
Instead of a new "unexpectedNlinkValue" message use the already
existing "failedAtomicFileCreation". Remove a stray double quote
from the latter.

Change-Id: I1ba5e9ea48d3f7615354b2ace2575883070b3206
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2019-02-26 11:53:49 +01:00
Thomas Wolf 38e5a75ce4 RebaseCommand: tighten check for --preserve-merges on --continue
With native git, .git/rebase-merge/rewritten exists actually in two
different cases:

* as a file in git rebase --merge recording OIDs for copying notes
* as a directory in git rebase --preserve-merges

Add a comment, and check for isDirectory() instead of exists().

Bug: 511487
Change-Id: I6a3317b4234d4f41c41b3004cdc7ea0abf2c6223
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2019-02-26 16:18:27 +09:00
Thomas Wolf a64fa0bd7f RebaseCommand: fix ONTO_NAME, and --preserve-merges is interactive
ONTO_NAME must be "onto_name", not "onto-name".

For native git, --preserve-merges is an interactive mode. Create the
INTERACTIVE marker file, otherwise a native git rebase --continue
will fall back into rebase --merge mode before git 2.19.0 since it
started looking for the REWRITTEN directory to make the distinction
only then.[1]

This allows a JGit interactive rebase to be continued via native git
rebase --continue.

[1] https://github.com/git/git/commit/6d98d0c0

Bug: 511487
Change-Id: I13850e0fd96ac77d03fbb581c8790d76648dbbc6
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2019-02-26 16:18:27 +09:00
Thomas Wolf 4ad53c0cbf RebaseCommand: use orig-head to abort
Aborting a rebase used ORIG_HEAD to reset. Strictly speaking this is
not correct, since other commands run during the rebase (for instance,
when the rebase stopped on a conflict) might have changed ORIG_HEAD.

Prefer the OID recorded in the orig-head file, falling back to the
older "head" file if "orig-head" doesn't exist, and use ORIG_HEAD only
if neither exists.

Bug: 511487
Change-Id: Ifa99221bb33e4e4754377f9b8f46e76c8936e072
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2019-02-26 16:18:27 +09:00
Thomas Wolf 60cf85a4a3 Fix core.autocrlf for non-normalized index
With text=auto or core.autocrlf=true, git does not normalize upon
check-in if the file in the index contains already CR/LFs. The
documentation says: "When text is set to "auto", the path is
marked for automatic end-of-line conversion. If Git decides that
the content is text, its line endings are converted to LF on
checkin. When the file has been committed with CRLF, no conversion
is done."[1]

Implement the last bit as in canonical git: check the blob in the
index for CR/LFs. For very large files, we check only the first 8000
bytes, like RawText.isBinary() and AutoLFInputStream do.

In Auto(CR)LFInputStream, ensure that the buffer is filled as much as
possible for the isBinary() check.

Regarding these content checks, there are a number of inconsistencies:

* Canonical git considers files containing lone CRs as binary.
* RawText checks the first 8000 bytes.
* Auto(CR)LFInputStream checks the first 8096 (not 8192!) bytes.

None of these are changed with this commit. It appears that canonical
git will check the whole blob, not just the first 8k bytes. Also
note: the check for CR/LF text won't work with LFS (neither in JGit
nor in git) since the blob data is not run through the smudge filter.
C.f. [2].

Two tests in AddCommandTest actually tested that normalization was
done even if the file was already committed with CR/LF.These tests
had to be adapted. I find the git documentation unclear about the
case where core.autocrlf=input, but from [3] it looks as if this
non-normalization also applies in this case.

Add new tests in CommitCommandTest testing this for the case where
the index entry is for a merge conflict. In this case, canonical git
uses the "ours" version.[4] Do the same.

[1] https://git-scm.com/docs/gitattributes
[2] https://github.com/git/git/blob/3434569fc/convert.c#L225
[3] https://github.com/git/git/blob/3434569fc/convert.c#L529
[4] https://github.com/git/git/blob/f2b6aa98b/read-cache.c#L3281

Bug: 470643
Change-Id: Ie7310539fbe6c737d78b1dcc29e34735d4616b88
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2019-02-26 16:18:27 +09:00
Thomas Wolf b4c212309b RebaseCommand: use orig-head in addition to head
Since 2011-02-10 (i.e., git 1.7.6)[1] native git uses "orig-head" for
REBASE_HEAD. JGit was still using "head". Currently native git has a
legacy fall-back for reading this, but for how long? Let's write to
both. Note that JGit never reads this file.

[1] https://github.com/git/git/commit/84df4560

Bug: 511487
Change-Id: Id3742bf9bbc0001d850e801b26cc8880e646abfc
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2019-02-26 16:18:27 +09:00
David Pursehouse e54243278f SHA1: Use externalized message in log
The non-externalized warning message says there is a "possible SHA-1
collision" but then the Sha1CollisionException is always thrown.

Replace the message with the existing externalised string that does
not say "possible".

Change-Id: I9773ec76b416c356e234a658fb119f98d33eac83
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-02-25 11:05:44 +09:00
David Pursehouse a5a62a4cdb JGitText: Remove unnecessary suffix from externalized message identifier
Change-Id: I7a3ade56c219826b81d33d1d52566a86ad2e853a
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-02-25 11:05:44 +09:00
David Pursehouse 6305869bf1 FS_POSIX: Externalize log message
Change-Id: Ida538e05c4595fdce99f1fa87469a3be60160adb
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
2019-02-25 11:05:42 +09:00