forked from enlightenment/edi
scm: store scm credentials and fix UI stash and commit.
First, make sure the project stores user/email for SCM (again!). Also allow user to change the user/email > once. Add a check to stash (from menu) for credentials also. This allows us to change the remote user and email more than once. Also it ensures that
This commit is contained in:
parent
ca25dea2d8
commit
417e895356
|
@ -1120,6 +1120,12 @@ static void
|
|||
_edi_menu_scm_stash_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
if (!_edi_project_credentials_check())
|
||||
{
|
||||
_edi_project_credentials_missing();
|
||||
return;
|
||||
}
|
||||
|
||||
edi_screens_message_confirm(_edi_main_win, _("Are you sure you wish to stash these changes?"),
|
||||
_edi_scm_stash_do_cb, NULL);
|
||||
}
|
||||
|
|
|
@ -614,6 +614,15 @@ _edi_settings_project_remote_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|||
elm_object_disabled_set(entry, EINA_TRUE);
|
||||
}
|
||||
|
||||
static void _edi_settings_scm_credentials_set(const char *user_fullname, const char *user_email)
|
||||
{
|
||||
if (!edi_scm_enabled())
|
||||
return;
|
||||
|
||||
if (user_fullname && user_fullname[0] && user_email && user_email[0])
|
||||
edi_scm_credentials_set(user_fullname, user_email);
|
||||
}
|
||||
|
||||
static void
|
||||
_edi_settings_project_email_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
||||
void *event EINA_UNUSED)
|
||||
|
@ -627,6 +636,8 @@ _edi_settings_project_email_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|||
|
||||
_edi_project_config->user_email = eina_stringshare_add(elm_object_text_get(entry));
|
||||
_edi_project_config_save();
|
||||
|
||||
_edi_settings_scm_credentials_set(_edi_project_config->user_fullname, _edi_project_config->user_email);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -642,6 +653,8 @@ _edi_settings_project_name_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|||
|
||||
_edi_project_config->user_fullname = eina_stringshare_add(elm_object_text_get(entry));
|
||||
_edi_project_config_save();
|
||||
|
||||
_edi_settings_scm_credentials_set(_edi_project_config->user_fullname, _edi_project_config->user_email);
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
|
|
|
@ -434,8 +434,16 @@ _edi_scm_git_remote_name_get(void)
|
|||
if (!engine)
|
||||
return NULL;
|
||||
|
||||
if (!_remote_name)
|
||||
_remote_name = _edi_scm_exec_response("git config --get user.name");
|
||||
if (_remote_name)
|
||||
free(_remote_name);
|
||||
|
||||
_remote_name = _edi_scm_exec_response("git config --get user.name");
|
||||
|
||||
if (_remote_name && !_remote_name[0])
|
||||
{
|
||||
free(_remote_name);
|
||||
_remote_name = NULL;
|
||||
}
|
||||
|
||||
return _remote_name;
|
||||
}
|
||||
|
@ -449,8 +457,16 @@ _edi_scm_git_remote_email_get(void)
|
|||
if (!engine)
|
||||
return NULL;
|
||||
|
||||
if (!_remote_email)
|
||||
_remote_email = _edi_scm_exec_response("git config --get user.email");
|
||||
if (_remote_email)
|
||||
free(_remote_email);
|
||||
|
||||
_remote_email = _edi_scm_exec_response("git config --get user.email");
|
||||
|
||||
if (_remote_email && !_remote_email[0])
|
||||
{
|
||||
free(_remote_email);
|
||||
_remote_email = NULL;
|
||||
}
|
||||
|
||||
return _remote_email;
|
||||
}
|
||||
|
@ -464,8 +480,16 @@ _edi_scm_git_remote_url_get(void)
|
|||
if (!engine)
|
||||
return NULL;
|
||||
|
||||
if (!_remote_url)
|
||||
_remote_url = _edi_scm_exec_response("git remote get-url origin");
|
||||
if (_remote_url)
|
||||
free(_remote_url);
|
||||
|
||||
_remote_url = _edi_scm_exec_response("git remote get-url origin");
|
||||
|
||||
if (_remote_url && !_remote_url[0])
|
||||
{
|
||||
free(_remote_url);
|
||||
_remote_url = NULL;
|
||||
}
|
||||
|
||||
return _remote_url;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue