<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qtqa/gerrit.git, branch v2.7-56-based</title>
<subtitle>The Qt Project's vendor branch of Gerrit Code Review
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qtqa/gerrit.git/'/>
<entry>
<title>recognize 'Fixes' footer in commit-msg hook</title>
<updated>2018-09-13T18:12:00+00:00</updated>
<author>
<name>Oswald Buddenhagen</name>
<email>oswald.buddenhagen@qt.io</email>
</author>
<published>2018-09-10T16:00:34+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qtqa/gerrit.git/commit/?id=3d4d026a4b0e9cddc45798072f4769dd6ed6dc66'/>
<id>3d4d026a4b0e9cddc45798072f4769dd6ed6dc66</id>
<content type='text'>
Change-Id: I211fe2ef5079c2391ec5cb7664e240c997203d8c
Reviewed-by: Sergio Ahumada &lt;sahumada@texla.cl&gt;
Reviewed-by: Edward Welbourne &lt;edward.welbourne@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I211fe2ef5079c2391ec5cb7664e240c997203d8c
Reviewed-by: Sergio Ahumada &lt;sahumada@texla.cl&gt;
Reviewed-by: Edward Welbourne &lt;edward.welbourne@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>recognize Task-number footer</title>
<updated>2016-03-02T19:32:48+00:00</updated>
<author>
<name>Oswald Buddenhagen</name>
<email>oswald.buddenhagen@theqtcompany.com</email>
</author>
<published>2016-03-02T18:23:56+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qtqa/gerrit.git/commit/?id=f4615c5036cedb59d44d1336faaa1e3d1e017d15'/>
<id>f4615c5036cedb59d44d1336faaa1e3d1e017d15</id>
<content type='text'>
Change-Id: I5514d4786b0895a3dbc5f515a4fd916dd36dc822
Reviewed-by: Orgad Shaneh &lt;orgads@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I5514d4786b0895a3dbc5f515a4fd916dd36dc822
Reviewed-by: Orgad Shaneh &lt;orgads@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Update JGit to 3.5.3.201412180710-r</title>
<updated>2015-09-23T17:56:30+00:00</updated>
<author>
<name>Oswald Buddenhagen</name>
<email>oswald.buddenhagen@theqtcompany.com</email>
</author>
<published>2015-06-17T16:23:37+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qtqa/gerrit.git/commit/?id=86a34f9ae4a66afaa1118b4c8446abca949a7261'/>
<id>86a34f9ae4a66afaa1118b4c8446abca949a7261</id>
<content type='text'>
This JGit version fixes:
- Bug 420915 - jgit gc hangs in partitionTasks with a very small repo
- Bug 427107 - cannot push anymore
The latter was observed by CollabNet to break Gerrit replication if gc
created a bitmap index which may have induced PackWriterBitmapWalker.
findObjects() to throw a MissingObjectException.

This version of JGit also fixes the recursive merger on all storage
systems.  Objects created during the virtual base construction of a
recursive merge must be written out somewhere and made available
through an ObjectReader for later passes to work on.

In both local filesystem and DFS implementations Gerrit was no-op'ing
the inserter in dry-run mode, causing these objects to be lost and
unavailable during the later processing stages of the merger.  With a
virtual common ancestor tree or blob missing, the dry-run merger fails
and a spurious merge conflict is reported.

Instead build a non-flushing inserter wrapper around a real inserter
for the repository. On local disk (standard storage) this will allow
the virtual base to write loose objects, which may be reclaimed in
about two weeks by the standard `git prune` invoked by `git gc`.

On DFS systems this will create a new pack file and buffer a block of
data in memory before starting to store to persistent storage.
However with no flush() the DfsInserter will attempt to rollback the
pack, which may allow the DFS system to reclaim its storage quickly.
Some implementations of DFS may buffer even more deeply than one
block, making the discard even cheaper for smaller merges.

This update also fixes a potential infinite loop during object
inflation within both the WindowCursor or DfsReader versions of
ObjectReader.  Inflation could get stuck if an object's compression
stream within a pack ended at a very precise alignment with the cache
block size.  The alignment problem is very rare, as it has taken
several years to identify and track down.

Includes changes done in I9859bd073bd710424e12b8b091abb8278f4f9fcc
on master.

