return ret;
}
- //RooTicket? ticket = null;
-
- public static void doMerges(string action, string ticket_id, string commit_message)
- {
- GitMonitor.gitmonitor.stop();
-
- var commitrevs = "";
- var sucess = true;
- foreach(var repo in GitRepo.singleton().cache.values) {
- if (repo.activeTicket != null && repo.activeTicket.id == ticket_id) {
- var res = repo.doMerge(action,ticket_id, commit_message);
- if (!res) {
- sucess = false;
- continue;
- }
- commitrevs += commitrevs.length > 0 ? " " : "";
- commitrevs += repo.currentBranch.lastrev;
- }
- }
- if (sucess && action == "CLOSE") {
- RooTicket.singleton().getById(ticket_id).close(commitrevs);
- }
- GitMonitor.gitmonitor.start();
- }
++ RooTicket? ticket = null;
- public static void doMerges(string action, string ticket_id, string commit_message)
-
-
-
- public bool doMerge(string action, string ticket_id, string commit_message)
++ public void setActiveTicket(RooTicket ticket, string branchname)
{
- GitMonitor.gitmonitor.stop();
-
- var commitrevs = "";
- var sucess = true;
- foreach(var repo in GitRepo.singleton().cache.values) {
- if (repo.activeTicket != null && repo.activeTicket.id == ticket_id) {
- var res = repo.doMerge(action,ticket_id, commit_message);
- if (!res) {
- sucess = false;
- continue;
- }
- commitrevs += commitrevs.length > 0 ? " " : "";
- commitrevs += repo.currentBranch.lastrev;
- }
- }
- if (sucess && action == "CLOSE") {
- RooTicket.singleton().getById(ticket_id).close(commitrevs);
- }
- GitMonitor.gitmonitor.start();
- }
-
-
- public bool doMerge(string action, string ticket_id, string commit_message)
- {
- // in theory we should check to see if other repo's have got the same branch and merge all them at the same time.
- // also need to decide which branch we will merge into?
- var ret = "";
- if (action == "CLOSE" || action == "LEAVE") {
-
+ // in theory we should check to see if other repo's have got the same branch and merge all them at the same time.
+ // also need to decide which branch we will merge into?
+ var ret = "";
+ if (action == "CLOSE" || action == "LEAVE") {
+
- try {
- var oldbranch = this.currentBranch.name;
- this.setActiveTicket(null, "master");
- string [] cmd = { "merge", "--squash", oldbranch };
- this.git( cmd );
- cmd = { "commit", "--m", commit_message };
- this.git( cmd );
- this.loadBranches(); // updates lastrev..
-
- var notification = new Notify.Notification(
- "Merged branch %s to master".printf(oldbranch),
- "",
- "dialog-information"
-
- );
-
- notification.set_timeout(5);
- notification.show();
-
- // close ticket..
- return true;
-
- } catch (Error e) {
+ try {
+ var oldbranch = this.currentBranch.name;
+ this.setActiveTicket(null, "master");
+ string [] cmd = { "merge", "--squash", oldbranch };
+ this.git( cmd );
+ cmd = { "commit", "--m", commit_message };
+ this.git( cmd );
+ this.loadBranches(); // updates lastrev..
+
+ var notification = new Notify.Notification(
+ "Merged branch %s to master".printf(oldbranch),
+ "",
+ "dialog-information"
+
+ );
- GitMonitor.gitmonitor.pauseError(e.message);
- return false;
- }
- // error~?? -- show the error dialog...
- return false;
- }
- if (action == "MASTER") {
- // merge master into ours..
- try {
- string[] cmd = { "merge", "master" };
- this.git( cmd );
- var notification = new Notify.Notification(
- "Merged code from master to %s".printf(this.currentBranch.name),
- "",
- "dialog-information"
-
- );
- notification.set_timeout(5);
- notification.show();
-
- return true;
- } catch (Error e) {
- GitMonitor.gitmonitor.pauseError(e.message);
- return false;
- }
- }
- if (action == "EXIT") {
- try {
- var oldbranch = this.currentBranch.name;
- this.setActiveTicket(null, "master");
- this.loadBranches();
- var notification = new Notify.Notification(
- "Left branch %s".printf(oldbranch),
- "",
- "dialog-information"
-
- );
- notification.set_timeout(5);
- notification.show();
-
- return true;
- } catch (Error e) {
- GitMonitor.gitmonitor.pauseError(e.message);
+ notification.set_timeout(5);
+ notification.show();
+
+ // close ticket..
+ return true;
+
+ } catch (Error e) {
- return false;
- }
- // error~?? -- show the error dialog...
+ GitMonitor.gitmonitor.pauseError(e.message);
+ return false;
+ }
+ // error~?? -- show the error dialog...
+ return false;
+ }
+ if (action == "MASTER") {
+ // merge master into ours..
+ try {
+ string[] cmd = { "merge", "master" };
+ this.git( cmd );
+ var notification = new Notify.Notification(
+ "Merged code from master to %s".printf(this.currentBranch.name),
+ "",
+ "dialog-information"
+
+ );
+ notification.set_timeout(5);
+ notification.show();
+
+ return true;
+ } catch (Error e) {
+ GitMonitor.gitmonitor.pauseError(e.message);
+ return false;
+ }
+ }
+ if (action == "EXIT") {
+ try {
+ var oldbranch = this.currentBranch.name;
+ this.setActiveTicket(null, "master");
+ this.loadBranches();
+ var notification = new Notify.Notification(
+ "Left branch %s".printf(oldbranch),
+ "",
+ "dialog-information"
+
+ );
+ notification.set_timeout(5);
+ notification.show();
+
+ return true;
+ } catch (Error e) {
+ GitMonitor.gitmonitor.pauseError(e.message);
- }
- return false;
+ return false;
+ }
+ // error~?? -- show the error dialog...
+
+ }
+ return false;
}
-
-
- public void setActiveTicket(RooTicket? ticket, string branchname)
+ public bool setActiveTicket(RooTicket ticket, string branchname)
{
- this.createBranchNamed(branchname);
- if (ticket != null) {
- FileUtils.set_contents(this.gitdir + "/.gitlive-active-ticket" , ticket.id);
- } else {
- if (FileUtils.test(this.gitdir + "/.gitlive-active-ticket",FileTest.EXISTS)) {
- FileUtils.remove(this.gitdir + "/.gitlive-active-ticket");
- }
+ if (!this.createBranchNamed(branchname)) {
+ return false;
}
-
+ FileUtils.set_contents(this.gitdir + "/.gitlive-active-ticket" , ticket.id);
this.activeTicket = ticket;
+ return true;
}
-
-
- public void loadTicket()
+ public bool createBranchNamed(string branchname)
{
- if (this.activeTicket != null) { // assumes merge will clear this...
- return;
- }
- if (!FileUtils.test(this.gitdir + "/.gitlive-active-ticket",FileTest.EXISTS)) {
- return;
- }
- string ticket_id;
- FileUtils.get_contents(this.gitdir + "/.gitlive-active-ticket" , out ticket_id);
- this.activeTicket = RooTicket.singleton().getById(ticket_id);
- }
-
-
-
-
-
- public void createBranchNamed(string branchname)
- {
- if (this.branches.has_key(branchname)) {
- string[] cmd = { "checkout", branchname };
- this.git(cmd);
- } else {
- string[] cmd = { "checkout", "-b" , branchname };
- this.git(cmd);
- }
-
- try {
- if (this.branches.has_key(branchname)) {
- // this is where it get's tricky...
-
- string[] cmd = { "ls-files" , "-m" }; // list the modified files..
- var ret = this.git(cmd);
- var stash = ret.length> 1 ;
-
-
- cmd = { "stash" };
- if (stash) { this.git(cmd); }
-
- cmd = { "checkout", branchname };
- this.git(cmd);
-
- cmd = { "merge", "master" };
- this.git(cmd);
-
- cmd = { "stash", "pop" };
- if (stash) { this.git(cmd); }
-
-
- } else {
- string[] cmd = { "checkout", "-b" , branchname };
- this.git(cmd);
- }
- var notification = new Notify.Notification(
- "Changed to branch %s".printf(branchname),
- "",
- "dialog-information"
-
- );
-
- notification.set_timeout(5);
- notification.show();
-
-
- } catch(Error e) {
- GitMonitor.gitmonitor.pauseError(e.message);
- return false;
-
- }
++ string[] cmd = { "checkout", "-b" , branchname };
++ this.git(cmd);
this.loadBranches(); // update branch list...
GitMonitor.gitmonitor.runQueue(); // commit any outstanding...
+ return true;
}
-
-
/**
* add: