From dca4164e203544f891ecd2d1389577062eb6f487 Mon Sep 17 00:00:00 2001 From: Robin Rosenberg Date: Wed, 20 Jun 2007 20:31:48 +0200 Subject: [PATCH] Add a decoration for conflicts Signed-off-by: Robin Rosenberg --- org.spearce.egit.ui/icons/ovr/conflict.gif | Bin 0 -> 54 bytes org.spearce.egit.ui/src/org/spearce/egit/ui/UIIcons.java | 3 +++ .../egit/ui/internal/decorators/GitResourceDecorator.java | 7 +++++++ org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java | 7 +++++++ 4 files changed, 17 insertions(+) create mode 100644 org.spearce.egit.ui/icons/ovr/conflict.gif diff --git a/org.spearce.egit.ui/icons/ovr/conflict.gif b/org.spearce.egit.ui/icons/ovr/conflict.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f241f4c6a9852807bed46f7865c2cf195d08c77 GIT binary patch literal 54 zcwTe&bhEHbWM|-D_`tyMp8*6Ef3h$#FfcOcfH)u-1}5H~{sqfr&oNYKn`Xu^GFSru D3a1J= literal 0 HcwPel00001 diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/UIIcons.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/UIIcons.java index 6e818ff0..a91549a8 100644 --- a/org.spearce.egit.ui/src/org/spearce/egit/ui/UIIcons.java +++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/UIIcons.java @@ -28,6 +28,8 @@ public class UIIcons { public static final ImageDescriptor OVR_SHARED; + public static final ImageDescriptor OVR_CONFLICT; + private static final URL base; static { @@ -35,6 +37,7 @@ public class UIIcons { OVR_PENDING_ADD = map("ovr/pending_add.gif"); OVR_PENDING_REMOVE = map("ovr/pending_remove.gif"); OVR_SHARED = map("ovr/shared.gif"); + OVR_CONFLICT = map("ovr/conflict.gif"); } private static ImageDescriptor map(final String icon) { diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/decorators/GitResourceDecorator.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/decorators/GitResourceDecorator.java index f0a8ce93..bf86db28 100644 --- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/decorators/GitResourceDecorator.java +++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/decorators/GitResourceDecorator.java @@ -297,6 +297,13 @@ public class GitResourceDecorator extends LabelProvider implements orState(rsrc.getParent(), CHANGED); } } else { + if (entry.getStage() != GitIndex.STAGE_0) { + decoration.addSuffix("(conflict)"); + decoration.addOverlay(UIIcons.OVR_CONFLICT); + orState(rsrc.getParent(), CHANGED); + return; + } + if (blob == null) { decoration.addOverlay(UIIcons.OVR_PENDING_ADD); orState(rsrc.getParent(), CHANGED); diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java b/org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java index e7938b3b..85260920 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java @@ -27,6 +27,9 @@ import org.spearce.jgit.errors.CorruptObjectException; public class GitIndex { + /** Stage 0 represents merged entries. */ + public static final int STAGE_0 = 0; + private RandomAccessFile cache; private File cacheFile; @@ -466,6 +469,10 @@ public class GitIndex { public ObjectId getObjectId() { return sha1; } + + public int getStage() { + return stage; + } } static class Header { -- 2.11.4.GIT