Bug P2
Status Update
Comments
ja...@gmail.com <ja...@gmail.com>
ar...@gmail.com <ar...@gmail.com> #2
Comment has been deleted.
ch...@gmail.com <ch...@gmail.com> #3
Comment has been deleted.
ch...@gmail.com <ch...@gmail.com> #4
Comment has been deleted.
ch...@gmail.com <ch...@gmail.com> #5
Comment has been deleted.
ap...@google.com <ap...@google.com> #6
Project: gerrit
Branch: master
commit de14d8f091c7730feefdd4d3e39b18024da6c790
Author: Marcin Czech <maczech@gmail.com>
Date: Fri Apr 05 14:55:49 2024
Remove unused method to create change notes based on index lookup
`ChangeNotes.createUsingIndexLookup` method should only be used when
project name and numeric change Id are not available. Currently this
method is not used anymore and it can be safely removed.
Bug: Issue 318396515
Release-Notes: skip
Forward-Compatible: checked
Change-Id: Ia4234edefbdb9e75b27ede3f5b47e9fc119dc272
M java/com/google/gerrit/server/notedb/ChangeNotes.java
https://gerrit-review.googlesource.com/417802
Branch: master
commit de14d8f091c7730feefdd4d3e39b18024da6c790
Author: Marcin Czech <maczech@gmail.com>
Date: Fri Apr 05 14:55:49 2024
Remove unused method to create change notes based on index lookup
`ChangeNotes.createUsingIndexLookup` method should only be used when
project name and numeric change Id are not available. Currently this
method is not used anymore and it can be safely removed.
Bug:
Release-Notes: skip
Forward-Compatible: checked
Change-Id: Ia4234edefbdb9e75b27ede3f5b47e9fc119dc272
M java/com/google/gerrit/server/notedb/ChangeNotes.java
ap...@google.com <ap...@google.com> #7
Project: gerrit
Branch: master
commit 0cba22f9999d48231d6ec08d410d43e3dbca00ea
Author: Fabio Ponciroli <ponch78@gmail.com>
Date: Mon Jan 22 11:53:32 2024
Use changenumber field when querying for change number
Keep using the index legacy document-id (legacy_id_str) for
URLs queries like: "/q/123456", "/q/Iasdw2312321",
"/q/project~123456" which are expecting to always find a
single element.
Use the `changenumber` field in ChangeFinder and the
explicit search using the `change:` predicate.
The real change number allows discoverability of imported changes.
This is the list of the affected queries:
* get drafts by user
* get starred changes by user
* query changes by changeNum
* query changes by project~changeNum
* get conflicting changes
Furhermore, `LuceneChangeIndex` will now try to use the
`changenumber` field to create the `Change.Id` for ChangeData
results fetched from the index.
Bug: Issue 318396515
Release-Notes: Use changenumber field when querying for change number
Change-Id: I64f55e8af61e6708e9ae120a411185ba7adedf75
M java/com/google/gerrit/lucene/LuceneChangeIndex.java
M java/com/google/gerrit/server/change/ChangeFinder.java
M java/com/google/gerrit/server/change/ChangeJson.java
M java/com/google/gerrit/server/git/SearchingChangeCacheImpl.java
M java/com/google/gerrit/server/index/IndexUtils.java
M java/com/google/gerrit/server/mail/receive/MailProcessor.java
M java/com/google/gerrit/server/query/change/ChangePredicates.java
M java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java
M java/com/google/gerrit/server/query/change/ConflictsPredicate.java
M java/com/google/gerrit/server/query/change/InternalChangeQuery.java
M java/com/google/gerrit/server/query/change/OrSource.java
https://gerrit-review.googlesource.com/403940
Branch: master
commit 0cba22f9999d48231d6ec08d410d43e3dbca00ea
Author: Fabio Ponciroli <ponch78@gmail.com>
Date: Mon Jan 22 11:53:32 2024
Use changenumber field when querying for change number
Keep using the index legacy document-id (legacy_id_str) for
URLs queries like: "/q/123456", "/q/Iasdw2312321",
"/q/project~123456" which are expecting to always find a
single element.
Use the `changenumber` field in ChangeFinder and the
explicit search using the `change:` predicate.
The real change number allows discoverability of imported changes.
This is the list of the affected queries:
* get drafts by user
* get starred changes by user
* query changes by changeNum
* query changes by project~changeNum
* get conflicting changes
Furhermore, `LuceneChangeIndex` will now try to use the
`changenumber` field to create the `Change.Id` for ChangeData
results fetched from the index.
Bug:
Release-Notes: Use changenumber field when querying for change number
Change-Id: I64f55e8af61e6708e9ae120a411185ba7adedf75
M java/com/google/gerrit/lucene/LuceneChangeIndex.java
M java/com/google/gerrit/server/change/ChangeFinder.java
M java/com/google/gerrit/server/change/ChangeJson.java
M java/com/google/gerrit/server/git/SearchingChangeCacheImpl.java
M java/com/google/gerrit/server/index/IndexUtils.java
M java/com/google/gerrit/server/mail/receive/MailProcessor.java
M java/com/google/gerrit/server/query/change/ChangePredicates.java
M java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java
M java/com/google/gerrit/server/query/change/ConflictsPredicate.java
M java/com/google/gerrit/server/query/change/InternalChangeQuery.java
M java/com/google/gerrit/server/query/change/OrSource.java
Description
Step to reproduce
/q/change:<C1>
/q/change:<C1>+project:<P1>
Expected result
The imported change C1 of project P1 is displayed in the list of changes
Observed result
Change C1 of project P1 is not displayed
Background
Gerrit cannot enforce the uniqueness of some secondary IDs for a change.
The Lucene index currently contains the following fields:
change_id
: indexed. Contains the ChangeId of a change (e.g.: Ia6876c9cdd4d32b25d5a6aafdd75b1f4dedf4cb2)legacy_id_str
: stored and indexed. Contains the so-called virtual Id, as a combination of ServerId + ChangeNum. The same change number can be represented differently depending on which ServerID it belongs to. This field allows the avoidance of collision of change numbers coming from different servers._change
: stored. Serialized version of a changeproject
: stored and indexed. Contains the project nameNone of the above, or a combination of the above, can guarantee a unique identification of a document in the index.
The only way to uniquely identify a document in the index is using the
project-changeNumber
pair.ChangeNumber
is currently missing from the index. Adding it would allow retrieving a single document, specifying project and changeNumber, or multiple documents with the same changeNumber but belonging to different projects.See some more discussion during an ESC meeting.