admin-switch: Don't segfault if there's no remote
Switching between local branches should be supported too. Signed-off-by: Anton Gerasimov <anton@advancedtelematic.com> Closes: #683 Approved by: cgwalters
This commit is contained in:
parent
e6a8979e05
commit
b8f4465b50
|
|
@ -53,6 +53,7 @@ ot_admin_builtin_switch (int argc, char **argv, GCancellable *cancellable, GErro
|
||||||
g_autofree char *new_remote = NULL;
|
g_autofree char *new_remote = NULL;
|
||||||
g_autofree char *new_ref = NULL;
|
g_autofree char *new_ref = NULL;
|
||||||
g_autofree char *new_refspec = NULL;
|
g_autofree char *new_refspec = NULL;
|
||||||
|
const char* remote;
|
||||||
glnx_unref_object OstreeSysrootUpgrader *upgrader = NULL;
|
glnx_unref_object OstreeSysrootUpgrader *upgrader = NULL;
|
||||||
glnx_unref_object OstreeAsyncProgress *progress = NULL;
|
glnx_unref_object OstreeAsyncProgress *progress = NULL;
|
||||||
gboolean changed;
|
gboolean changed;
|
||||||
|
|
@ -101,12 +102,17 @@ ot_admin_builtin_switch (int argc, char **argv, GCancellable *cancellable, GErro
|
||||||
if (!ostree_parse_refspec (new_provided_refspec, &new_remote, &new_ref, error))
|
if (!ostree_parse_refspec (new_provided_refspec, &new_remote, &new_ref, error))
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!new_remote)
|
if (!new_remote)
|
||||||
new_refspec = g_strconcat (origin_remote, ":", new_ref, NULL);
|
remote = origin_remote;
|
||||||
else
|
else
|
||||||
new_refspec = g_strconcat (new_remote, ":", new_ref, NULL);
|
remote = new_remote;
|
||||||
|
|
||||||
|
if (remote)
|
||||||
|
new_refspec = g_strconcat (remote, ":", new_ref, NULL);
|
||||||
|
else
|
||||||
|
new_refspec = g_strdup (new_ref);
|
||||||
|
|
||||||
if (strcmp (origin_refspec, new_refspec) == 0)
|
if (strcmp (origin_refspec, new_refspec) == 0)
|
||||||
{
|
{
|
||||||
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
|
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue