SF.net SVN: geany-plugins:[214] trunk/geanyvc
yurand at users.sourceforge.net
yurand at xxxxx
Mon Oct 20 10:20:44 UTC 2008
Revision: 214
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=214&view=rev
Author: yurand
Date: 2008-10-20 10:20:44 +0000 (Mon, 20 Oct 2008)
Log Message:
-----------
VC: Added update command
Modified Paths:
--------------
trunk/geanyvc/geanyvc.c
trunk/geanyvc/geanyvc.h
trunk/geanyvc/vc_bzr.c
trunk/geanyvc/vc_cvs.c
trunk/geanyvc/vc_git.c
trunk/geanyvc/vc_hg.c
trunk/geanyvc/vc_svk.c
trunk/geanyvc/vc_svn.c
Modified: trunk/geanyvc/geanyvc.c
===================================================================
--- trunk/geanyvc/geanyvc.c 2008-10-17 15:39:57 UTC (rev 213)
+++ trunk/geanyvc/geanyvc.c 2008-10-20 10:20:44 UTC (rev 214)
@@ -838,10 +838,8 @@
}
static gboolean
-command_with_question_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, G_GNUC_UNUSED gpointer gdata,
- gint cmd, const gchar * question, gboolean ask)
+command_with_question_activated(gchar ** text, gint cmd, const gchar * question, gboolean ask)
{
- gchar *text;
GtkWidget *dialog;
gint result;
gchar *dir;
@@ -876,18 +874,14 @@
vc = find_vc(dir);
g_return_val_if_fail(vc, FALSE);
- execute_command(vc, &text, NULL, doc->file_name, cmd, NULL, NULL);
- if (text)
- {
- g_free(text);
- }
+ execute_command(vc, text, NULL, doc->file_name, cmd, NULL, NULL);
g_free(dir);
}
return (result == GTK_RESPONSE_YES) ? TRUE : FALSE;
}
static void
-vcrevert_activated(GtkMenuItem * menuitem, gpointer gdata)
+vcrevert_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, G_GNUC_UNUSED gpointer gdata)
{
gboolean ret;
GeanyDocument *doc;
@@ -895,8 +889,8 @@
doc = p_document->get_current();
g_return_if_fail(doc != NULL && doc->file_name != NULL);
- ret = command_with_question_activated(menuitem, gdata, VC_COMMAND_REVERT_FILE,
- _("Do you really want to revert: %s"), TRUE);
+ ret = command_with_question_activated(NULL, VC_COMMAND_REVERT_FILE,
+ _("Do you really want to revert: %s?"), TRUE);
if (ret)
{
p_document->reload_file(doc, NULL);
@@ -905,19 +899,19 @@
static void
-vcadd_activated(GtkMenuItem * menuitem, gpointer gdata)
+vcadd_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, G_GNUC_UNUSED gpointer gdata)
{
- command_with_question_activated(menuitem, gdata, VC_COMMAND_ADD,
- _("Do you really want to add: %s"), set_add_confirmation);
+ command_with_question_activated(NULL, VC_COMMAND_ADD,
+ _("Do you really want to add: %s?"), set_add_confirmation);
}
static void
-vcremove_activated(GtkMenuItem * menuitem, gpointer gdata)
+vcremove_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, G_GNUC_UNUSED gpointer gdata)
{
gboolean ret;
- ret = command_with_question_activated(menuitem, gdata, VC_COMMAND_REMOVE,
- _("Do you really want to remove: %s"), TRUE);
+ ret = command_with_question_activated(NULL, VC_COMMAND_REMOVE,
+ _("Do you really want to remove: %s?"), TRUE);
if (ret)
{
p_document->
@@ -926,6 +920,33 @@
}
}
+static void
+vcupdate_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, G_GNUC_UNUSED gpointer gdata)
+{
+ gchar *text = NULL;
+ GeanyDocument *doc;
+ gboolean ret;
+
+ doc = p_document->get_current();
+ g_return_if_fail(doc != NULL && doc->file_name != NULL);
+
+ if (doc->changed)
+ {
+ p_document->save_file(doc, FALSE);
+ }
+
+ ret = command_with_question_activated(&text, VC_COMMAND_UPDATE,
+ _("Do you really want to update?"),
+ set_add_confirmation);
+ if (ret)
+ {
+ if (NZV(text))
+ show_output(text, "*VC-UPDATE*", NULL);
+ if (text)
+ g_free(text);
+ }
+}
+
enum
{
COLUMN_COMMIT,
@@ -1452,6 +1473,7 @@
static GtkWidget *menu_vc_revert_file = NULL;
static GtkWidget *menu_vc_add_file = NULL;
static GtkWidget *menu_vc_remove_file = NULL;
+static GtkWidget *menu_vc_update = NULL;
static GtkWidget *menu_vc_commit = NULL;
static void
@@ -1496,6 +1518,7 @@
gtk_widget_set_sensitive(menu_vc_remove_file, f_have_vc);
gtk_widget_set_sensitive(menu_vc_add_file, d_have_vc && !f_have_vc);
+ gtk_widget_set_sensitive(menu_vc_update, d_have_vc);
gtk_widget_set_sensitive(menu_vc_commit, d_have_vc);
}
@@ -1976,6 +1999,14 @@
gtk_container_add(GTK_CONTAINER(menu_vc_menu), gtk_separator_menu_item_new());
+ // Update
+ menu_vc_update = gtk_menu_item_new_with_mnemonic(_("Update"));
+ gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_update);
+ gtk_tooltips_set_tip(tooltips, menu_vc_update, _("Update from remote repositary."), NULL);
+
+ g_signal_connect((gpointer) menu_vc_update, "activate",
+ G_CALLBACK(vcupdate_activated), NULL);
+
// Commit
menu_vc_commit = gtk_menu_item_new_with_mnemonic(_("_Commit"));
gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_commit);
Modified: trunk/geanyvc/geanyvc.h
===================================================================
--- trunk/geanyvc/geanyvc.h 2008-10-17 15:39:57 UTC (rev 213)
+++ trunk/geanyvc/geanyvc.h 2008-10-20 10:20:44 UTC (rev 214)
@@ -35,6 +35,7 @@
VC_COMMAND_COMMIT,
VC_COMMAND_BLAME,
VC_COMMAND_SHOW,
+ VC_COMMAND_UPDATE,
VC_COMMAND_COUNT
};
Modified: trunk/geanyvc/vc_bzr.c
===================================================================
--- trunk/geanyvc/vc_bzr.c 2008-10-17 15:39:57 UTC (rev 213)
+++ trunk/geanyvc/vc_bzr.c 2008-10-20 10:20:44 UTC (rev 214)
@@ -45,6 +45,7 @@
static const gchar *BZR_CMD_COMMIT[] = { "bzr", "commit", "-m", MESSAGE, FILE_LIST, NULL };
static const gchar *BZR_CMD_BLAME[] = { "bzr", "blame", "--all", "--long", BASENAME, NULL };
static const gchar *BZR_CMD_SHOW[] = { "bzr", "cat", BASENAME, NULL };
+static const gchar *BZR_CMD_UPDATE[] = { "bzr", "pull", NULL };
static const VC_COMMAND commands[] = {
{
@@ -101,6 +102,11 @@
.startdir = VC_COMMAND_STARTDIR_FILE,
.command = BZR_CMD_SHOW,
.env = NULL,
+ .function = NULL},
+ {
+ .startdir = VC_COMMAND_STARTDIR_BASE,
+ .command = BZR_CMD_UPDATE,
+ .env = NULL,
.function = NULL}
};
Modified: trunk/geanyvc/vc_cvs.c
===================================================================
--- trunk/geanyvc/vc_cvs.c 2008-10-17 15:39:57 UTC (rev 213)
+++ trunk/geanyvc/vc_cvs.c 2008-10-20 10:20:44 UTC (rev 214)
@@ -42,6 +42,7 @@
static const gchar *CVS_CMD_COMMIT[] = { "cvs", NULL };
static const gchar *CVS_CMD_BLAME[] = { "cvs", "annotate", BASE_FILENAME, NULL };
static const gchar *CVS_CMD_SHOW[] = { "cvs", NULL };
+static const gchar *CVS_CMD_UPDATE[] = { "cvs", "up", "-d", NULL };
static const VC_COMMAND commands[] = {
{
@@ -98,6 +99,11 @@
.startdir = VC_COMMAND_STARTDIR_FILE,
.command = CVS_CMD_SHOW,
.env = NULL,
+ .function = NULL},
+ {
+ .startdir = VC_COMMAND_STARTDIR_BASE,
+ .command = CVS_CMD_UPDATE,
+ .env = NULL,
.function = NULL}
};
Modified: trunk/geanyvc/vc_git.c
===================================================================
--- trunk/geanyvc/vc_git.c 2008-10-17 15:39:57 UTC (rev 213)
+++ trunk/geanyvc/vc_git.c 2008-10-20 10:20:44 UTC (rev 214)
@@ -98,6 +98,7 @@
static const gchar *GIT_CMD_LOG_FILE[] = { "git", "log", "--", BASENAME, NULL };
static const gchar *GIT_CMD_LOG_DIR[] = { "git", "log", NULL };
static const gchar *GIT_CMD_BLAME[] = { "git", "blame", "--", BASENAME, NULL };
+static const gchar *GIT_CMD_UPDATE[] = { "git", "pull", NULL };
static const gchar *GIT_ENV_DIFF_FILE[] = { "PAGER=cat", NULL };
static const gchar *GIT_ENV_DIFF_DIR[] = { "PAGER=cat", NULL };
@@ -108,6 +109,7 @@
static const gchar *GIT_ENV_LOG_FILE[] = { "PAGER=cat", NULL };
static const gchar *GIT_ENV_LOG_DIR[] = { "PAGER=cat", NULL };
static const gchar *GIT_ENV_BLAME[] = { "PAGER=cat", NULL };
+static const gchar *GIT_ENV_UPDATE[] = { "PAGER=cat", NULL };
static const VC_COMMAND commands[] = {
{
@@ -164,7 +166,12 @@
.startdir = VC_COMMAND_STARTDIR_FILE,
.command = NULL,
.env = GIT_ENV_SHOW,
- .function = git_show}
+ .function = git_show},
+ {
+ .startdir = VC_COMMAND_STARTDIR_BASE,
+ .command = GIT_CMD_UPDATE,
+ .env = GIT_ENV_UPDATE,
+ .function = NULL}
};
static gboolean
Modified: trunk/geanyvc/vc_hg.c
===================================================================
--- trunk/geanyvc/vc_hg.c 2008-10-17 15:39:57 UTC (rev 213)
+++ trunk/geanyvc/vc_hg.c 2008-10-20 10:20:44 UTC (rev 214)
@@ -45,6 +45,7 @@
static const gchar *HG_CMD_COMMIT[] = { "hg", "commit", "-m", MESSAGE, FILE_LIST, NULL };
static const gchar *HG_CMD_BLAME[] = { "hg", "annotate", BASENAME, NULL };
static const gchar *HG_CMD_SHOW[] = { "hg", "cat", BASENAME, NULL };
+static const gchar *HG_CMD_UPDATE[] = { "hg", "pull", CMD_SEPARATOR, "hg", "update", NULL };
static const VC_COMMAND commands[] = {
{
@@ -101,6 +102,11 @@
.startdir = VC_COMMAND_STARTDIR_FILE,
.command = HG_CMD_SHOW,
.env = NULL,
+ .function = NULL},
+ {
+ .startdir = VC_COMMAND_STARTDIR_BASE,
+ .command = HG_CMD_UPDATE,
+ .env = NULL,
.function = NULL}
};
Modified: trunk/geanyvc/vc_svk.c
===================================================================
--- trunk/geanyvc/vc_svk.c 2008-10-17 15:39:57 UTC (rev 213)
+++ trunk/geanyvc/vc_svk.c 2008-10-20 10:20:44 UTC (rev 214)
@@ -45,8 +45,8 @@
static const gchar *SVK_CMD_COMMIT[] = { "svk", "commit", "-m", MESSAGE, FILE_LIST, NULL };
static const gchar *SVK_CMD_BLAME[] = { "svk", "blame", BASENAME, NULL };
static const gchar *SVK_CMD_SHOW[] = { "svk", "cat", BASENAME, NULL };
+static const gchar *SVK_CMD_UPDATE[] = { "svk", "up", NULL };
-
static const VC_COMMAND commands[] = {
{
.startdir = VC_COMMAND_STARTDIR_FILE,
@@ -102,6 +102,11 @@
.startdir = VC_COMMAND_STARTDIR_FILE,
.command = SVK_CMD_SHOW,
.env = NULL,
+ .function = NULL},
+ {
+ .startdir = VC_COMMAND_STARTDIR_BASE,
+ .command = SVK_CMD_UPDATE,
+ .env = NULL,
.function = NULL}
};
Modified: trunk/geanyvc/vc_svn.c
===================================================================
--- trunk/geanyvc/vc_svn.c 2008-10-17 15:39:57 UTC (rev 213)
+++ trunk/geanyvc/vc_svn.c 2008-10-20 10:20:44 UTC (rev 214)
@@ -47,6 +47,7 @@
{ "svn", "commit", "--non-interactive", "-m", MESSAGE, FILE_LIST, NULL };
static const gchar *SVN_CMD_BLAME[] = { "svn", "blame", BASENAME, NULL };
static const gchar *SVN_CMD_SHOW[] = { "svn", "cat", BASENAME, NULL };
+static const gchar *SVN_CMD_UPDATE[] = { "svn", "up", NULL };
static const VC_COMMAND commands[] = {
{
@@ -103,6 +104,11 @@
.startdir = VC_COMMAND_STARTDIR_FILE,
.command = SVN_CMD_SHOW,
.env = NULL,
+ .function = NULL},
+ {
+ .startdir = VC_COMMAND_STARTDIR_BASE,
+ .command = SVN_CMD_UPDATE,
+ .env = NULL,
.function = NULL}
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Plugins-Commits
mailing list