dotfiles / update_subrepos.py

#!/usr/bin/env python3
import re
import subprocess


repo = re.compile(r'\[(\w+)\](.*)')
commands = {
    'hg': 'hg pull -u',
    'git': 'git pull',
    'svn': 'svn up',
}

for line in open('.hgsub'):
    if not line.strip():
        continue

    local_dir, repo_def = line.split(' = ')
    repo_type, repo_url = repo.match(repo_def).groups()

    print('- Updating %s ...' % local_dir)
    subprocess.call(commands[repo_type], cwd=local_dir, shell=True)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.