Code

Merge branch 'da/difftool-mergtool-refactor'
[git.git] / git-remote-testgit.py
index b0c1e9b273a2763300eba3431eb001aa9cd75263..e9c832bfd3da7db771cc2113027d3e590dc51d59 100644 (file)
@@ -72,6 +72,17 @@ def do_capabilities(repo, args):
     print "export"
     print "refspec refs/heads/*:%s*" % repo.prefix
 
+    dirname = repo.get_base_path(repo.gitdir)
+
+    if not os.path.exists(dirname):
+        os.makedirs(dirname)
+
+    path = os.path.join(dirname, 'testgit.marks')
+
+    print "*export-marks %s" % path
+    if os.path.exists(path):
+        print "*import-marks %s" % path
+
     print # end capabilities
 
 
@@ -120,8 +131,24 @@ def do_import(repo, args):
     if not repo.gitdir:
         die("Need gitdir to import")
 
+    ref = args[0]
+    refs = [ref]
+
+    while True:
+        line = sys.stdin.readline()
+        if line == '\n':
+            break
+        if not line.startswith('import '):
+            die("Expected import line.")
+
+        # strip of leading 'import '
+        ref = line[7:].strip()
+        refs.append(ref)
+
     repo = update_local_repo(repo)
-    repo.exporter.export_repo(repo.gitdir, args)
+    repo.exporter.export_repo(repo.gitdir, refs)
+
+    print "done"
 
 
 def do_export(repo, args):
@@ -131,22 +158,15 @@ def do_export(repo, args):
     if not repo.gitdir:
         die("Need gitdir to export")
 
-    dirname = repo.get_base_path(repo.gitdir)
+    update_local_repo(repo)
+    changed = repo.importer.do_import(repo.gitdir)
 
-    if not os.path.exists(dirname):
-        os.makedirs(dirname)
+    if not repo.local:
+        repo.non_local.push(repo.gitdir)
 
-    path = os.path.join(dirname, 'testgit.marks')
-    print path
-    if os.path.exists(path):
-        print path
-    else:
-        print ""
-    sys.stdout.flush()
-
-    update_local_repo(repo)
-    repo.importer.do_import(repo.gitdir)
-    repo.non_local.push(repo.gitdir)
+    for ref in changed:
+        print "ok %s" % ref
+    print
 
 
 COMMANDS = {