public bool debug = false;
public Gee.HashMap<string,bool> ignore_files;
+ public GitBranch currentBranch;
/**
* index of.. matching gitpath..
}
} catch (Error e) {
- print("Error: %s\n",e.message);
+ GLib.debug("Error: %s",e.message);
break;
}
//Repo.superclass.constructor.call(this,cfg);
}
+
+
+ public bool is_autocommit ()
+ {
+ return !FileUtils.test(this.gitdir + "/.gitlive-disable-autocommit" , FileTest.EXISTS);
+ }
+ public bool is_autopush ()
+ {
+ return !FileUtils.test(this.gitdir + "/.gitlive-disable-autopush" , FileTest.EXISTS);
+ }
+
+ Gee.HashMap<string,GitBranch> branches;
+
+ public void loadBranches()
+ {
+ this.branches = new Gee.HashMap<string,GitBranch>();
+
+ string[] cmd = { "branch", "--no-color", "--verbose", "--no-abbrev" , "-a" };
+ var res = this.git( cmd );
+ var lines = res.split("\n");
+ for (var i = 0; i < lines.length ; i++) {
+ var br = new GitBranch(this);
+ if (!br.parseBranchListItem(lines[i])) {
+ continue;
+ }
+ GLib.debug("add branch %s", br.realName());
+
+ branches.set(br.realName(), br);
+ if (br.active) {
+ this.currentBranch = br;
+ }
+ }
+
+ }
+ public string branchesToString()
+ {
+ var ret = "";
+ foreach( var br in this.branches.values) {
+ if (br.name == "") {
+ continue;
+ }
+ ret += ret.length > 0 ? "," : "";
+ ret += br.name;
+
+ }
+ return ret;
+
+ }
+
+ public void setActiveTicket(RooTicket ticket)
+ {
+
+
+ }
+
+ public void createBranchNamed(string branchname)
+ {
+ string[] cmd = { "checkout", "-b" , branchname };
+ this.git(cmd);
+
+ }
+
+
/**
* add:
* add files to track.
}
- public delegate void GitAsyncCallback (string str);
- public string pull_async(GitAsyncCallback cb)
+ public delegate void GitAsyncCallback (GitRepo repo, int err, string str);
+ public void pull_async(GitAsyncCallback cb)
{
string[] cmd = { "pull" , "--no-edit" };
- return this.git_async( cmd , cb);
+ this.git_async( cmd , cb);
+
}
//this.lastCmd = args.join(" ");
//if(this.debug) {
- stdout.printf( "CWD=%s\n", this.git_working_dir );
- print( "cmd: %s\n", string.joinv (" ", args));
+ GLib.debug( "CWD=%s", this.git_working_dir );
+ GLib.debug( "cmd: %s", string.joinv (" ", args));
//}
string[] env = {};
var sp = new Spawn(cfg);
- stdout.printf( "GOT: %s\n" , sp.output);
+ GLib.debug( "GOT: %s" , sp.output);
// parse output for some commands ?
return sp.output;
}
-
- public string git_async( string[] args_in, GitAsyncCallback cb ) throws Error, SpawnError
+ unowned GitAsyncCallback git_async_on_callback;
+ public void git_async( string[] args_in, GitAsyncCallback cb ) throws Error, SpawnError
{
// convert arguments.
-
+ this.git_async_on_callback = cb;
string[] args = { "git" };
//args += "--git-dir";
//args += this.gitdir;
//this.lastCmd = args.join(" ");
//if(this.debug) {
- stdout.printf( "CWD=%s\n", this.git_working_dir );
- print( "cmd: %s\n", string.joinv (" ", args));
+ GLib.debug( "CWD=%s", this.git_working_dir );
+ //print( "cmd: %s\n", string.joinv (" ", args));
//}
string[] env = {};
// may throw error...
var sp = new Spawn(cfg);
- sp.run((err, output) => {
- cb(output);
- });
- stdout.printf( "GOT: %s\n" , sp.output);
- // parse output for some commands ?
- return sp.output;
+ //sp.ref();
+ //this.ref();
+ sp.run(this.git_async_on_complete);
+
}
+
+ void git_async_on_complete(int err, string output)
+ {
+ GLib.debug("GOT %d : %s", err, output);
+ this.git_async_on_callback(this, err, output);
+// this.unref();
+ // sp.unref();
+
+
+ }
+
}