summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit/src
Commit message (Collapse)AuthorAgeFilesLines
* [checkout] Use .gitattributes from the commit to be checked outThomas Wolf2022-03-074-143/+304
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JGit used only one set of attributes constructed from the global and info attributes, plus the attributes from working tree, index, and HEAD. These attributes must be used to determine whether the working tree is dirty. But for actually checking out a file, one must use the attributes from global, info, and *the commit to be checked out*. Otherwise one may not pick up definitions that are only in the .gitattributes of the commit to be checked out or that are changed in that commit with respect to the attributes currently in HEAD, the index, or the working tree. Maintain in TreeWalk different Attributes per tree, and add operations to determine EOL handling and smudge filters per tree. Use the new methods in DirCacheCheckout and ResolveMerger. Note that merging in JGit actually used the attributes from the base, not those from ours, which looks dubious at least. It now uses those from ours, and for checking out the ones from theirs. The canBeContentMerged() determination was also done from the base attributes, and is newly done from the ours attributes. Possibly this should take into account all three attributes, and only if all three agree the item can be content merged, a content merge should be attempted? (What if the binary/text setting changes between base, ours, or theirs?) Also note that JGit attempts to perform content merges on non-binary LFS files; there it used the filter attribute from base, too, even for the ours and theirs versions. Newly it takes the filter attribute from the correct tree. I'm not convinced doing content merges on potentially huge files like LFS files is really a good idea. Add tests in FilterCommandsTest and LfsGitTest to verify the behavior. Open question: using index and working tree as fallback for the attributes of ours (assuming it is HEAD) is OK. But does it also make sense for base and theirs in merging? Bug: 578707 Change-Id: I0bf433e9e3eb28479b6272e17c0666e175e67d08 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* Don't use final for method parametersMatthias Sohn2022-03-063-20/+14
| | | | | | See https://wiki.eclipse.org/EGit/Contributor_Guide#Use_of_the_.22final.22_modifier Change-Id: Idc6ed85483e381689e5085c4a1bacd75d26f5489
* [push] support the "matching" RefSpecs ":" and "+:"Thomas Wolf2022-03-065-64/+280
| | | | | | | | | | | | | | | | | | | The implementation of push.default=matching was not correct. It used the RefSpec "refs/heads/*:refs/heads/*", which would push _all_ local branches. But "matching" must push only those local branches for which a remote branch with the same name already exists at the remote. This RefSpec can be expanded only once the advertisement from the remote has been received. Enhance RefSpec so that ":" and "+:" can be represented. Introduce a special RemoteRefUpdate for such a RefSpec; it must carry through the fetch RefSpecs to be able to fill in the remote tracking updates as needed. Implement the expansion in PushProcess. Bug: 353405 Change-Id: I54a4bfbb0a6a7d77b9128bf4a9c951d6586c3df4 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* [push] Call the pre-push hook later in the push processThomas Wolf2022-03-062-15/+43
| | | | | | | | | | Call the pre-push hook only after having received the remote advertisement and having determined rejections, like C git does. Also similar to C git, don't pass rejected or up-to-date updates to the pre-push hook. Bug: 578852 Change-Id: I51d379ea7bd8234ec815f8f4a9fa325816f476cf Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* IndexDiff: use tree filter also for SubmoduleWalkThomas Wolf2022-03-061-0/+3
| | | | | | | | | The only uses of IndexDiff.setFilter() in JGit and EGit set a path filter. Passing the filter on to the SubmoduleWalk gives the desired result, which is consistent with command-line git. Bug: 565251 Change-Id: I8eca1ed73eb1d237b8785f369352f72af9e0e168 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* Describe: add support for core.abbrev config optionMatthias Sohn2022-03-029-12/+268
| | | | | | | | | | | | | | | | | | | | | If core.abbrev is unset or "auto" estimate abbreviation length like C git does: - Estimate repository's object count by only considering packed objects, round up to next power of 2 - With the order of 2^len objects, we expect a collision at 2^(len/2). But we also care about hex chars, not bits, and there are 4 bits per hex. So all together we need to divide by 2; but we also want to round odd numbers up, hence adding one before dividing. - For small repos use at least 7 hexdigits - If object database fails to determine object count use 7 hexdigits as fallback If it is set to "no" do not abbreviate object-ids. Otherwise set it to the configured value capped to the range between 4 and length of an unabbreviated object-id. Change-Id: I425f9724b69813dbb57872466bf2d2e1d6dc72c6
* Add a typed config getter for integers confined to a rangeMatthias Sohn2022-03-023-0/+55
| | | | | | Use Integer#MIN_VALUE to denote unset option. Change-Id: I4d65f2434013111f25520c0ed2b9a9dc8123c6cf
* PersonIdent: Add ctors that accept Instant in addition to DateDavid Ostrovsky2022-03-021-0/+57
| | | | | | | | | Error Prone is flagging Date-API as obsolete and recommends to migrate to Instant and LocalDate. Given that more JGit users starting to migrate to new Time API, offer ctors that accept Instant type and also add new getter that returns when attribute as Instant type. Change-Id: I64a36bf40f191495c6889c1dff314ede06848880
* Make precedence more explicitFabio Ponciroli2022-03-021-1/+1
| | | | | | | | | Errorprone was failing the build with: "[OperatorPrecedence]. Use grouping parenthesis to make the operator precedence explicit" Add parentheses to silence it. Change-Id: I81f1f249e38fd2543f5412b3501b0179d0759f55
* Cap describe abbrev optionMatthias Sohn2022-03-021-2/+10
| | | | | | | | | - minimum is 4 [1] - maximum is length of a full ObjectId [1] https://git-scm.com/docs/git-config#Documentation/git-config.txt-coreabbrev Change-Id: I145bde1a218f71b87b8d8260761dd0853770bb76
* DescribeCommand: Add support for --abbrev=0Matthias Sohn2022-03-021-0/+3
| | | | | | | | | Setting --abbrev=0 suppresses long format and only shows the closest tag [1]. [1] https://git-scm.com/docs/git-describe#Documentation/git-describe.txt---abbrevltngt Change-Id: Ifcf4d7786dd0f0fb0315d8093fdb54384ed9d5f9
* DescribeCommand: Support configuring the hash abbreviationSebastian Schuberth2022-02-191-5/+26
| | | | | | Bug: 537883 Signed-off-by: Sebastian Schuberth <sebastian.schuberth@bosch.io> Change-Id: Ic52dcebc564bbb0d934cc3a6205704b7aeaee30e
* Simplify implementation of WorkingTreeIteratorThomas Wolf2022-02-161-29/+16
| | | | | | | | | All the filtering in WorkingTreeIterator is for check-in, i.e., clean filtering. The implementation was in some parts too general, passing around an OperationType. But since it's always CHECKIN_OP, that's not actually necessary. Change-Id: I73f8bc059e485a073e456962868f52b3a3db4fc1 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* Transport: load all refs only if push refspecs have wildcardsThomas Wolf2022-02-141-3/+7
| | | | | | | | There is no need to load all refs if there are no wildcard push refspecs. Load them lazily on the first wildcard refspec encountered instead of loading them up-front. Change-Id: I6d0e981f9ed4997dbdefeb7f83f37ff4f33e06a5 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* PushCommand: determine remote from git config if not givenThomas Wolf2022-02-143-1/+57
| | | | | | | | | | Add ConfigConstants and expose branch.<name>.pushRemote in the BranchConfig. Use the branch configuration and remote.pushDefault if no remote is given explicitly. If nothing is configured, fall back to "origin". Bug: 578676 Change-Id: I6bb141ff02c8b04980ec34b26ef248b72614c3c9 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* PushCommand: consider push.default when no RefSpecs are givenRolf Theunissen2022-02-142-12/+122
| | | | | | | | | | | | | | | | | | When no RefSpecs are given, PushCommand until now simply fell back to pushing the current branch to an upstream branch of the same name. This corresponds to push.default=current. Any setting from the git config for push.default was simply ignored. Implement the other modes (nothing, matching, upstream, and simple), too. Add a setter and getter for the PushDefault so that an application can force a particular mode to be used. For backwards compatibility, use "current" as the default setting; to figure out the value from the git config, which defaults to "simple", call setPushDefault(null). Bug: 351314 Change-Id: I86c5402318771e47d80b137e99947762e1150bb4 Signed-off-by: Rolf Theunissen <rolf.theunissen@gmail.com> Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* Prevent that an instance of PushCommand is reusedThomas Wolf2022-02-141-0/+1
| | | | | | | We checked if the command instance is called but missed to set the flag tracking if it actually was used. Change-Id: I0f9fb85c47945a4d91eab01ec5e1abc1ab83332a
* Remove unused warning suppressionFabio Ponciroli2022-02-112-2/+1
| | | | | | | SuppressWarnings is not used. Remove to avoid warnings at compile time. Change-Id: I84e3e57017cf9fd68d3377f866d4dd907ccde454
* Support for git config push.defaultThomas Wolf2022-02-092-2/+116
| | | | | | | | Enhance the (unused!?) PushConfig; include a PushDefault enumeration. Add simple tests for this PushConfig. Bug: 351314 Change-Id: Ibc5656a2a1fccf70d00c5e15de8ed3dd8add6337 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* Merge branch 'stable-6.0'Matthias Sohn2022-02-093-13/+29
|\ | | | | | | | | | | | | * stable-6.0: Stop initCause throwing in readAdvertisedRefs Change-Id: I2266814c613fd81e9dfc722532ac3daa30ca66b5
| * Merge branch 'stable-5.13' into stable-6.0Matthias Sohn2022-02-093-13/+29
| |\ | | | | | | | | | | | | | | | | | | * stable-5.13: Stop initCause throwing in readAdvertisedRefs Change-Id: I94251601aa7fae9cc65164eaddcf16471874b11e
| | * Stop initCause throwing in readAdvertisedRefsDarius Jokilehto2022-02-083-13/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BasePackConnection::readAdvertisedRefsImpl was creating an exception by calling `noRepository`, and then blindly calling `initCause` on it. As `noRepository` can be overridden, it's not guaranteed to be missing a cause. BasePackPushConnection overrides `noRepository` and initiates a fetch, which may throw a `NoRemoteRepositoryException` with a cause. In this case calling `initCause` threw an `IllegalStateException`. In order to throw the correct exception, we now return the BasePackPushConnection exception and suppress the one thrown by BasePackConnection Bug: 578511 Change-Id: Ic1018b214be1e83d895979ee6c7cbce3f6765f6f
* | | Support LFS Server URL without .git suffixNail Samatov2022-02-082-13/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to Git LFS documentation, URLs with and without .git suffix should be supported. By default, Git LFS will append .git/info/lfs to the end of a Git remote URL. To build the LFS server URL it will use: Git Remote: https://git-server.com/foo/bar LFS Server: https://git-server.com/foo/bar.git/info/lfs Git Remote: https://git-server.com/foo/bar.git LFS Server: https://git-server.com/foo/bar.git/info/lfs Fix the LfsConnectionFactory accordingly. Move a utility method to add the ".git" suffix if not present yet from FileResolver to StringUtils and use it. Bug: 578621 Change-Id: I8d3645872d5f03bb8e82c9c73647adb3e81ce484 Signed-off-by: Nail Samatov <sanail@yandex.ru> Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | [rebase] InteractiveHandler2: handle Gerrit Change-IdsThomas Wolf2022-02-041-6/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a way for the handler to tell whether the commit should generate a Gerrit Change-Id. Augment the ModifyResult interface, and set the flag on the CommitCommand. This enables users to have a Change-ID be generated when squashing or rewording commits. A possibly already existing Change-Id will remain unchanged. Bug: 440211 Change-Id: I66a72e0646876d162a7011235cca969e20acf060 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | Introduce a constant for the length of an abbreviated hash stringSebastian Schuberth2022-02-037-10/+40
| | | | | | | | | | | | | | | Signed-off-by: Sebastian Schuberth <sebastian.schuberth@bosch.io> Change-Id: I196d58a813f7caa1965af4cf8e2f977ed4cdc350
* | | RebaseCommand: fix commit message in "fixup" caseThomas Wolf2022-02-021-25/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JGit accumulated in MESSAGE_FIXUP commit messages of a fixup sequence, just like it did in MESSAGE_SQUASH, and on the last step of a sequence of fixups used that file, after stripping all comment lines, as the commit message. That also stripped any lines from the original commit message that happened to start with the comment character. This is not how this is supposed to work. MESSAGE_FIXUP must contain the original commit message of the base commit that is amended, and the file contains the verbatim commit message for the final fixup.[1] Change the implementation accordingly, and add new tests. [1] https://github.com/git/git/blob/df3c41adeb/sequencer.c#L86 ff. Bug: 513726 Change-Id: I885a2b7f10d6c74460a8693aa6cbf867ee0494a1 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | reftable: close old Db in FileRepository#convertToPackedRefsHan-Wen Nienhuys2022-02-021-2/+4
| | | | | | | | | | | | | | | | | | This fixes test failures on Windows. Change-Id: I701fbeb99ffd7951514ae6eae8b28cceb9aebd9f
* | | reftable: tweaks for WindowsHan-Wen Nienhuys2022-02-021-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reload the stack _before_ trying to delete the files. This ensures we don't trip over our own open file handles when deleting compacted tables. If there is another process reading the file, it may be impossible to delete the compacted tables. In this case, ignore the failure. For cleaning the garbage in this case, the protocol as described in https://www.git-scm.com/docs/reftable#_windows should be implemented. This is left for another commit. Bug: 578454 Change-Id: I7aa43508450041eb9376d9f67a0262ff7cc53c73
* | | Merge changes I11366273,I256e1572Ivan Frade2022-02-013-273/+459
|\ \ \ | | | | | | | | | | | | | | | | | | | | * changes: RepoCommand: Offer to set extra files in the destination repository RepoCommand: Move bare/regular superproject writing to their own classes
| * | | RepoCommand: Offer to set extra files in the destination repositoryIvan Frade2022-01-312-3/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We want to save in the destination repository what manifest created its structure. This helps to detect and debug failures in the manifest -> superproject translations. The src commit should be easily readable from the superproject tip. Offer an API to write a file in the destination repository. RepoCommand callers (e.g. gerrit supermanifest plugin) can use this to add a file with the repo/ref/hash of the manifest. Alternatives considered to write the source repo/ref/hash: * .gitattributes of the .gitmodules file. Some updates in the manifest don't touch the .gitmodules (e.g. a linkfile change), so it can fall out of sync. * commit message. Caller would need to follow the commit history to find the latest modification by repo command. This is not helpful e.g. for build bots that want to get the value in one call. Change-Id: I113662734a7ccd39cbc60b46ad3f73038c807682
| * | | RepoCommand: Move bare/regular superproject writing to their own classesIvan Frade2022-01-313-273/+416
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RepoCommand parses the manifest to get a list of projects, clears up conflicts and then writes to the superproject. The first steps are common but the writing is completely different for bare or "regular" (with working dir) repository. Split writing to bare and regular repos into its own classes. This simplifies RepoCommand class and makes clearer what happens on each side (e.g. many options apply only to bare repos). Change-Id: I256e15729bd53ee15fc56de88bce86a2edb2417a
* | | | Merge branch 'stable-6.0'Matthias Sohn2022-02-011-3/+2
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | * stable-6.0: Fix warning: The value of the parameter otp is not used Change-Id: I47996285c49ce85ab0bb835956a9ef58ed71de20
| * | | Fix warning: The value of the parameter otp is not usedAntonio Barone2022-01-201-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Silence warning by removing unused argument to the beginCopyAsIs() method. Change-Id: I94e7ff1c61cf8b03752de2974baa24b9c061c163
* | | | Fix FS_Win32 if a non-directory is listedThomas Wolf2022-02-011-0/+4
| |/ / |/| | | | | | | | | | | | | | | | | | | | FS.list() is supposed to return an empty array if the File given is not a directory. Bug: 550111 Change-Id: I245da5f1f2bdafd9dfb38fb8d7eff27d900cd5a8 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | Merge conflict messages: prefix conflict lines with a hashThomas Wolf2022-01-314-14/+40
| | | | | | | | | | | | | | | | | | | | | | | | C git also does so. Note that currently the comment character is hard-coded as the hash '#' throughout JGit. Bug: 548529 Change-Id: I4a5597694082a9e5b07412b365cfaf41fa034cfa Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | RebaseCommand: better commit message rewordingThomas Wolf2022-01-311-27/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Respect git config commit.cleanup for rewording. Note that by default this is CleanupMode.STRIP, whereas before this change, JGit would take the reworded message verbatim. Squashing was the only place in JGit where it automatically and unconditionally removed comment lines from commit messages. In other places it didn't do so, and client code needed to do so. Unconditionally removing comments is problematic if the commit message _should_ contain some line starting with a hash, which can easily occur with the way Github, Gitlab, and other git web servers link to issues or PRs: they all allow the short-hand "#<number>". Introduce a new InteractiveHandler2 extension interface, which can return the edited message _and_ a clean-up mode. This way, client code can decide on its own how to clean the message, and if JGit shouldn't do any further cleaning, it can return CleanupMode.VERBATIM. Or CleanupMode.WHITESPACE. (In the case of SQUASH, it is then of course the client's responsibility to remove the squash comment lines.) If the old InteractiveHandler interface is used, CleanupMode.STRIP is applied unconditionally for squashing, as before. Bug: 578173 Change-Id: Ia0040c247884e684587dd45d6cb85f8b72a4b876 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | CommitCommand: commit message cleanupThomas Wolf2022-01-311-3/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use CommitConfig.CleanupMode to implement git commit --cleanup. Add setters for the clean-up mode, the comment character, and for the default default clean-up mode. Behavior of existing client code is unchanged as the default clean-up mode is set to "verbatim". To use git config defaults, one can call setCleanupMode(CleanupMode.DEFAULT). The default comment character is hard-coded as '#' for now, as in other parts of JGit. Implementing full support for core.commentChar shall be done in a separate change. Bug: 553065 Change-Id: I470785e464a762d3f409f163f1cbdbb98dd81aaf Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | Provide git config commit.cleanupThomas Wolf2022-01-312-0/+187
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an enumeration for the possible values, and a method to resolve the "default" value. Give CommitConfig a static method to process a text according to a given clean-up mode and comment character. (The core.commentChar is not yet handled by JGit; it's hard-coded as #.) Bug: 553065 Change-Id: If6e384522275f73b713fbc29ffcaa1753c239dea Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | ObjectWalk: close ObjectReader on close() if neededThomas Wolf2022-01-302-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the walk is created via ObjectWalk(Repository), it creates a new ObjectReader. This reader was closed only on dispose(). If such an ObjectWalk was used in a try-with-resource statement the reader might not get closed. Bug: 578458 Change-Id: I1be31829dc466530f23006a53c29b657fd5fb410 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | BinaryHunkInputStream: accept CR-LFThomas Wolf2022-01-301-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | Let's be lenient and accept hunk lines terminated by CR-LF, too, not just lines terminated by LF. Bug: 550111 Change-Id: I7f796df666300ab56cc6c07f22eda45fbf4c941e Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | sshd: support the ConnectTimeout ssh configThomas Wolf2022-01-301-0/+9
| | | | | | | | | | | | | | | | | | Parse the value from the ssh config and if set use it when connecting. Change-Id: I85b44c9468a5027602375706612c46ea7a99b2bd Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | sshd: support the AddKeysToAgent ssh configThomas Wolf2022-01-302-0/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add parsing of the config. Implement the SSH agent protocol for adding a key. In the pubkey authentication, add keys to the agent as soon as they've been loaded successfully, before even attempting to use them for authentication. OpenSSH does the same. Bug: 577052 Change-Id: Id1c08d9676a74652256b22281c2f8fa0b6508fa6 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | sshd: handle "IdentityAgent SSH_AUTH_SOCK" in ssh configThomas Wolf2022-01-302-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | OpenSSH has (for legacy reasons?) the option of specifying the default environment variable directly, instead of using ${SSH_AUTH_SOCK}. Make sure the plain variable name is not taken as a relative path name. Bug: 577053 Change-Id: If8f550dffc43887254f71aa0b487c50fa14d0627 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | sshd: support IdentityAgent configThomas Wolf2022-01-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Handle the 'none' value, and change the value to select Pageant to something that looks like an absolute UNC path name to avoid it's handled as an relative path name. Bug: 577053 Change-Id: I4ccf047abbc1def50e2782319e4fa7c744069401 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | Merge "PackOutputStream: Extract cancellation and digest to superclass"Ivan Frade2022-01-272-72/+129
|\ \ \
| * | | PackOutputStream: Extract cancellation and digest to superclasskylezhao2022-01-272-72/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Checking the cancelled status and keeping a digest of the written data is useful for other output streams. e.g. to write commit-graphs. Pull up that functionality to a superclass, so it can be reused. Change-Id: I177b50be09c4ea631e7a144cc6127085ec2ca411 Signed-off-by: kylezhao <kylezhao@tencent.com>
* | | | Merge "DFS block cache: report index load and evict stats"Ivan Frade2022-01-212-4/+162
|\ \ \ \
| * | | | DFS block cache: report index load and evict statsAlina Djamankulova2022-01-212-4/+162
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enhance cache performance monitoring for large data such as pack and bitmap indexes. Provide details about what is loaded and evicted from cache like total number of cache hits, time in cache before eviction. Add a custom consumer to report loading events and eviction events when enabled. Signed-off-by: Alina Djamankulova <adjama@google.com> Change-Id: I5739325db7ff7ec370e4defd8f7e46f1c3f5d2dd
* | | | | Merge branch 'stable-6.0'Matthias Sohn2022-01-191-0/+1
|\ \ \ \ \ | |_|/ / / |/| | / / | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | * stable-6.0: [bazel] Skip ConfigTest#testCommitTemplatePathInHomeDirecory [errorprone] Fix InfiniteRecursion error in RecordingLogger [errorprone] Suppress Finally error in ObjectDownloadListener [errorprone] Fix implicit use of default charset in FileBasedConfigTest [errorprone] Suppress FutureReturnValueIgnored in FileRepository#autoGc Change-Id: I08d58c8f3f04e3a920da43b5fb252b1654c2b33c
| * | | Merge "[errorprone] Suppress FutureReturnValueIgnored in ↵Matthias Sohn2022-01-191-0/+1
| |\ \ \ | | | | | | | | | | | | | | | FileRepository#autoGc" into stable-6.0