+ br.name = gbr.get_name();
+ br.lastrev = gbr.get_target().to_string();
+ string rname ;
+ try {
+ rname = gbr.get_upstream() != null ? gbr.get_upstream().get_name() : "";
+ } catch(Error e) {
+ GLib.debug("Skip branch = got error");
+ continue;
+ }
+ repo.branches.set(gbr.get_name(), br);
+ if (rname.has_prefix("refs/remotes/origin/")) {
+ rname = rname.substring(20);
+ if (remotes.has_key(rname)) {
+ br.remote = rname;
+ br.remoterev = remotes.get(rname).to_string();
+ remotes_used.set(rname,true);
+ size_t ahead, behind;
+ repo.repo.get_ahead_behind(
+ gbr.get_target(),
+ remotes.get(rname),
+ out ahead,
+ out behind
+ );
+ br.ahead = (int)ahead;
+ br.behind = (int) behind;
+
+ }
+
+
+ // age?
+ // behind or infront..
+ }
+ if (br.active) {
+ GLib.debug("repo: %s currentBranch = %s", repo.name, br.name);
+ repo.currentBranch = br;
+ }