var rev = r.name + '..' + w.name;
this.release = r.name;
+ this.working = w.name;
// this takes some time, lets. try and dialog it..
var diff = Merger.repo.diff(files, model.release, model.rev);
-
+ print("history?");
+
- var log = Merger.repo.history(files, 1, 'rev', model.rev + '..' + model.release);
+ var history = Merger.repo.history(files, 1, 'rev', model.rev);
- print(JSON.stringify(log));
+ print("History" + JSON.stringify(history, null,4));
Commit = imports.Commit.Commit;
- Commit.repo = Merger.repo;
+
Commit.el.set_modal(true);
Commit.el.set_transient_for(Merger.el);
- Commit.show({
+ var ce = Commit.show({
+ repo : Merger.repo,
files : files,
release : model.release,
- rev : model.rev
+ rev : model.rev,
+ author : history[0].changeby,
+ changed : history[0].changed_raw
+
});
-
+ if (ce === false ) {
+ return;
+ }
+
+
+ var diff = Merger.repo.diff(files, model.release, model.rev);
+
+
+ print(JSON.stringify(ce,null,4));
+ //.... commit!!!
+
+ imports.GitMonitor.GitMonitor.pause();
+ try {
+
+ Merger.repo.checkout(model.release);
+
+ print("Call apply patch");
+
+ Merger.repo.applyPatch(diff);
+
+ var author = Merger.repo.parseAuthor(ce.author);
+
+ print("Add new files.");
+ // add all the files..
+ Merger.repo.add(files);
+
+ print("Commit changes.");
+ Merger.repo.commit({
+ name : author.name,
+ email : author.email,
+ author : ce.author,
+ changed : ce.changed,
+ reason : ce.message,
+ files : files
+
+ });
+
+
+ } catch (e) {
+ //message..
+
+ var msg = new Gtk.MessageDialog({
+ message_type: Gtk.MessageType.ERROR,
+ buttons : Gtk.ButtonsType.OK,
+ text: e.message
+ });
+ msg.run();
+ msg.destroy();
+ Merger.repo.stash(); // revert change.. - so we can go back...
+ }
+ Merger.repo.checkout(model.working);
+ imports.GitMonitor.GitMonitor.resume();
+
+
+
+
+
+
}