# Version control

**URL:** https://discourse.nodered.org/t/version-control/1115
**Category:** Feature Requests
**Created:** [27 June 2018 08:41 UTC](https://discourse.nodered.org/t/version-control/1115 "2018-06-27T08:41:48Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![ThanosMel](https://avatars.discourse-cdn.com/v4/letter/t/db5fbb/32.png) [@ThanosMel](https://discourse.nodered.org/u/ThanosMel)
#### Post date: [27 June 2018 08:41 UTC](https://discourse.nodered.org/t/version-control/1115/1 "2018-06-27T08:41:48Z")

</div>

Is version control possible with node-red? I dont like creating too many files and copy-paste my flows in them , or having too many json files its a mess.

---

<div class="post-metadata">

### Author: ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)
#### Post date: [27 June 2018 08:46 UTC](https://discourse.nodered.org/t/version-control/1115/2 "2018-06-27T08:46:16Z")

</div>

Yes - read about the Projects feature [here](https://nodered.org/blog/2018/01/31/version-0-18-released)

---

<div class="post-metadata">

### Author: ![igrowing](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/igrowing/32/663_2.png) [@igrowing](https://discourse.nodered.org/u/igrowing)
#### Post date: [18 October 2018 16:31 UTC](https://discourse.nodered.org/t/version-control/1115/3 "2018-10-18T16:31:40Z")

</div>

Hi Nick,

Thank you for pretty good documentation page about projects and for video explanation.  
Being old fashioned, I managed so far the version control of NR in terminal with git CLI. I find this pretty versatile and handy, however some people may think different.

To the moment, NR saves flows.json as single line. That means even simple movement of single node causes git to commit the entire json. This makes hard version compare and tracking.

Is there a way to configure NR to save json files structured?  
Like this:

```
{
   "id": "236ea675.41ed8a",
   "type": "inject",
   "z": "25a82b05.7c01a4",
   "name": "",
   "topic": "",
   "payload": "",
   "payloadType": "date",
   "repeat": "",
   "crontab": "",
   "once": true,
   "onceDelay": 0.1,
   "x": 130,
   "y": 40,
   "wires": [
       [
           "d797c17b.12e8d"
       ]
   ]
},

```

Structured files make to git easy job to indicate what changed. As well, it makes for developer easy tracking and code review.  
Thank you.

---

<div class="post-metadata">

### Author: ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)
#### Post date: [18 October 2018 16:38 UTC](https://discourse.nodered.org/t/version-control/1115/4 "2018-10-18T16:38:40Z")

</div>

Have a look at the `flowFilePretty` option in your settings file.

---

<div class="post-metadata">

### Author: ![igrowing](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/igrowing/32/663_2.png) [@igrowing](https://discourse.nodered.org/u/igrowing)
#### Post date: [18 October 2018 19:05 UTC](https://discourse.nodered.org/t/version-control/1115/5 "2018-10-18T19:05:13Z")

</div>

Detailed instructions to make NR keeping structures jsons - maybe this will help someone:

1. Open settings.js in .node-red folder for editing (vim, nano, or other text editor).
2. Find line with word 'Pretty' and uncomment it.
3. Save the file and exit from the editor.
4. node-red-stop && node-red-start  
followed with Ctrl+C (as usual). The makes NR reading the settings.
5. Change something in your flow and deploy. The flows\_xxx.json structured!
