[ostree] pull: Add remotename:ref syntax
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ostree] pull: Add remotename:ref syntax
- Date: Tue, 21 Jan 2014 09:41:50 +0000 (UTC)
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]