[gitg] Fix unstage_patch by reversing applying patch
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gitg] Fix unstage_patch by reversing applying patch
- Date: Sun, 5 Jan 2014 19:11:08 +0000 (UTC)
commit 92d891bd4ed4d52af497cd4b53ac221976abf375
Author: Jesse van den Kieboom <jessevdk gmail com>
Date: Sun Jan 5 20:10:46 2014 +0100
Fix unstage_patch by reversing applying patch
libgitg/gitg-stage.vala | 37 ++++++++++++++++++++++++++++++++++++-
1 files changed, 36 insertions(+), 1 deletions(-)
---
diff --git a/libgitg/gitg-stage.vala b/libgitg/gitg-stage.vala
index 9cca512..de55461 100644
--- a/libgitg/gitg-stage.vala
+++ b/libgitg/gitg-stage.vala
@@ -55,6 +55,39 @@ public class PatchSet
public string filename;
public Patch[] patches;
+
+ public PatchSet reversed()
+ {
+ var ret = new PatchSet();
+
+ ret.filename = filename;
+ ret.patches = new Patch[patches.length];
+
+ for (int i = 0; i < patches.length; i++)
+ {
+ var orig = patches[i];
+
+ var p = Patch() {
+ old_offset = orig.new_offset,
+ new_offset = orig.old_offset,
+ length = orig.length
+ };
+
+ switch (patches[i].type)
+ {
+ case Type.ADD:
+ p.type = Type.REMOVE;
+ break;
+ case Type.REMOVE:
+ p.type = Type.ADD;
+ break;
+ }
+
+ ret.patches[i] = p;
+ }
+
+ return ret;
+ }
}
public class Stage : Object
@@ -755,7 +788,9 @@ public class Stage : Object
var head_stream = new MemoryInputStream.from_bytes(new Bytes(head_content));
var index_stream = new MemoryInputStream.from_bytes(new Bytes(index_content));
- apply_patch(index, head_stream, index_stream, patch);
+ var reversed = patch.reversed();
+
+ apply_patch(index, index_stream, head_stream, reversed);
head_stream.close();
index_stream.close();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]