X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=GitRepo.vala;h=034d535cf852d482fff3024648d854f165b3dedb;hb=1245856c12bd5161158d057fc603ae5f4b0dfcee;hp=17556aedcb3e906d27d30f25d51ba8969c2eb529;hpb=f93028e569039b48af6351e2d37f80d15d94ff5a;p=gitlive diff --git a/GitRepo.vala b/GitRepo.vala index 17556aed..034d535c 100644 --- a/GitRepo.vala +++ b/GitRepo.vala @@ -32,7 +32,7 @@ public class GitRepo : Object } return _GitRepo; } - + /** * index of.. matching gitpath.. */ @@ -247,9 +247,7 @@ public class GitRepo : Object } GitMonitor.gitmonitor.start(); } - - - + public bool doMerge(string action, string ticket_id, string commit_message) { @@ -258,14 +256,14 @@ public class GitRepo : Object var ret = ""; if (action == "CLOSE" || action == "LEAVE") { - try { - var oldbranch = this.currentBranch.name; - this.setActiveTicket(null, "master"); + var oldbranch = this.currentBranch.name; + this.setActiveTicket(null, "master"); string [] cmd = { "merge", "--squash", oldbranch }; this.git( cmd ); - cmd = { "commit", "--m", commit_message }; + cmd = { "commit", "-a" , "-m", commit_message }; this.git( cmd ); + this.push(); this.loadBranches(); // updates lastrev.. var notification = new Notify.Notification( @@ -349,13 +347,13 @@ public class GitRepo : Object public bool createBranchNamed(string branchname) { - + var stash = false; if (this.branches.has_key(branchname)) { // this is where it get's tricky... try { string[] cmd = { "ls-files" , "-m" }; // list the modified files.. var ret = this.git(cmd); - var stash = ret.length> 1 ; + stash = ret.length> 1 ; cmd = { "stash" }; @@ -369,33 +367,39 @@ public class GitRepo : Object } try { - cmd = { "merge", "master" }; - this.git(cmd); + if (branchname != "master") { + string[] cmd = { "merge", "master" }; + this.git(cmd); + cmd = { "commit", "-a" , "-m", commit_message }; + this.git( cmd ); + } } catch(Error e) { - try { - cmd = { "mergetool" }; - this.git(cmd); - cmd = { "commit" "-m" "Fix merge conflicts from master" }; - this.git(cmd); - } catch(Error ee) { - GitMonitor.gitmonitor.pauseError(ee.message); - return false; - } + string[] cmd = { "checkout", "master" }; + this.git(cmd); + GitMonitor.gitmonitor.pauseError( + "Use\n\na) git checkout %s\nb) git mergetool\nc) git commit\nd) git push\n d) stash pop \ne) start gitlive again\n".printf( + branchname) + + e.message + ); + return false; + } - try { - cmd = { "stash", "pop" }; + try { + string[] cmd = { "stash", "pop" }; if (stash) { this.git(cmd); } } catch(Error ee) { GitMonitor.gitmonitor.pauseError(ee.message); return false; } - + this.push(); } else { try { string[] cmd = { "checkout", "-b" , branchname }; this.git(cmd); + + this.push(); } catch(Error ee) { GitMonitor.gitmonitor.pauseError(ee.message); return false; @@ -412,12 +416,7 @@ public class GitRepo : Object notification.set_timeout(5); notification.show(); - - } catch(Error e) { - GitMonitor.gitmonitor.pauseError(e.message); - return false; - - } + this.loadBranches(); // update branch list... GitMonitor.gitmonitor.runQueue(); // commit any outstanding... return true; @@ -583,7 +582,7 @@ public class GitRepo : Object public string push () throws Error, SpawnError { // should - return this.git({ "push", "origin", "HEAD" }); + return this.git({ "push", "--all" }); }