Change-Id: I898ad7d5e836ebae0f8f84b17d0ae74489479ef9
(cherry picked from commit 2793c58dae47d1f96d642ec56e197ba2eb5af5b4)
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This JGit version fixes:
- Bug 420915 - jgit gc hangs in partitionTasks with a very small repo
- Bug 427107 - cannot push anymore
The latter was observed by CollabNet to break Gerrit replication if gc
created a bitmap index which may have induced PackWriterBitmapWalker.
findObjects() to throw a MissingObjectException.

This version of JGit also fixes the recursive merger on all storage
systems.  Objects created during the virtual base construction of a
recursive merge must be written out somewhere and made available
through an ObjectReader for later passes to work on.

In both local filesystem and DFS implementations Gerrit was no-op'ing
the inserter in dry-run mode, causing these objects to be lost and
unavailable during the later processing stages of the merger.  With a
virtual common ancestor tree or blob missing, the dry-run merger fails
and a spurious merge conflict is reported.

Instead build a non-flushing inserter wrapper around a real inserter
for the repository. On local disk (standard storage) this will allow
the virtual base to write loose objects, which may be reclaimed in
about two weeks by the standard `git prune` invoked by `git gc`.

On DFS systems this will create a new pack file and buffer a block of
data in memory before starting to store to persistent storage.
However with no flush() the DfsInserter will attempt to rollback the
pack, which may allow the DFS system to reclaim its storage quickly.
Some implementations of DFS may buffer even more deeply than one
block, making the discard even cheaper for smaller merges.

This update also fixes a potential infinite loop during object
inflation within both the WindowCursor or DfsReader versions of
ObjectReader.  Inflation could get stuck if an object's compression
stream within a pack ended at a very precise alignment with the cache
block size.  The alignment problem is very rare, as it has taken
several years to identify and track down.

Includes changes done in I9859bd073bd710424e12b8b091abb8278f4f9fcc
on master.

Change-Id: I898ad7d5e836ebae0f8f84b17d0ae74489479ef9
(cherry picked from commit 2793c58dae47d1f96d642ec56e197ba2eb5af5b4)
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't create empty cherry-picks</title>
<updated>2015-09-23T17:56:04+00:00</updated>
<author>
<name>Shawn Pearce</name>
<email>sop@google.com</email>
</author>
<published>2013-09-06T17:02:41+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qtqa/gerrit.git/commit/?id=23bd4f119457daa0a436c1342722d538f0e1fb02'/>
<id>23bd4f119457daa0a436c1342722d538f0e1fb02</id>
<content type='text'>
If the tree after a cherry-pick is identical to the new parent's tree
the newly picked commit is empty.  This can happen if the commit is
being cherry-picked on top of another version of itself, or was
already included in the target branch.

Change-Id: I7e3fe9c02ca0b5182635a6e202b1d38e4dc39405
(cherry picked from commit fd889d9db648e6f027ee5d2e295041cb1bc3591a)
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the tree after a cherry-pick is identical to the new parent's tree
the newly picked commit is empty.  This can happen if the commit is
being cherry-picked on top of another version of itself, or was
already included in the target branch.

Change-Id: I7e3fe9c02ca0b5182635a6e202b1d38e4dc39405
(cherry picked from commit fd889d9db648e6f027ee5d2e295041cb1bc3591a)
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>disarm automatic submodule update</title>
<updated>2015-05-28T09:57:47+00:00</updated>
<author>
<name>Oswald Buddenhagen</name>
<email>oswald.buddenhagen@theqtcompany.com</email>
</author>
<published>2015-05-27T11:22:08+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qtqa/gerrit.git/commit/?id=dc3e2526ddce66ebc2d53a22a70f3a112b4aa510'/>
<id>dc3e2526ddce66ebc2d53a22a70f3a112b4aa510</id>
<content type='text'>
it's a bit insane that there is no config option for that. we have no
use for the feature as of now, so just break it globally.

Change-Id: I441bb66fc64c8a9fd4e4347f31166d3b5f3ccb13
Reviewed-by: Eike Ziller &lt;eike.ziller@theqtcompany.com&gt;
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
it's a bit insane that there is no config option for that. we have no
use for the feature as of now, so just break it globally.

Change-Id: I441bb66fc64c8a9fd4e4347f31166d3b5f3ccb13
Reviewed-by: Eike Ziller &lt;eike.ziller@theqtcompany.com&gt;
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow gitweb URLs to be passed unencoded for viewing.</title>
<updated>2015-03-03T16:47:11+00:00</updated>
<author>
<name>Luca Milanesio</name>
<email>luca.milanesio@gmail.com</email>
</author>
<published>2013-10-11T10:34:39+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qtqa/gerrit.git/commit/?id=e9b83d9a7dbb49d02722d421c4bcc26345a1266b'/>
<id>e9b83d9a7dbb49d02722d421c4bcc26345a1266b</id>
<content type='text'>
Gerrit composes the viewer URL using information
about the project, branch, file or commit of the
target object to be displayed.

Context:
Typically viewers such as CGit and GitWeb do need
those parts to be encoded, including the '/' in
project names, for being correctly parsed.
However other viewers could instead require
unencoded URL (e.g. GitHub web based viewer).

This patch allows to disable the URL encoding for
allowing GitHub to be used as "gitweb custom viewer"
on top of Gerrit.

Example of GitHub configured as viewer:

[gitweb]
    type = custom
    url = https://github.com/
    project = ${project}
    revision = ${project}/commit/${commit}
    branch = ${project}/tree/${branch}
    fileHistory = ${project}/blog/${branch}/${file}
    linkName = GitHub
    urlEncode = false

Change-Id: Ief59de7eb19def60c5e765c4a495bcac00384d83
(cherry picked from commit 253120389509e82d3f71da53d596b3fbcd41cd3e)
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Gerrit composes the viewer URL using information
about the project, branch, file or commit of the
target object to be displayed.

Context:
Typically viewers such as CGit and GitWeb do need
those parts to be encoded, including the '/' in
project names, for being correctly parsed.
However other viewers could instead require
unencoded URL (e.g. GitHub web based viewer).

This patch allows to disable the URL encoding for
allowing GitHub to be used as "gitweb custom viewer"
on top of Gerrit.

Example of GitHub configured as viewer:

[gitweb]
    type = custom
    url = https://github.com/
    project = ${project}
    revision = ${project}/commit/${commit}
    branch = ${project}/tree/${branch}
    fileHistory = ${project}/blog/${branch}/${file}
    linkName = GitHub
    urlEncode = false

Change-Id: Ief59de7eb19def60c5e765c4a495bcac00384d83
(cherry picked from commit 253120389509e82d3f71da53d596b3fbcd41cd3e)
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Partially revert "Staging branch feature""</title>
<updated>2015-03-03T16:46:24+00:00</updated>
<author>
<name>Oswald Buddenhagen</name>
<email>oswald.buddenhagen@theqtcompany.com</email>
</author>
<published>2015-02-11T18:23:14+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qtqa/gerrit.git/commit/?id=2a3eba03ea0f384e0f4367f77a29015b606bf2fb'/>
<id>2a3eba03ea0f384e0f4367f77a29015b606bf2fb</id>
<content type='text'>
This reverts commit 14d3b3c854276b148c2fcb53ce00d0f668de2306.

Conflicts:
	gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java

Change-Id: Ib3fa0e6b80bb6f30fe16af10e1805604cac1ab02
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 14d3b3c854276b148c2fcb53ce00d0f668de2306.

Conflicts:
	gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java

Change-Id: Ib3fa0e6b80bb6f30fe16af10e1805604cac1ab02
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix updating changes that fail to merge</title>
<updated>2015-03-03T16:46:18+00:00</updated>
<author>
<name>Edwin Kempin</name>
<email>edwin.kempin@sap.com</email>
</author>
<published>2013-11-18T15:03:09+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qtqa/gerrit.git/commit/?id=e4790e0796bca88050c58d10e736917d1bd53887'/>
<id>e4790e0796bca88050c58d10e736917d1bd53887</id>
<content type='text'>
If a submitted change fails to merge due an error (e.g. inconsistent
data or a pre merge validation found an issue) the change state should
be set back to 'New', but it stays as 'Submitted, Merge Pending'. It
should also display a proper error message to the user doing the
submit and add a change message to the change that contains the error
message. Both is currently not happening and the user has no idea why
the change got stuck in 'Submitted, Merge Pending' state.

This change ensures that all changes which cannot be merged due to an
error are properly updated.

Conflicts:
	gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java

Change-Id: Idd8da6a4cd089d2a7b09cbb60342612f1c5256e9
Signed-off-by: Edwin Kempin &lt;edwin.kempin@sap.com&gt;
(cherry picked from commit 851f7017fd8728616406c605bd5b906706894bc7)
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If a submitted change fails to merge due an error (e.g. inconsistent
data or a pre merge validation found an issue) the change state should
be set back to 'New', but it stays as 'Submitted, Merge Pending'. It
should also display a proper error message to the user doing the
submit and add a change message to the change that contains the error
message. Both is currently not happening and the user has no idea why
the change got stuck in 'Submitted, Merge Pending' state.

