# HG changeset patch # User Jeff Hammel # Date 1393960759 28800 # Node ID 3be3b16aeda02f406b1c0b69c9b7163cbe2f37ee # Parent 6dedad97c4eb90f6a7b2fe9814ab1e9b3d502a43 stub for merging from master diff -r 6dedad97c4eb -r 3be3b16aeda0 python/git_merge_master.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python/git_merge_master.py Tue Mar 04 11:19:19 2014 -0800 @@ -0,0 +1,48 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +merge master to branch +""" +# TODO: combine with k0s.org/hg/gut + +import argparse +import os +import subprocess +import sys +import tempfile +from which import which + +class Git(object): + def branch(self): + """returns branch you are on""" + return self.branches()[0] + def branches(self): + """return all branches, active first""" + output = subprocess.check_output(['git', 'branch']).strip() + lines = sorted(output.splitlines(), key=lambda line: line.startswith('*'), reverse=True) + return [line.strip('*').strip() for line in lines] + + def diff(self): + """returns diff between active branch and master""" + branch = self.branch() + if branch == 'master': + raise AssertionError("Cannot be on the master branch") + merge_base = subprocess.check_output(['git', 'merge-base', 'HEAD', 'master']).strip() + return subprocess.check_output(['git', 'diff', merge_base]) + + def merge(self): + pass + +def main(args=sys.argv[1:]): + + parser = argparse.ArgumentParser(description=__doc__) + options = parser.parse_args(args) + + # find branch + git = Git() + print (git.diff()) + + +if __name__ == '__main__': + main()