-
Notifications
You must be signed in to change notification settings - Fork 752
Implementation of Git multiple revisions #6620
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
… operation Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
…f "master" Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Ben Sherman <[email protected]>
Signed-off-by: Dr Marco De La Pierre <[email protected]>
Signed-off-by: Dr Marco De La Pierre <[email protected]>
Signed-off-by: Dr Marco De La Pierre <[email protected]>
Signed-off-by: Dr Marco De La Pierre <[email protected]>
Signed-off-by: Dr Marco De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Signed-off-by: Dr Marco Claudio De La Pierre <[email protected]>
Wow! great 😆 🚀 |
Signed-off-by: Paolo Di Tommaso <[email protected]>
modules/nextflow/src/main/groovy/nextflow/scm/GithubRepositoryProvider.groovy
Show resolved
Hide resolved
|
Little glitch, but likely there isn't much it can be done here |
Is this when running |
|
Yes |
Co-authored-by: Paolo Di Tommaso <[email protected]> Signed-off-by: Jorge Ejarque <[email protected]>
|
I can create another PR with a patch ignoring the path to backport to stable releases. |
…) [ci skip] Update the multi-revision asset management ADR: - Fix directory structure to match implementation: - bare/ instead of .nextflow/bare_repo/ - commits/ instead of .nextflow/commits/ - Legacy repo at separate location ~/.nextflow/assets/<project>/ - Merge Option 4 (Strategy Pattern) into Option 3 since the Strategy Pattern is an implementation detail of the multi-revision approach, not a standalone option Signed-off-by: Paolo Di Tommaso <[email protected]>
Signed-off-by: jorgee <[email protected]>
adr/20251205-multi-revision-asset-management-strategy-pattern.md
Outdated
Show resolved
Hide resolved
adr/20251205-multi-revision-asset-management-strategy-pattern.md
Outdated
Show resolved
Hide resolved
adr/20251205-multi-revision-asset-management-strategy-pattern.md
Outdated
Show resolved
Hide resolved
adr/20251205-multi-revision-asset-management-strategy-pattern.md
Outdated
Show resolved
Hide resolved
adr/20251205-multi-revision-asset-management-strategy-pattern.md
Outdated
Show resolved
Hide resolved
adr/20251205-multi-revision-asset-management-strategy-pattern.md
Outdated
Show resolved
Hide resolved
Co-authored-by: Paolo Di Tommaso <[email protected]> Signed-off-by: Jorge Ejarque <[email protected]>
Co-authored-by: Paolo Di Tommaso <[email protected]> Signed-off-by: Jorge Ejarque <[email protected]>
Signed-off-by: jorgee <[email protected]>
Signed-off-by: jorgee <[email protected]>
Signed-off-by: jorgee <[email protected]>
Signed-off-by: jorgee <[email protected]>
Signed-off-by: jorgee <[email protected]>
|
Addressed the last review comments. |
Signed-off-by: Paolo Di Tommaso <[email protected]>
|
Just replaced the • with |
Signed-off-by: Paolo Di Tommaso <[email protected]>
Signed-off-by: jorgee <[email protected]>
|
Changing the symbol in docs |
Summary
This PR implements Git multi-revision asset management, enabling concurrent execution of different pipeline revisions (e.g., production on v1.0, testing on v2.0-dev) while maintaining efficient disk usage through object sharing.
Closes #2870. Alternative for #5089.
Solution
The implementation uses a bare repository + shared clones approach with the Strategy pattern for backward compatibility:
Key mechanisms:
Backward Compatibility
Uses the Strategy pattern to maintain compatibility with existing repositories:
RepositoryStrategyinterface withLegacyRepositoryStrategyandMultiRevisionRepositoryStrategyimplementationsAssetManageracts as facade with unchanged public APINXF_SCM_LEGACY=trueforces legacy mode, otherwise auto-detected based on repository stateChanges
Core Implementation
RepositoryStrategyinterface andAbstractRepositoryStrategybase classMultiRevisionRepositoryStrategyfor bare repo + shared clonesLegacyRepositoryStrategypreserving original behaviorAssetManagerto delegate to strategy implementationsCLI Updates
-a, --all-revisionsflag to-a, --allinCmdDropnf-infocommand output to show clones with revision indicatorsConcurrency & Reliability
FileMutexfor safe concurrent clone operationsDocumentation
adr/20251205-git-multi-revision-asset-management.md