public bool is_remote;
public string remote = "";
public string remoterev = "";
+ public string age = "";
public string toString()
{
"lastrev: " + lastrev + "\n" +
"name: " + name + "\n" +
"remote: " + remote + "\n" +
- "remoterev: " + remoterev + "\n";
+ "remoterev: " + remoterev + "\n" +
+ "age: " + age + "\n" ;
}
var bl = repo.git({
"for-each-ref",
- "--format", "%(refname:short):remotes/%(upstream:short)",
+ "--format", "%(refname:short):remotes/%(upstream:short):remotes/%(authordate:relative)",
"refs/heads"
}).split("\n");
var lname= ar[0];
var rname = "remotes/" + ar[1];
+
//print(rname);
// we should always have a local version of it.
if (branches.has_key(lname)) {
branches.get(lname).remote = rname;
+ branches.get(lname).age = ar[2];
}
- if (!branches.has_key(rname)) {
+ if (!branches.has_key(rname) || !branches.has_key(lname) ) {
continue;
}
branches.get(lname).remoterev = branches.get(rname).lastrev;
branches.get(rname).name = lname;
}
- foreach(var br in local.values) {
+ foreach(var br in branches.values) {
GLib.debug("BRANCH:\n%s\n" , br.toString());
+ if (br.name.length > 0 || ! /^remotes\/origin\//.match(br.remote)) {
+ GLib.debug("SKIP - track exists");
+ continue;
+ }
+ var newname = br.remote.replace("remotes/origin/","");
+ if (branches.has_key(newname)) {
+ GLib.debug("SKIP - have branch already");
+ continue;
+ }
+
+
+ repo.git( { "branch" ,"--track" , newname, "origin/" + newname} );
+ //
+ br.name = newname;
+ local.set(br.name, br);
}
/*