Details
Details
- Reviewers
ardumont - Group Reviewers
Reviewers - Maniphest Tasks
- T611: support for external definitions in the svn/subversion loader
- Commits
- rDLDSVNd7a97a75a657: utils: Fix hidden path processing in parse_external_definition
Diff Detail
Diff Detail
- Repository
- rDLDSVN Subversion (SVN) loader
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
Event Timeline
Comment Actions
Build is green
Patch application report for D7129 (id=25848)
Could not rebase; Attempt merge onto d929eebd39...
Updating d929eeb..7b6c15c Fast-forward swh/loader/svn/replay.py | 79 ++++++++++++------ swh/loader/svn/tests/test_loader.py | 158 +++++++++++++++++++++++++++++++++++- swh/loader/svn/tests/test_utils.py | 6 ++ swh/loader/svn/utils.py | 3 +- 4 files changed, 218 insertions(+), 28 deletions(-)
Changes applied before test
commit 7b6c15c848aaf676a9b4e319ede6c092d4dfca6d
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Wed Feb 9 12:10:10 2022 +0100
utils: Fix hidden path processing in parse_external_definition
str.lstrip takes a list of chars to left strip and do not left strip
a string so if a path starts with a '.' it was erroneously removed.
Related to T611
commit 23c92f8e2dfb7c41df9a9187ee12a23438e5b565
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Tue Feb 8 17:31:11 2022 +0100
replay: Fix external tuple use in process_external method
Some required changes were missed in 20c1445fb11e.
The external tuple created at the beginning of the process_external method
was missing a third boolean member.
The externals defintions in DirState was also missing that boolean member.
Test checking if an external was already exported was invalid.
Also alias the type of that tuple for better code readability.
Related to T611
commit c46a3b68579a089703ea324b55370abdca73c007
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Tue Feb 8 15:31:49 2022 +0100
replay: Prevent external path removal when defined on multiple dirs
The same absolute external path can be defined on multiple directories
in the repository.
To prevent removal of an external path while it is still defined in
another directory, we need to track the number of references of the
absolute external path by incrementing / decrementing a counter
when adding / removing an external.
Related to T611
commit 0ea0d1282177a5ca7878ea61c07ffeb0d4676ec1
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Mon Feb 7 15:20:17 2022 +0100
replay: Use remote repository base URL to export external located in it
Some externals might be located in the same repository we are
currently loading. In that case, replace the external base URL
which corresponds to the origin URL by the remote repository URL.
When we use SvnLoaderFromRemoteDump, that remote repository URL
corresponds to a local repository mounted from a dump file so we
can export the external path in a much faster way without any costly
network requests.
Related to T611See https://jenkins.softwareheritage.org/job/DLDSVN/job/tests-on-diff/293/ for more details.
Comment Actions
Build is green
Patch application report for D7129 (id=25857)
Could not rebase; Attempt merge onto d929eebd39...
Updating d929eeb..d7a97a7 Fast-forward swh/loader/svn/replay.py | 83 +++++++++++++------ swh/loader/svn/tests/test_loader.py | 158 +++++++++++++++++++++++++++++++++++- swh/loader/svn/tests/test_utils.py | 6 ++ swh/loader/svn/utils.py | 3 +- 4 files changed, 222 insertions(+), 28 deletions(-)
Changes applied before test
commit d7a97a75a6575453f1469a13987ece8c685f08d1
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Wed Feb 9 12:10:10 2022 +0100
utils: Fix hidden path processing in parse_external_definition
str.lstrip takes a list of chars to left strip and do not left strip
a string so if a path starts with a '.' it was erroneously removed.
Related to T611
commit 46f25850ae8e23e004db988abd67ff4841ee0197
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Tue Feb 8 17:31:11 2022 +0100
replay: Fix external tuple use in process_external method
Some required changes were missed in 20c1445fb11e.
The external tuple created at the beginning of the process_external method
was missing a third boolean member.
The externals defintions in DirState was also missing that boolean member.
Test checking if an external was already exported was invalid.
Also alias the type of that tuple for better code readability.
Related to T611
commit 7220edbba0f43ab06dee016aa45fc9d3f0673953
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Tue Feb 8 15:31:49 2022 +0100
replay: Prevent external path removal when defined on multiple dirs
The same absolute external path can be defined on multiple directories
in the repository.
To prevent removal of an external path while it is still defined in
another directory, we need to track the number of references of the
absolute external path by incrementing / decrementing a counter
when adding / removing an external.
Related to T611
commit 0ea0d1282177a5ca7878ea61c07ffeb0d4676ec1
Author: Antoine Lambert <anlambert@softwareheritage.org>
Date: Mon Feb 7 15:20:17 2022 +0100
replay: Use remote repository base URL to export external located in it
Some externals might be located in the same repository we are
currently loading. In that case, replace the external base URL
which corresponds to the origin URL by the remote repository URL.
When we use SvnLoaderFromRemoteDump, that remote repository URL
corresponds to a local repository mounted from a dump file so we
can export the external path in a much faster way without any costly
network requests.
Related to T611See https://jenkins.softwareheritage.org/job/DLDSVN/job/tests-on-diff/296/ for more details.