This change ensures that all changes which cannot be merged due to an
error are properly updated.

Conflicts:
	gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java

Change-Id: Idd8da6a4cd089d2a7b09cbb60342612f1c5256e9
Signed-off-by: Edwin Kempin &lt;edwin.kempin@sap.com&gt;
(cherry picked from commit 851f7017fd8728616406c605bd5b906706894bc7)
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Limit retrying of submitted changes to 12 hours</title>
<updated>2015-03-03T16:46:13+00:00</updated>
<author>
<name>Shawn Pearce</name>
<email>sop@google.com</email>
</author>
<published>2013-09-11T23:29:01+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qtqa/gerrit.git/commit/?id=fad7cfff9f9a853ad5a3959e6841f838fe06e80d'/>
<id>fad7cfff9f9a853ad5a3959e6841f838fe06e80d</id>
<content type='text'>
Recently we discovered a change that has been retrying submit every
5 minutes since November, 2012. The change is unsubmittable due to
an unresolved dependency.

isSubmitStillPossible() is potentially broken in this case and may
be allowing changes to wait forever rather than DEPENDENCY_DELAY (15
minutes). Although the project should also fix whatever underlying
cause exists here, changes should never be allowed to automatically
retry submit for more than 6 months with no human intervention.

Be more conservative by retrying a change for 12 hours. If an
identical failure message is going to be posted, abort the submit
by setting the change status back to NEW. This requires a human to
revisit the change.

Adjust where the secondary index is invoked to ensure it gets
updated after the change was modified by MergeOp.

Conflicts:
	gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java

Change-Id: I4b2b73c2edbf61459c398e4fcc5cad7d504ba8b0
(cherry picked from commit 06f92f721c7b40037172f661592bab89f6df9671)
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Recently we discovered a change that has been retrying submit every
5 minutes since November, 2012. The change is unsubmittable due to
an unresolved dependency.

isSubmitStillPossible() is potentially broken in this case and may
be allowing changes to wait forever rather than DEPENDENCY_DELAY (15
minutes). Although the project should also fix whatever underlying
cause exists here, changes should never be allowed to automatically
retry submit for more than 6 months with no human intervention.

Be more conservative by retrying a change for 12 hours. If an
identical failure message is going to be posted, abort the submit
by setting the change status back to NEW. This requires a human to
revisit the change.

Adjust where the secondary index is invoked to ensure it gets
updated after the change was modified by MergeOp.

Conflicts:
	gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java

Change-Id: I4b2b73c2edbf61459c398e4fcc5cad7d504ba8b0
(cherry picked from commit 06f92f721c7b40037172f661592bab89f6df9671)
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Abandon any open changes if a project has been removed</title>
<updated>2015-03-03T16:46:00+00:00</updated>
<author>
<name>Shawn Pearce</name>
<email>sop@google.com</email>
</author>
<published>2013-09-11T19:33:18+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qtqa/gerrit.git/commit/?id=c40e14cafff332ca08cfc75b2e06f673e0b0b8f6'/>
<id>c40e14cafff332ca08cfc75b2e06f673e0b0b8f6</id>
<content type='text'>
If the Git repository has been deleted and a change has been
submitted in that repository MergeOp will contiuously try to
submit changes in that project, failing on every attempt when
openRepository() fails.

Catch this failure and abandon all changes in the project, as the
Git data no longer exists.

Change-Id: I83087211b281c1e478c0e83b48b8f7d158a93c13
(cherry picked from commit 1eda8192c2ab1027ca499ddad6b7dfe79f29c189)
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the Git repository has been deleted and a change has been
submitted in that repository MergeOp will contiuously try to
submit changes in that project, failing on every attempt when
openRepository() fails.

Catch this failure and abandon all changes in the project, as the
Git data no longer exists.

Change-Id: I83087211b281c1e478c0e83b48b8f7d158a93c13
(cherry picked from commit 1eda8192c2ab1027ca499ddad6b7dfe79f29c189)
Reviewed-by: Ismo Haataja &lt;ismo.haataja@digia.com&gt;
Reviewed-by: Oswald Buddenhagen &lt;oswald.buddenhagen@theqtcompany.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
