Skip to content

Commit

Permalink
vpm: check for git version before adding --also-filter-submodules f…
Browse files Browse the repository at this point in the history
…lag (#21259)
  • Loading branch information
ttytm committed Apr 12, 2024
1 parent b443613 commit 423c39c
Showing 1 changed file with 33 additions and 18 deletions.
51 changes: 33 additions & 18 deletions cmd/tools/vpm/vcs.v
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
module main

import os
import semver

// Supported version control system commands.
enum VCS {
Expand All @@ -19,25 +20,39 @@ struct VCSInfo {
}
}

const vcs_info = {
VCS.git: VCSInfo{
dir: '.git'
args: struct {
install: 'clone --depth=1 --recursive --shallow-submodules --filter=blob:none --also-filter-submodules'
version: '--single-branch -b'
update: 'pull --recurse-submodules' // pulling with `--depth=1` leads to conflicts when the upstream has more than 1 new commits.
path: '-C'
outdated: ['fetch', 'rev-parse @', 'rev-parse @{u}']
}
const vcs_info = init_vcs_info() or {
vpm_error(err.msg())
exit(1)
}

fn init_vcs_info() !map[VCS]VCSInfo {
git_installed_raw_ver := os.execute_opt('git --version')!.output.all_after_last(' ').all_before('.windows').trim_space()
git_installed_ver := semver.from(git_installed_raw_ver)!
git_submod_filter_ver := semver.from('2.36.0')!
mut git_install_cmd := 'clone --depth=1 --recursive --shallow-submodules --filter=blob:none'
if git_installed_ver >= git_submod_filter_ver {
git_install_cmd += ' --also-filter-submodules'
}
VCS.hg: VCSInfo{
dir: '.hg'
args: struct {
install: 'clone'
version: '--rev'
update: 'pull --update'
path: '-R'
outdated: ['incoming']
return {
VCS.git: VCSInfo{
dir: '.git'
args: struct {
install: git_install_cmd
version: '--single-branch -b'
update: 'pull --recurse-submodules' // pulling with `--depth=1` leads to conflicts when the upstream has more than 1 new commits.
path: '-C'
outdated: ['fetch', 'rev-parse @', 'rev-parse @{u}']
}
}
VCS.hg: VCSInfo{
dir: '.hg'
args: struct {
install: 'clone'
version: '--rev'
update: 'pull --update'
path: '-R'
outdated: ['incoming']
}
}
}
}
Expand Down

0 comments on commit 423c39c

Please sign in to comment.