X-Git-Url: http://git.roojs.org/?p=gitlive;a=blobdiff_plain;f=GitRepo.vala;h=cf962d637f6ceeb3463cd3cb5161439bff09ca7f;hp=afb8ab4d992e86d99e303f0749338b8da2bd4dbe;hb=1ca3cefd12af4ec1e3cfa3469fbcfc1afc129723;hpb=0a028a79a26974765e7552ce4a8afb6c1e9d62a1 diff --git a/GitRepo.vala b/GitRepo.vala index afb8ab4d..cf962d63 100644 --- a/GitRepo.vala +++ b/GitRepo.vala @@ -167,6 +167,7 @@ public class GitRepo : Object cache.set( path, this); } this.loadBranches(); + this.loadActiveTicket(); } public bool is_wip_branch() @@ -179,10 +180,67 @@ public class GitRepo : Object { return !FileUtils.test(this.gitdir + "/.gitlive-disable-autocommit" , FileTest.EXISTS); } + public void set_autocommit(bool val) + { + + var cur = this.is_autocommit(); + GLib.debug("SET auto commit : %s <= %s", val ? "ON" : "OFF", cur ? "ON" : "OFF"); + if (cur == val) { + return; // no change.. + } + if (!val) { + FileUtils.set_contents(this.gitdir + "/.gitlive-disable-autocommit" , "x"); + } else { + // it exists... + FileUtils.remove(this.gitdir + "/.gitlive-disable-autocommit" ); + } + + } + + public bool is_auto_branch () + { + return FileUtils.test(this.gitdir + "/.gitlive-enable-auto-branch" , FileTest.EXISTS); + } + + public void set_auto_branch(bool val) + { + + var cur = this.is_auto_branch(); + GLib.debug("SET auto branch : %s <= %s", val ? "ON" : "OFF", cur ? "ON" : "OFF"); + + if (cur == val) { + return; // no change.. + } + if (val) { + FileUtils.set_contents(this.gitdir + "/.gitlive-enable-auto-branch" , "x"); + } else { + // it exists... + FileUtils.remove(this.gitdir + "/.gitlive-enable-auto-branch" ); + } + + } public bool is_autopush () { return !FileUtils.test(this.gitdir + "/.gitlive-disable-autopush" , FileTest.EXISTS); } + public void set_autopush(bool val) + { + + var cur = this.is_autopush(); + GLib.debug("SET auto push : %s <= %s", val ? "ON" : "OFF", cur ? "ON" : "OFF"); + if (cur == val) { + return; // no change.. + } + if (!val) { + FileUtils.set_contents(this.gitdir + "/.gitlive-disable-autopush" , ""); + } else { + // it exists... + FileUtils.remove(this.gitdir + "/.gitlive-disable-autopush" ); + } + + } + + Gee.HashMap branches; @@ -259,14 +317,14 @@ public class GitRepo : Object try { var oldbranch = this.currentBranch.name; this.setActiveTicket(null, "master"); - string [] cmd = { "merge", "--squash", oldbranch }; - this.git( cmd ); - cmd = { "commit", "-a" , "-m", commit_message }; - this.git( cmd ); - this.push(); - this.loadBranches(); // updates lastrev.. + string [] cmd = { "merge", "--squash", oldbranch }; + this.git( cmd ); + cmd = { "commit", "-a" , "-m", commit_message }; + this.git( cmd ); + this.push(); + this.loadBranches(); // updates lastrev.. - var notification = new Notify.Notification( + var notification = new Notify.Notification( "Merged branch %s to master".printf(oldbranch), "", "dialog-information" @@ -332,14 +390,35 @@ public class GitRepo : Object } return false; } + + public void loadActiveTicket() + { + this.activeTicket = null; + 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); + if (ticket_id.length < 1) { + return; + } + this.activeTicket = RooTicket.singleton().getById(ticket_id.strip()); + + + } - public bool setActiveTicket(RooTicket ticket, string branchname) + + public bool setActiveTicket(RooTicket? ticket, string branchname) { if (!this.createBranchNamed(branchname)) { return false; } - FileUtils.set_contents(this.gitdir + "/.gitlive-active-ticket" , ticket.id); + if (ticket != null) { + FileUtils.set_contents(this.gitdir + "/.gitlive-active-ticket" , ticket.id); + } else { + FileUtils.remove(this.gitdir + "/.gitlive-active-ticket" ); + } this.activeTicket = ticket; return true; } @@ -399,8 +478,10 @@ public class GitRepo : Object string[] cmd = { "checkout", "-b" , branchname }; this.git(cmd); - - this.push(); + + cmd = { "push", "-u" , "origin" ,"HEAD" }; + this.git(cmd); + } catch(Error ee) { GitMonitor.gitmonitor.pauseError(ee.message); return false; @@ -419,7 +500,7 @@ public class GitRepo : Object this.loadBranches(); // update branch list... - GitMonitor.gitmonitor.runQueue(); // commit any outstanding... + //GitMonitor.gitmonitor.runQueue(); // no point - we have hidden the queue.. return true; } @@ -583,7 +664,7 @@ public class GitRepo : Object public string push () throws Error, SpawnError { // should - return this.git({ "push", "--all" }); + return this.git({ "push" }); }