public string gitdir;
public string git_working_dir;
public bool debug = false;
+
+ public Gee.HashMap<string,bool> ignore_files;
/**
* index of.. matching gitpath..
}
-
public static Array<GitRepo> list()
{
return list_cache;
}
-
+
FileInfo next_file;
while (true) {
public GitRepo(string path) {
// cal parent?
this.name = File.new_for_path(path).get_basename();
-
+ this.ignore_files = new Gee.HashMap<string,bool>();
this.git_working_dir = path;
this.gitdir = path + "/.git";
}
return ret;
}
+
+ public bool is_ignore(string fname) throws Error, SpawnError
+ {
+ if (fname == ".gitignore") {
+ this.ignore_files.clear();
+ }
+
+ if (this.ignore_files.has_key(fname)) {
+ return this.ignore_files.get(fname);
+ }
+
+ try {
+ var ret = this.git( { "check-ignore" , fname } );
+ this.ignore_files.set(fname, ret.length > 0);
+ return ret.length > 0;
+ } catch (SpawnError e) {
+ this.ignore_files.set(fname, false);
+ return false;
+ }
+
+ }
+
/**
* remove:
}
+
/**
* commit:
* perform a commit.
public string pull () throws Error, SpawnError
{
// should probably hand error conditions better...
- string[] cmd = { "pull" , "--no-edit", "origin", "HEAD" };
+ string[] cmd = { "pull" , "--no-edit" };
return this.git( cmd );
}
+
+ public void pull_async(Callback_pull cb) {
+
+
+ }
+
/**
* push:
* Send local changes to remote repo(s)
return this.git({ "push", "origin", "HEAD" });
}
+
+
+
/**
* git:
* The meaty part.. run spawn.. with git..