summaryrefslogtreecommitdiff
path: root/morph
diff options
context:
space:
mode:
authorLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-03-23 14:17:27 +0000
committerLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-03-23 14:17:27 +0000
commiteb655d7f9fcd3a744959893e4ee19a1a5cc35a18 (patch)
treeb64fc8bf3eeeab7641e42ee1833ca8cfc2f66076 /morph
parent5aa1716e971a424dc1dbe6e4c69a36eb7c95e714 (diff)
downloadmorph-eb655d7f9fcd3a744959893e4ee19a1a5cc35a18.tar.gz
Add "morph checkout" command
Diffstat (limited to 'morph')
-rwxr-xr-xmorph17
1 files changed, 17 insertions, 0 deletions
diff --git a/morph b/morph
index 5f278cb4..355ab3fc 100755
--- a/morph
+++ b/morph
@@ -433,6 +433,23 @@ class Morph(cliapp.Application):
self.runcmd(['git', 'checkout', '-b', new_branch, commit],
cwd=new_repo)
+ def cmd_checkout(self, args):
+ '''Check out an existing system branch.'''
+
+ if len(args) != 1:
+ raise cliapp.AppException('morph checkout needs name of '
+ 'branch as parameter')
+
+ system_branch = args[0]
+ repo = 'morphs'
+
+ # Create the system branch directory.
+ os.makedirs(system_branch)
+
+ # Clone into system branch directory.
+ new_repo = os.path.join(system_branch, os.path.basename(repo))
+ self._clone_to_directory(new_repo, repo, system_branch)
+
def _deduce_system_branch(self):
out = self.runcmd(['git', 'branch'])
for line in out.splitlines():