def init(args): """Initializes repository""" man = load_manifest() for (name, project) in man.projects.iteritems(): logging.warn("Initializing project: %s" % name) clone_remote = man.remotes[project.from_remote] clone_url = clone_remote.fetch % name p = GitCommand( None, ["clone", "-o", project.from_remote, "-n", clone_url, project.dir]) p.Wait() repo = GitRepo(workdir_for_project(project)) if repo.command(["show-ref", "-q", "HEAD"]) != 0: # There is no HEAD (maybe origin/master doesnt exist) so check out the tracking # branch repo.check_command([ "checkout", "--track", "-b", project.tracking_branch, project.remote_refspec ]) else: repo.check_command(["checkout"]) ensure_remotes([]) fetch([]) checkout_branches([])
def hard_reset_branches(args): """Hard-resets your tracking branches to match the remotes.""" checkout_branches(args) man = load_manifest() for (name, project) in man.projects.iteritems(): print >> sys.stderr, "Hard resetting tracking branch in project: %s" % name repo = GitRepo(workdir_for_project(project)) repo.check_command(["reset", "--hard", project.remote_refspec])
def hard_reset_branches(args): """Hard-resets your tracking branches to match the remotes.""" checkout_branches(args) man = load_manifest() for (name, project) in man.projects.iteritems(): print >>sys.stderr, "Hard resetting tracking branch in project: %s" % name repo = GitRepo(workdir_for_project(project)) repo.check_command(["reset", "--hard", project.remote_refspec])
def checkout_branches(args): """Checks out the tracking branches listed in the manifest.""" ensure_tracking_branches([]) if check_dirty([]) and '-f' not in args: raise Exception("Cannot checkout new branches with dirty projects.") man = load_manifest() for (name, project) in man.projects.iteritems(): print >> sys.stderr, "Checking out tracking branch in project: %s" % name repo = GitRepo(workdir_for_project(project)) # Check that sucker out repo.check_command(["checkout", project.tracking_branch])
def checkout_branches(args): """Checks out the tracking branches listed in the manifest.""" ensure_tracking_branches([]) if check_dirty([]) and '-f' not in args: raise Exception("Cannot checkout new branches with dirty projects.") man = load_manifest() for (name, project) in man.projects.iteritems(): print >>sys.stderr, "Checking out tracking branch in project: %s" % name repo = GitRepo(workdir_for_project(project)) # Check that sucker out repo.check_command(["checkout", project.tracking_branch])
def ensure_remotes(args): """Ensure that remotes are set up""" man = load_manifest() for (proj_name, project) in man.projects.iteritems(): repo = GitRepo(workdir_for_project(project)) for remote_name in project.remotes: remote = man.remotes[remote_name] new_url = remote.fetch % proj_name p = repo.command_process(["config", "--get", "remote.%s.url" % remote_name], capture_stdout=True) if p.Wait() == 0: cur_url = p.stdout.strip() if cur_url != new_url: repo.check_command(["config", "--set", "remote.%s.url" % remote_name, new_url]) else: repo.check_command(["remote", "add", remote_name, new_url])
def ensure_remotes(args): """Ensure that remotes are set up""" man = load_manifest() for (proj_name, project) in man.projects.iteritems(): repo = GitRepo(workdir_for_project(project)) for remote_name in project.remotes: remote = man.remotes[remote_name] new_url = remote.fetch % proj_name p = repo.command_process( ["config", "--get", "remote.%s.url" % remote_name], capture_stdout=True) if p.Wait() == 0: cur_url = p.stdout.strip() if cur_url != new_url: repo.check_command([ "config", "--set", "remote.%s.url" % remote_name, new_url ]) else: repo.check_command(["remote", "add", remote_name, new_url])
def init(args): """Initializes repository""" man = load_manifest() for (name, project) in man.projects.iteritems(): logging.warn("Initializing project: %s" % name) clone_remote = man.remotes[project.from_remote] clone_url = clone_remote.fetch % name p = GitCommand(None, ["clone", "-o", project.from_remote, "-n", clone_url, project.dir]) p.Wait() repo = GitRepo(workdir_for_project(project)) if repo.command(["show-ref", "-q", "HEAD"]) != 0: # There is no HEAD (maybe origin/master doesnt exist) so check out the tracking # branch repo.check_command(["checkout", "--track", "-b", project.tracking_branch, project.remote_refspec]) else: repo.check_command(["checkout"]) ensure_remotes([]) fetch([]) checkout_branches([])