[ostree] pull: Add remotename:ref syntax



commit 390b781d3a13262ad8b391a39f2cae1820067f18
Author: Colin Walters <walters verbum org>
Date:   Tue Jan 21 08:57:34 2014 +0000

    pull: Add remotename:ref syntax
    
    This is really the common case.

 src/ostree/ot-builtin-pull.c |   26 ++++++++++++++++++++------
 tests/pull-test.sh           |    2 ++
 2 files changed, 22 insertions(+), 6 deletions(-)
---
diff --git a/src/ostree/ot-builtin-pull.c b/src/ostree/ot-builtin-pull.c
index 7aa028a..6d8ffc9 100644
--- a/src/ostree/ot-builtin-pull.c
+++ b/src/ostree/ot-builtin-pull.c
@@ -36,7 +36,7 @@ ostree_builtin_pull (int argc, char **argv, OstreeRepo *repo, GCancellable *canc
 {
   GOptionContext *context;
   gboolean ret = FALSE;
-  const char *remote;
+  gs_free char *remote = NULL;
   OstreeRepoPullFlags pullflags = 0;
   GSConsole *console = NULL;
   gs_unref_ptrarray GPtrArray *refs_to_fetch = NULL;
@@ -53,14 +53,28 @@ ostree_builtin_pull (int argc, char **argv, OstreeRepo *repo, GCancellable *canc
       ot_util_usage_error (context, "REMOTE must be specified", error);
       goto out;
     }
-  remote = argv[1];
 
-  if (argc > 2)
+
+  if (strchr (argv[1], ':') == NULL)
+    {
+      remote = g_strdup (argv[1]);
+      if (argc > 2)
+        {
+          int i;
+          refs_to_fetch = g_ptr_array_new ();
+          for (i = 2; i < argc; i++)
+            g_ptr_array_add (refs_to_fetch, argv[i]);
+          g_ptr_array_add (refs_to_fetch, NULL);
+        }
+    }
+  else
     {
-      int i;
+      char *ref_to_fetch;
       refs_to_fetch = g_ptr_array_new ();
-      for (i = 2; i < argc; i++)
-        g_ptr_array_add (refs_to_fetch, argv[i]);
+      if (!ostree_parse_refspec (argv[1], &remote, &ref_to_fetch, error))
+        goto out;
+      /* Transfer ownership */
+      g_ptr_array_add (refs_to_fetch, ref_to_fetch);
       g_ptr_array_add (refs_to_fetch, NULL);
     }
 
diff --git a/tests/pull-test.sh b/tests/pull-test.sh
index 82e7004..8231cef 100755
--- a/tests/pull-test.sh
+++ b/tests/pull-test.sh
@@ -23,7 +23,9 @@ cd ${test_tmpdir}
 mkdir repo
 ${CMD_PREFIX} ostree --repo=repo init
 ${CMD_PREFIX} ostree --repo=repo remote add --set=gpg-verify=false origin $(cat 
httpd-address)/ostree/gnomerepo
+# Try both syntaxes
 ${CMD_PREFIX} ostree --repo=repo pull origin main
+${CMD_PREFIX} ostree --repo=repo pull origin:main
 ${CMD_PREFIX} ostree --repo=repo fsck
 echo "ok pull"
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]