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