# Render changes of Ignition Project

**URL:** <https://forum.inductiveautomation.com/t/render-changes-of-ignition-project/97179>\
**Category:** General Discussion\
**Tags:** ignition81\
**Created:** [October 12, 2024, 4:26pm UTC](https://forum.inductiveautomation.com/t/render-changes-of-ignition-project/97179 "2024-10-12T16:26:15Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Shong\_Liew](https://avatars.discourse-cdn.com/v4/letter/s/848f3c/32.png) [@Shong\_Liew](https://forum.inductiveautomation.com/u/Shong_Liew)\
**Post date:** [October 12, 2024, 4:26pm UTC](https://forum.inductiveautomation.com/t/render-changes-of-ignition-project/97179/1 "2024-10-12T16:26:16Z")

</div>

I've been playing around Ignition Project for a year now and I am trying to create multi-developer CI environment for Ignition Project.

One thing I found out when integrated with Azure DevOps with GIT, even though ignition project and tag is in json format, It is quite hard to review the code.

So, just wanted to find out if rendering those changes with local git repo and do side-by-side comparison exists?

I can see that if ignition designer can render those differences based on commits in git or even embed a module in popular git application (Azure DevOps) to render those differences...

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [October 12, 2024, 6:15pm UTC](https://forum.inductiveautomation.com/t/render-changes-of-ignition-project/97179/2 "2024-10-12T18:15:11Z")

</div>

No, Ignition's JSON is not diff-friendly, and is difficult to make diff-friendly. Related discussion:

> [@Json Diffing Discussion](https://forum.inductiveautomation.com/t/json-diffing-discussion/96800):
>
> FWIW, I made a script recently that achieves this with JSON tag exports, and could be tweaked for many other cases (currently uses the "name" key for sorting lists of dictionaries). # Functions designed to be called via objectScript() in UI expressions. from java.io import File from java.lang import System, Throwable from java.util import TreeMap from com.inductiveautomation.ignition.common.util import Comparators logger = system.util.getLogger(system.util.getProjectName() + '.' + system.ref…

Hopefully better in v8.3.

You may need a git hook that orders your json before committing.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [October 12, 2024, 6:35pm UTC](https://forum.inductiveautomation.com/t/render-changes-of-ignition-project/97179/3 "2024-10-12T18:35:54Z")

</div>

I think you're talking purely about tag json here, Phil? I haven't had any issues comparing View JSON between different versions using win merge, so presumably git would be very similar.  
However, once you start comparing View json, you soon realise that you should pay more attention to which props you set to persistent or not. These all show up in the json and therefore invariably as changes if these are bindings to tags / queries
