Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-tools.git;a=commitdiff;h=88864a795c06e222f597fd56e67e9e4bf2b7f632

commit 88864a795c06e222f597fd56e67e9e4bf2b7f632
Author: Miklos Vajna <vmik...@frugalware.org>
Date:   Sun Jun 28 23:18:29 2009 +0200

dg: handle submodules during get/pull

diff --git a/darcs-git.py b/darcs-git.py
index 0ec3b64..e252f1f 100755
--- a/darcs-git.py
+++ b/darcs-git.py
@@ -128,6 +128,27 @@ def svn_check():
sock.close()
return os.path.exists(os.path.join(cdup, ".git/svn"))

+def handle_submodules(argv = None):
+       # clone
+       if argv:
+               # this is buggy in case the user uses 'dg get
+               # git://project.org/foo.git bar.git', but that's really rare...
+               dir = argv[-1].split('/')[-1].replace('.git', '')
+               if os.path.exists(dir):
+                       os.chdir(dir)
+       sock = os.popen("git rev-parse --show-cdup")
+       cdup = sock.read().strip()
+       sock.close()
+       if os.path.exists(os.path.join(cdup, ".gitmodules")):
+               # pull
+               if not argv:
+                       ret = os.system("git submodule sync >/dev/null")
+                       if ret:
+                               return ret
+               ret = os.system("git submodule update --init")
+               if ret:
+                       return ret
+
def scan_dir(files=""):
ret = []
lines = get_diff(files)
@@ -719,6 +740,7 @@ Options:
return(1)
if changes and os.system("git stash pop") != 0:
return(1)
+       handle_submodules()

def send(argv):
def usage(ret):
@@ -790,7 +812,10 @@ Options:
sys.exit(ret)
if len(argv) and argv[0] in ("-h", "--help"):
usage(0)
-       return os.system("git clone %s" % " ".join(argv))
+       ret = os.system("git clone %s" % " ".join(argv))
+       if ret:
+               return ret
+       handle_submodules(argv)

def setpref(argv):
def usage(ret):
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to