qisrc.worktree – Managing git projects

qisrc.worktree.GitWorkTree

class qisrc.worktree.GitWorkTree(worktree)

Stores a list of git projects and a list of manifests

configure_manifest(manifest_url, groups=None, all_repos=False, branch='master', ref=None, review=None, force=False)

Add a new manifest to this worktree

check_manifest(xml_path)

Run a sync using just the xml file given as parameter

sync()

Delegates to WorkTreeSyncer

load_git_projects()

Build a list of git projects using the xml configuration

get_git_project(path, raises=False, auto_add=False)

Get a git project by its sources

get_git_projects(groups=None)

Get the git projects matching a given group

find_repo(repo)

Look for a project configured with the given repo

snapshot()

Return a :py:class`.Snapshot` of the current worktree state

add_git_project(src)

Add a new git project

clone_missing(repo)

Add a new project. :returns: a boolean telling if the clone succeeded

move_repo(repo, new_src, force=False)

Move a project in the worktree (same remote url, different src)

checkout(branch, force=False)

Called by qisrc checkout

For each project, checkout the branch if it is different than the default branch of the manifest.

get_projects_on_branch(branch)

Return a dict (src, project) for every project as configured on the given branch of the manifest.

remove_repo(project)

Remove a project from the worktree

save_project_config(project)

Save the project instance in .qi/git.xml

save_git_config()

Save the worktree config in .qi/git.xml