summaryrefslogtreecommitdiff
path: root/morphlib/git.py
diff options
context:
space:
mode:
authorAdam Coldrick <adam.coldrick@codethink.co.uk>2014-03-14 13:01:45 +0000
committerAdam Coldrick <adam.coldrick@codethink.co.uk>2014-03-20 13:54:21 +0000
commitcbc117355a6f549a14cae57dac43fa6f432c1849 (patch)
tree714fcf6af5023e4ed77ec75907e5edfdd08e7238 /morphlib/git.py
parent73e22af6a9c83f9e9e1d79f4018f4562bf5ae1b2 (diff)
downloadmorph-cbc117355a6f549a14cae57dac43fa6f432c1849.tar.gz
Make existing morph commands use git-fat
When cloning a repository, the files stored using git-fat need to be pulled. This situation occurs in `morph branch`, `morph edit`, and `morph checkout`.
Diffstat (limited to 'morphlib/git.py')
-rw-r--r--morphlib/git.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/morphlib/git.py b/morphlib/git.py
index 27146206..ccd06323 100644
--- a/morphlib/git.py
+++ b/morphlib/git.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2013 Codethink Limited
+# Copyright (C) 2011-2014 Codethink Limited
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -279,6 +279,10 @@ def copy_repository(runcmd, repo, destdir, is_mirror=True):
def checkout_ref(runcmd, gitdir, ref):
'''Checks out a specific ref/SHA1 in a git working tree.'''
runcmd(['git', 'checkout', ref], cwd=gitdir)
+ gd = morphlib.gitdir.GitDirectory(gitdir)
+ if gd.has_fat():
+ gd.fat_init()
+ gd.fat_pull()
def index_has_changes(runcmd, gitdir):
@@ -308,6 +312,10 @@ def clone_into(runcmd, srcpath, targetpath, ref=None):
runcmd(['git', 'checkout', ref], cwd=targetpath)
else:
runcmd(['git', 'clone', '-b', ref, srcpath, targetpath])
+ gd = morphlib.gitdir.GitDirectory(targetpath)
+ if gd.has_fat():
+ gd.fat_init()
+ gd.fat_pull()
def is_valid_sha1(ref):
'''Checks whether a string is a valid SHA1.'''