Skip to content

Commit

Permalink
Merge branch 'update-git-refs' of 'https://github.com/sduenas/perceval'
Browse files Browse the repository at this point in the history
Merges chaoss#853 
Closes chaoss#853
  • Loading branch information
jjmerchante authored Dec 4, 2024
2 parents f16b29d + 204fad4 commit 02512e2
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
6 changes: 6 additions & 0 deletions perceval/backends/core/git.py
Original file line number Diff line number Diff line change
Expand Up @@ -1304,6 +1304,8 @@ def _update_references(self, refs):
self._update_ref(old_ref, delete=True)

# Update new references
current_refs = {ref.refname: ref.hash for ref in self._discover_refs()}

for new_ref in refs:
refname = new_ref.refname

Expand All @@ -1315,6 +1317,10 @@ def _update_references(self, refs):
logger.debug("Reference %s not needed; ignored for updating in sync process",
refname)
continue
elif refname in current_refs and new_ref.hash == current_refs[refname]:
logger.debug("Reference %s already up to date in sync process",
refname)
continue
else:
self._update_ref(new_ref)

Expand Down
14 changes: 14 additions & 0 deletions releases/unreleased/git-sync-perfomance-improved.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Git sync improved for `--latest-items` flag
category: performance
author: Santiago Dueñas <[email protected]>
issue: null
notes: >
The speed updating a git repository when `--lates-items`
is set was very poor. The main problem was when the
references were updated to the new hashes. All the
active refs on the repository were modified, even when
they were up-to-date. Now, only references updated
on the remote repository are modified on the local one.
Repositories are synched 2 times faster than before.

0 comments on commit 02512e2

Please sign in to comment.