Skip to content

OperationType::FilterByTouchedPaths during git sync is slow on large repo #1413

Answered by arxanas
bryango asked this question in Q&A
Discussion options

You must be logged in to vote

[topic: implementation] This pass implements commit deduplication to detect when you've merged commits upstream and hide them locally. There's a few main steps:

  • for each upstream commit, calculate the set of changed paths (parallelizable)
  • for each rebased commit, find upstream commits that touch any of the same paths
  • compute patch IDs for each rebased commit and compare against matched upstream commits

Comments:

  • it's possible that one of those steps is algorithmically or practically inefficient.
  • it's possible that timing is being attributed to the wrong step
  • nixpkgs may have some pessimizing behavior (like if most commits touch a lockfile or something like that)
  • I'm surprised that it t…

Replies: 1 comment 4 replies

Comment options

You must be logged in to vote
4 replies
@bryango
Comment options

@bryango
Comment options

@arxanas
Comment options

@arxanas
Comment options

Answer selected by bryango
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants